PHP의 strpos()
기능에 약간 이상한 동작이 있습니다. 그러나PHP strpos가 "<"을 찾지 못합니다.
<?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; ?>
:
$elementText = "Bluffs, Cliffs, Grasses, Oceans, Rocks < Materials";
그리고 여기에 기능입니다 : 나는
다음 예제 문자열을 수 있습니다 .. 각 키워드에 대한 키워드와 출력의 URL 문자열을 통해 루프 필요 내 서버에서 PHP가 "<"기호를 감지하지 못하여 계층 적 키워드를 올바르게 구분하지 못합니다. 구분 기호로<
을 사용하여 폭발하려고해도 작동하지 않습니다.
이상한 점은 테스트 파일을 만들고 원하는대로 정확하게 실행되는 명령 줄에서 수동으로 실행할 수 있다는 것입니다.하지만 서버에서 실행하려고 할 때 테스트 파일을 수동으로 실행할 수는 있습니다.
해결 방법에 대한 아이디어가 있으십니까?
어떻게 데이터 문자열을 입력하고 있습니까? >을 (를) > (으)로 마술로 탈출하고 있습니까? 문자열을 덤프하고 소스를 확인하여 확인하십시오. – Phil
그게 전부 야! 의견을 보내 주셔서 감사합니다. – AnuragBabaresco