Php 获取URL的已处理内容

Php 获取URL的已处理内容,php,javascript,curl,xmlhttprequest,domdocument,Php,Javascript,Curl,Xmlhttprequest,Domdocument,我试图检索网页的内容,并检查网页是否包含我正在监视的某些错误关键字。(与每次手动加载每个URL以检查站点不同,我希望以编程方式执行此操作,并在出现错误时标记错误) 我试过XMLHttpRequest。我能够获得HTML内容,就像我在页面上“查看源代码”时看到的一样。但是我监视的页面在Sharepoint上运行,Web部件是动态生成的。我相信,如果加载这些部件时出现错误,我将无法将它们标记出来,因为我提取的HTML将不包含错误,而只包含指向Web部件的常规路径 cURL似乎也有同样的作用。我刚刚读

我试图检索网页的内容,并检查网页是否包含我正在监视的某些错误关键字。(与每次手动加载每个URL以检查站点不同,我希望以编程方式执行此操作,并在出现错误时标记错误)

我试过XMLHttpRequest。我能够获得HTML内容,就像我在页面上“查看源代码”时看到的一样。但是我监视的页面在Sharepoint上运行,Web部件是动态生成的。我相信,如果加载这些部件时出现错误,我将无法将它们标记出来,因为我提取的HTML将不包含错误,而只包含指向Web部件的常规路径

cURL似乎也有同样的作用。我刚刚读到了关于DOMDocument的文章,我想知道DOMDocument是在处理代码,还是只是将HTML分解成一个层次结构


我只希望有网址的内容。(就像你在IE中将网站保存为txt而不是HTML时得到的一样)。或者,如果我能进一步处理HTML,那也不错。我该怎么做?任何帮助都将不胜感激。:)

为什么要删除HTML?最好用它

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$data = curl_exec($ch);
curl_close($ch);

// libxml_use_internal_errors(true);
$oDom = new DomDocument();
$oDom->loadHTML($data);

// Go through DOM and look for error (it's similar if it'd be
// <p class="error">error message</p> or whatever)
$errors = $oDom->getElementsByTagName( "error" ); // or however you get errors
foreach( $errors as $error ) {
    if(strstr($error->nodeValue, 'SOME ERROR')) {
        echo 'SOME ERROR occurred';
    }
}

为了清楚起见,您是否希望从web上删除html标记并仅获取剩余的数据?您好,我希望获取已处理的内容,比如加载javascript并生成内容之后。不是一个javascript和函数仍然存在的视图源,然后去掉了它们的标记。我应该举个例子来更好地解释我自己:)你好!谢谢你的回答!我认为我必须去掉HTML,因为我所在的站点是sharepoint站点,可能出现错误的地方将是动态内容。视图源未显示中的内容。因此,如果我的检查基于此字符串,我想我将无法捕获错误?那么内容是由Javascript生成的?那样的话,事情会变得更难……嗯,是的。内容由Javascript生成。有什么方法可以检索内容吗?没有,看看这个问题:你确定它是js吗?有没有办法通过XML或HTTP代码检索错误?SharePoint应该提供这样做的方法。也许再问一次您的问题,特别是关于SharePoint的问题?
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$data = curl_exec($ch);
curl_close($ch);
if(strstr($data, 'SOME_ERROR')) {
    echo 'SOME ERROR occurred';
}