Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 从远程网站获取信息_Php_Regex - Fatal编程技术网

Php 从远程网站获取信息

Php 从远程网站获取信息,php,regex,Php,Regex,我从一个远程网站获取信息,我被这一点html所困扰: <div> <a onclick="javascripthere" href="#"> <img width="110" height="160" alt="" src="imageurlhere"> {variable sized string} </a> <br>2012/01/10

我从一个远程网站获取信息,我被这一点html所困扰:

<div>
        <a onclick="javascripthere" href="#">
            <img width="110" height="160" alt="" src="imageurlhere">
            {variable sized string}
        </a>
        <br>2012/01/10 17:35:20<br>
        <img alt="{variable sized string}" src="imageurlhere">
</div>


2012/01/10 17:35:20
从上面的html中,我需要选择2“{variable size string}”。它们可以是任何类型的字符(a-zA-Z0-9和空格/其他字符),我不知道使用哪种正则表达式或php来获取这两个字符串

有什么建议吗?

您可以使用正则表达式来完成此操作,而不是使用正则表达式,因为正则表达式不适合解析HTML或XML。从一开始,你的代码将更加清晰易读

例如:

$doc = new DOMDocument();
$doc->loadHTML("<html><body><img alt="{variable sized string}" src="imageurlhere"></body></html>");
$images = $doc->getElementsByTagName('img');
foreach($images as $image) {
    echo $image->getAttribute('alt');
}
$doc=newDOMDocument();
$doc->loadHTML(“”);
$images=$doc->getElementsByTagName('img');
foreach($images作为$image){
echo$image->getAttribute('alt');
}
有许多项目使用更简单的API包装DOMDocument,例如(类似jQuery的选择器来导航DOM)和。

不使用

使用一个。它将使您的开发更加简单。

$preg\u match(“/(.*?/”,$string,$match);
//$match[1]是您的第一个字符串
$preg_匹配(“/
$preg_match("/<img.*?>(.*?)<\/a>/", $string, $match);

//$match[1] is your first string

$preg_match("/<img alt=\"(.*?)\"/", $string, $match2);

//match2[1] is your second string.