我试图简单地计算可以在此链接的源中找到此字符串"SizeName":"6 (XXS)"
的次数:http://www.sportsdirect.com/karrimor-short-running-tights-ladies-457513?colcode=45751359
该字符串包含在Javascript中,可以在URL的源中看到。
这是我正在使用的代码,但它表示正在查找0
出现次数:
<?PHP
$url = "http://www.sportsdirect.com/karrimor-short-running-tights-ladies-457513?colcode=45751359";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$str = curl_exec($curl);
curl_close($curl);
$SIZEID = "6 (XXS)";
$occurencies = preg_match_all('/(?<=\"SizeName\":\"'.$SIZEID.'\")\S+/i', $str, $match);
echo $occurencies;
输出结果是:
Occurencies: 0
但是在此链接中,当我获得输出源时,可以找到字符串
"SizeName":"6 (XXS)"
的5个匹配项我的问题在哪里,我在做什么错?
有什么建议吗?
提前致谢!
最佳答案
我可能缺少一些东西,但是为什么要使用正则表达式呢?为什么不这样分割字符串呢?
$sizeId = "6 (XXS)";
$delimiter = '"SizeName":"' . $sizeId .'"';
$exploded = explode($delimiter, $str);
$matches = count($exploded) - 1;
免责声明:我已经十多年没有写PHP了。上面可能有语法错误。 :)