用PHP提取链接的CSS文件
使用PHP解析HTML和提取链接CSS文件的最佳方法是什么?我将使用curl类获取HTML文件,然后使用DOMDocument类解析CSS链接的HTML。如果您要查找更多内容,则必须更加具体。我将使用curl类获取HTML文件,然后使用DOMDocument类解析CSS链接的HTML。如果您想了解更多信息,则必须更加具体。DOMDocument 签入php文档 签入php文档可能会帮助您:用PHP提取链接的CSS文件,php,html,regex,curl,Php,Html,Regex,Curl,使用PHP解析HTML和提取链接CSS文件的最佳方法是什么?我将使用curl类获取HTML文件,然后使用DOMDocument类解析CSS链接的HTML。如果您要查找更多内容,则必须更加具体。我将使用curl类获取HTML文件,然后使用DOMDocument类解析CSS链接的HTML。如果您想了解更多信息,则必须更加具体。DOMDocument 签入php文档 签入php文档可能会帮助您: $dom = new DOMDocument(); $dom->loadHTMLFile('file
$dom = new DOMDocument();
$dom->loadHTMLFile('file.html'); // Can replace with $dom->loadHTML($str);
$link_tags = $dom->getElementsByTagName('link');
foreach($link_tags as $link_tag)
{
// if $link_tag rel == stylesheet
// get href value and load CSS
}
可能可以帮助您:
$dom = new DOMDocument();
$dom->loadHTMLFile('file.html'); // Can replace with $dom->loadHTML($str);
$link_tags = $dom->getElementsByTagName('link');
foreach($link_tags as $link_tag)
{
// if $link_tag rel == stylesheet
// get href value and load CSS
}
下面是一个使用正则表达式的简单解决方案
$content = '...';
$n = preg_match_all('/"([^"]+?\.css)"/', $content, $matches);
if ($n !== FALSE && $n > 0) {
var_dump($matches[1]);
}
下面是一个使用正则表达式的简单解决方案
$content = '...';
$n = preg_match_all('/"([^"]+?\.css)"/', $content, $matches);
if ($n !== FALSE && $n > 0) {
var_dump($matches[1]);
}
说什么?我不知道你想做什么换句话说,用PHP cURL获取一个网页,然后解析所有的字符串
说什么?我不知道你想做什么换句话说,用PHP cURL获取一个网页,然后解析所有
的字符串。我试过这个。但是,如果您尝试一些URL,比如www.google.com,您会得到一个错误:警告:DOMDocument::loadHTML()[DOMDocument.loadHTML]:标记nobr在实体中无效,第7行
DOMDocument对html非常挑剔,会抛出很多警告。这是少数几个可以接受使用“@”抑制错误的地方之一,因为无法告诉底层库关闭。@Andres,这只是一个警告。谷歌的主页碰巧不是有效的HTML。(事实上,为了使文件尽可能小,它是错误的HTML。)您仍然应该从中获取数据。请尝试对生成的DOMDocument对象调用saveXML
。@Marc,事实上。我们如何做到这一点,但要将其转换为数组而不是对象?我尝试了这个方法。但是,如果您尝试一些URL,比如www.google.com,您会得到一个错误:警告:DOMDocument::loadHTML()[DOMDocument.loadHTML]:标记nobr在实体中无效,第7行
DOMDocument对html非常挑剔,会抛出很多警告。这是少数几个可以接受使用“@”抑制错误的地方之一,因为无法告诉底层库关闭。@Andres,这只是一个警告。谷歌的主页碰巧不是有效的HTML。(事实上,为了使文件尽可能小,它是错误的HTML。)您仍然应该从中获取数据。请尝试对生成的DOMDocument对象调用saveXML
。@Marc,事实上。我们如何做到这一点,但要将其转换为数组而不是对象?