[ create a new paste ] login | about

Link: http://codepad.org/MUjrxavI    [ raw code | output | fork ]

php_user - PHP, pasted on Apr 30:
<?php

/*returns a string(s) containing the two specified keywords 

SAMPLE SESSION:
First keyword to search for?note
Second keyword to search for?
about
Max number of characters apart?
10
Min number of characters apart?
0
array(4) {
  [0]=>
  int(2)
  [1]=>
  int(7)
  [2]=>
  int(44)
  [3]=>
  int(49)
}
xxxxxxxx
xxx

*/

function output_desired_strings($desired_array, $content){
	$wallbegin = 0;
	$wallend = 0;
	$latter_key = 0;
	foreach ($desired_array as $key => $value){	
		if (($key / 2) % 2 == 0){
			$wallbegin = $value; 
			$latter_key = $key + 1; 
			$span = $desired_array[$latter_key] - $wallbegin;
			$desired_string = substr($content, $wallbegin - 10, $span + 10); 
			echo $desired_string; 
			echo "\n";
		}
	}
}

function find_desired_strings($array_keyword_1, $array_keyword_2, $max_constraint, $min_constraint){
$desired_array = array();
	foreach ($array_keyword_1 as $keyword_1_position){
		foreach ($array_keyword_2 as $keyword_2_position){
			if ((abs ($keyword_1_position - $keyword_2_position) <= $max_constraint) &&
			(abs ($keyword_1_position - $keyword_2_position) >= $min_constraint)){
				array_push($desired_array, $keyword_1_position, $keyword_2_position);
			} 
		}
	}
	return $desired_array;
}


function strpos_build_array_from_keyword($keyword, $content){
	$keyword = substr($keyword, 0, (strlen($keyword) -2));
	$end_of_file = false; 
    $offset_current = '0'; 
    $array_keyword_1 = array();
	while ($end_of_file != true){
		$instance_pos = strpos($content, $keyword, $offset_current);
		if (($instance_pos + strlen($keyword)) >= ($offset_current) && $instance_pos != null){
			array_push($array_keyword_1, $instance_pos);
			$offset_current = $instance_pos + strlen($keyword);
			
		}
		else{
			$end_of_file = true;
		
		}
	}
	return ($array_keyword_1);
}

fwrite(STDOUT, "First keyword to search for?");
$keyword_1_from_user = fgets(STDIN);

fwrite(STDOUT, "Second keyword to search for?" . "\n");
$keyword_2_from_user = fgets(STDIN);

fwrite(STDOUT, "Max number of characters apart?" . "\n");
$max_constraint = fgets(STDIN);

fwrite(STDOUT, "Min number of characters apart?" . "\n");
$min_constraint = fgets(STDIN);

$content = 'A note about converting...................A note about converting..xxxxxxxxxxxxxxxxxxxx';

$array_keyword_1 = strpos_build_array_from_keyword($keyword_1_from_user, $content);

$array_keyword_2 = strpos_build_array_from_keyword($keyword_2_from_user, $content);

$desired_array = find_desired_strings($array_keyword_1, $array_keyword_2, $max_constraint, $min_constraint);
var_dump($desired_array);
output_desired_strings($desired_array, $content, $max_constraint);



?>


Output:
1
2
3
4
5
First keyword to search for?Second keyword to search for?
Max number of characters apart?
Min number of characters apart?
array(0) {
}


Create a new paste based on this one


Comments: