Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou criando um programa que em certa parte precisa ler alguns feeds rss, além disso tenho que disponibilizar um buscador para esses feeds. Criei um algorítimo que usa duas flags, uma para se a string está no titulo e outra para se a string está no description e uso essas flags pra imprimir os itens que correspondem a pesquisa. Olha um trecho do código:
$tem = strstr($titi, $episodio);
$tem2 = strstr($des, $episodio);
if (($offset)&&(($tem)||($tem2))) {
$offset--;
}
elseif (($tem)||($tem2)) {
Aparentemente estava funcionando tudo bem, mas me deparei um um feed que os títulos começam com '#' e a pesquisa não funciona. Se eu busco por # ele funciona, qualquer outra palavra não funciona. Inicialmente pensei que fosse problema com o #, mas tem outro feed que leio que tem o # e funciona perfeitamente. Outro fato que me levou a achar que não é isso é fato que usei o str_replace pra substituir a ocorrência de # por um espaço vazio e mesmo assim não funcionou.
Não sei o que está causando esse erro nesse feed especifico, não tem como postar todo o código porque ele é imenso e não está modalizado em arquivos, mas posso ir postando trechos que forem necessários.
Pois é, eu ja fiz esse teste e também dá o mesmo resultado. Mas analisei aqui e vi que o erro não está neste fato, outro feed que começa com # seu títulos funciona normalmente. O erro está só neste feed em especifico, mas precisamente esse feed: http://www.tracto.net.br/rss/podcast_cmb.xml. Quando busco pelo conteúdo do description funciona normalmente. Bom, não sei descrever o que está causando o erro. Leio o feed com file_get_contents e simplexml_load_string.
pegue o título e teste manualmente, para ver se o problema persiste.
testei aqui e deu o mesmo resultado.
Veja:
$ php -a
Interactive shell
string(9) "sustenido"
php > var_dump(strstr($str2, 'sustenido'));
string(9) "sustenido"