Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP提取链接的CSS文件_Php_Html_Regex_Curl - Fatal编程技术网

用PHP提取链接的CSS文件

用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

使用PHP解析HTML和提取链接CSS文件的最佳方法是什么?

我将使用curl类获取HTML文件,然后使用DOMDocument类解析CSS链接的HTML。如果您要查找更多内容,则必须更加具体。

我将使用curl类获取HTML文件,然后使用DOMDocument类解析CSS链接的HTML。如果您想了解更多信息,则必须更加具体。

DOMDocument

签入php文档

签入php文档可能会帮助您:

$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,事实上。我们如何做到这一点,但要将其转换为数组而不是对象?