我正在寻找一个快速的代码/函数来检测页面是否包含某些内容。
这是我正在开展的一个新项目。
基本上,用户会将简单的javascript代码粘贴到他们的页面中,但我需要确保他们这样做。
我需要一个能够扫描特定网页网址的代码,并找到我提供的代码。
谢谢!
答案 0 :(得分:2)
您可以将URL的内容作为字符串获取,并搜索该代码的内容:
<?php
function check_url($url) {
$page = file_get_contents($url);
$code = '<script src="http://example.com/test.js"></script>';
if (strpos($page, $code) === FALSE) {
return false;
} else {
return true;
}
}
?>
您可能希望将该简单strpos
换成正则表达式,但这样做会有所帮助。
答案 1 :(得分:1)
您想浏览网页,而不是网址!您通过URL访问该网页。 :)
<?php
$contents = file_get_contents("http://some.site/page.html");
$search = <<<EOF
<script type="text/javascript">
alert('They must have this!');
</script>
EOF;
if (strpos($contents, $search) === FALSE) {
echo "Naughty webpage!";
}
?>
但是请注意,以这种方式略读这样的页面通常被认为是不好的形式。
答案 2 :(得分:1)
最佳解决方案:
首先,获取网址的内容。使用1)或2):
1)(首先在你的托管中启用Allow_url_fopen,在php.ini或其他地方)
<?php
//you may use "r" instead of "rb"
$variablee = fopen('http://example.com/', "rb");
echo stream_get_contents($variablee);
?>
2)(首先,启用php_curl,php_imap,php_openssl)
<?php
// you can add anoother curl options too
// see here - http://php.net/manual/en/function.curl-setopt.php
function get_data($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$variablee = get_data('http://example.com');
echo $variablee;
?>
然后,而不是echo $variablee;
插入以下内容:
if (stristr($variablee,'your_desired_string'))
{
echo ' Yes, found';
}
P.S。有关
的更多信息How To Get Contents from Url - http://stackoverflow.com/a/15706743/2220042
答案 3 :(得分:-1)