Strpos工作不正常

问题描述:

目前我有过滤,这样只有其中包括字符串后http://www.example.com/?dl_name=经过一堆问题。Strpos工作不正常

第一个if声明完美无瑕地工作,但第二个返回每一个帖子,即使我没有包含上面的URL我都在做什么错误?

$url = ''.$element->href; 
$html2 = file_get_html($url); 
$title = $html2->find('.single-style1-title h1',0); 
$s = $title->plaintext; 
$str2 = explode ("MUSIC:", $s); 
print '<br>'; 
$date = $html2->find('strong > a',0); 
$n = $date->href; 
$str = explode ("http://www.example.com/?dl_name=", $n); 
if (strpos($title->plaintext,"VIDEO:")===FALSE) { 
    if (strpos($n,'http://www.example.com/?dl_name=') !== true) { 
     $image = $html2->find('.thumb-wrap img',0); 
     //$date = $html2->find('strong > a',0); 
     //$n = $date->href; 
     print '<br><br>'; 
     echo $url; 
     print '<br>'; 
     print htmlspecialchars_decode($image->src); 
     print '<br>'; 
     print $str2[1]; 
     print '<br>'; 
     print $str[1]; 
    } 
} 
+1

*** ***我的strpos使用工作不正常 - 在那里,固定为你:-) – paxdiablo

的问题是在这里:

if (strpos($n,'http://www.example.com/?dl_name=') !== true) 

strpos永远不会返回true。报价from the docs

返回相对于干草堆串起始位置(与偏移量无关)的位置。还要注意的是字符串位置从0开始,而不是1

返回FALSE如果针没有被发现。

+0

我能做些什么让我找的输出中不使用'strpos'? –

+0

@JohnDoe如果您需要确保字符串中有_no_匹配,则只需将您的条件反转:'if(strpos(...)=== false)'。如果你需要相反的话,使用'if(strpos(...)!== false)'。 – kozlice

+0

我这样做的时候,它只返回的结果,我不希望它回来,我需要除正在显示的内容的一切,当我们设置TRUE;以'FALSE'这是问题.. –

的问题就在这里:

strpos($n,'http://www.example.com/?dl_name=') !== true 

strpos永远不会返回true,只有FALSE如果它不存在,或者它出现的第一个位置。你说你想要包含"http://www.example.com/?dl_name="的字符串对吗?

尝试更改为strpos($n,'http://www.example.com/?dl_name=') !== FALSE,看看会发生什么。

+0

它给出的输出与'true'设置相同,我一直在为此修改了大约2个小时,目前没有运气。 –