PHP检查页面是否包含

时间:2011-03-14 23:43:36

标签: php

我正在寻找一个快速的代码/函数来检测页面是否包含某些内容。

这是我正在开展的一个新项目。

基本上,用户会将简单的javascript代码粘贴到他们的页面中,但我需要确保他们这样做。

我需要一个能够扫描特定网页网址的代码,并找到我提供的代码。

谢谢!

4 个答案:

答案 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)

有一些很棒的库可以抓取像cURL这样的网站,但在你的情况下,使用它似乎有些过分。如果您想使用cURL库,我建议使用Snoopy - 类,这非常简单易用。

菲利克斯