strpos () работает только иногда - PullRequest
0 голосов
/ 14 сентября 2018

Я пытался использовать PHP функцию strpos() в моем коде. Я не знаю, почему этот код не работает. Если я пытаюсь использовать пользовательскую строку, содержащую мой тег 'b', это работает. Если я пытаюсь получить строку по моему массиву, это не сработает. Я тоже так пробовал: strpos('<b>',$textArray[$i]), но это бесполезно.

PS: приведение (строка) не работает.

<?php
$path="description/1.txt";
    $myfile = fopen($path, "r");
    $buffer="";
    if ($myfile) {
        $buffer=htmlspecialchars(fread($myfile,filesize($path)), ENT_QUOTES, 'UTF-8');
        fclose($myfile);
    }
    $textArray= explode(" ", $buffer);
    for($i=0;$i<count($textArray);$i++){

        $tmp="test string <b> :) ";

        if(strpos($textArray[$i],'<b>',0)===false){
            echo "Didn't find  ";
        }else{
            echo "YEES :D  ";
        }
    }

 ?>

Array var_dump ():

array(10) {
 [0]=>
 string(15) "sadsad<b>"
 [1]=>
 string(16) "asdw</b>ad"
 [2]=>
 string(24) "a<b>sdsa</b>"
 [3]=>
 string(9) "<b>"
 [4]=>
 string(4) "dsad"
 [5]=>
 string(3) "sad"
 [6]=>
 string(3) "sad"
 [7]=>
 string(9) "asdsadsad"
 [8]=>
 string(6) "sadsad"
 [9]=>
 string(8) "sadsadas"
}

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Попробуйте удалить htmlspecialchars Это должно работать.

0 голосов
/ 14 сентября 2018

Когда вы используете htmlspecialchars(), который преобразует такие вещи, как < в &lt;, вы никогда не найдете <b>.

Так что удалите вызов htmlspecialchars().

$buffer=fread($myfile,filesize($path));
...