目前我遇到了一系列过滤问题,因此只发布包含字符串http://www.example.com/?dl_name=
的帖子。
第一个if
声明完美无缺,但是第二个声明会回复我正在抓取的每个帖子,即使是那些没有包含上述网址的帖子,我做错了什么?
$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];
}
}
答案 0 :(得分:2)
问题在于:
if (strpos($n,'http://www.example.com/?dl_name=') !== true)
strpos
永远不会返回true
。引用from the docs:
返回针存在于相对于haystack字符串开头的位置(与offset无关)。另请注意,字符串位置从0开始,而不是1。
如果未找到针,则返回FALSE。
答案 1 :(得分:0)
问题在于:
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
,看看会发生什么。