Я встречаю довольно своеобразное поведение функции PHP strpos()
. Мне нужно перебрать строку ключевых слов и вывода URL-адресов для каждого ключевого слова ..PHP strpos не находит «<»
Давайте следующий пример строки:
$elementText = "Bluffs, Cliffs, Grasses, Oceans, Rocks < Materials";
А вот функция:
<?php
$i = 0;
$hierarchySeparator = " < ";
$subjects = explode(", ", $elementText);
// loop through keywords
foreach ($subjects as $subject) :
// look for hierarchical keywords
$found = strpos($subject, $hierarchySeparator);
if($found !== false) :
// extract and loop through hierarchical list
$subSubjects = explode($hierarchySeparator, $subject);
$j = 1;
foreach ($subSubjects as $subSubject) : ?>
<a href="<?php echo url('/mySearch?q=' . $subSubject) ; ?>"><?php echo $subSubject; ?></a>
<?php
// Re-ouput all relevant < signs
if($j < count($subSubjects)) {
echo " < ";
}
$j++;
endforeach;
else : ?>
<a href="<?php echo url('/mySearch?q=' . $subject) ; ?>"><?php echo $subject; ?></a>
<?php endif;
// output commas to "nicefy" list output
$i++;
if($i < count($subjects)) {
echo ",";
}
endforeach; ?>
Однако, на моем сервере PHP не обнаруживает символ «<», поэтому он не отделяет иерархические ключевые слова правильно. Даже когда я пытаюсь взорваться с использованием <
в качестве разделителя, он не работает.
Странно, что я могу создать тестовый файл и запустить его вручную из командной строки, которая выполняется точно так, как вам нужно, но когда я пытаюсь запустить ее на своем сервере, это не так.
Любая идея о том, как решить эту проблему?
Как вы вводите строку данных. Волшебно ускользнуть от> до >? Проверьте, сбросив строку и источник просмотра. – Phil
Thats it! Спасибо за ввод. – AnuragBabaresco