更改样式表的PHP XPath
我使用xpath更改标题中样式表更改样式表的PHP XPath,php,xpath,Php,Xpath,我使用xpath更改标题中样式表的href的样式表 但它根本不起作用 $html=file_get_contents('http://stackoverflow.com'); $doc = new DOMDocument(); $doc->loadHTML($html); $xpath = new DOMXPath($doc); $css_links = $xpath->evaluate("//link[@type='text/css']"); for ($i = 0; $i <
的href
的样式表
但它根本不起作用
$html=file_get_contents('http://stackoverflow.com');
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$css_links = $xpath->evaluate("//link[@type='text/css']");
for ($i = 0; $i < $css_links->length; $i++)
{
$csslink = $css_links->item($i);
$oldurl = $csslink->getAttribute('href');
$newURL='http://example.com/aaaa.css';
$csslink->removeAttribute('href');
$csslink->setAttribute('href', $newURL);
}
echo $html;
$html=file\u get\u contents('http://stackoverflow.com');
$doc=新的DOMDocument();
$doc->loadHTML($html);
$xpath=新的DOMXPath($doc);
$css_links=$xpath->evaluate(“//link[@type='text/css']”);
对于($i=0;$i<$css\u链接->长度;$i++)
{
$csslink=$css\u链接->项目($i);
$oldurl=$csslink->getAttribute('href');
$newURL='1http://example.com/aaaa.css';
$csslink->removeAttribute('href');
$csslink->setAttribute('href',$newURL);
}
echo$html;
您正在使用@$doc->loadHTML(html)
而不是@$doc->loadHTML($html)
(注意$
),否则它会工作
也可以使用echo$doc->SaveHtml()
代替echo$html
工作示例
您还可以将($i..的替换为foreach
,因为:
是否已启用从外部源获取内容?为什么要用@符号抑制错误消息?也许这就是你的答案。@mamuz,是的,根据phpinfo的说法,它是开着的
foreach ($css_links as $csslink)
{
$oldurl = $csslink->getAttribute('href');