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];
}
}
的问题是在这里:
if (strpos($n,'http://www.example.com/?dl_name=') !== true)
strpos
永远不会返回true
。报价from the docs:
返回相对于干草堆串起始位置(与偏移量无关)的位置。还要注意的是字符串位置从0开始,而不是1
返回FALSE如果针没有被发现。
我能做些什么让我找的输出中不使用'strpos'? –
@JohnDoe如果您需要确保字符串中有_no_匹配,则只需将您的条件反转:'if(strpos(...)=== false)'。如果你需要相反的话,使用'if(strpos(...)!== false)'。 – kozlice
我这样做的时候,它只返回的结果,我不希望它回来,我需要除正在显示的内容的一切,当我们设置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
,看看会发生什么。
它给出的输出与'true'设置相同,我一直在为此修改了大约2个小时,目前没有运气。 –
*** ***我的strpos使用工作不正常 - 在那里,固定为你:-) – paxdiablo