<?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);
?>