Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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图像列表的src_Php_String - Fatal编程技术网

获取PHP图像列表的src

获取PHP图像列表的src,php,string,Php,String,我知道这听起来有点奇怪,但我有一个字符串: <img src="image1.gif" width="20" height="20"><img src="image3.gif" width="20" height="20"><img src="image2.gif" width="20" height="20"> 有没有一种简单的方法可以将其放入 数组('image1.gif'、'image3.gif'、'image2.gif') 谢谢。使用正则表达式将

我知道这听起来有点奇怪,但我有一个字符串:

<img src="image1.gif" width="20" height="20"><img src="image3.gif" width="20" height="20"><img src="image2.gif" width="20" height="20">

有没有一种简单的方法可以将其放入

数组('image1.gif'、'image3.gif'、'image2.gif')


谢谢。

使用正则表达式将每个项提取到数组或字符串中

听起来像是一个家庭作业的问题,我曾经在一天无论如何,这应该让你接近


src\s*=\s*([\'”])?([^\'”>]+)(\1)?

使用正则表达式将每个项提取到数组或字符串中

听起来像是一个家庭作业的问题,我曾经在一天无论如何,这应该让你接近

src\s*=\s*([\'”])?([^\'”>]+)(\1)?

:)是的


:)

尽管您试图从PHP代码/src获取这些值,但您希望如何实现解决方案?尽管您试图从PHP代码/src获取这些值,但可能存在重复的问题。您希望如何实现解决方案?使用DOM的可能重复是正确的解析方法,regex是一个bandaid。通常我同意,但不是在这种情况下-他有一个非常简单的字符串,不是一个完整的DOM,甚至不是在(x)HTML块中序列化的部分DOM-它可能/看起来/像它,但它不是-正则表达式是处理这个问题的有效方法,在这种情况下DOM是overkill@nathan按照这种逻辑,
$res=array(“image1.gif”、“image3.gif”、“image2.gif”)
也是一个有效的解决方案。你对这个问题的理解太狭隘了,你需要将OP给出的示例推广到其他情况,对于一般HTML,正则表达式不起作用。使用DOM是正确的解析方法,正则表达式是一个bandaid。通常我会同意,但在这种情况下不是这样的-他有一个非常简单的字符串,不是一个完整的DOM,甚至是在(x)块中序列化的部分DOMHTML-它可能/看起来/像它,但它不是-正则表达式是处理这个问题的有效方法,DOM在这种情况下是有效的overkill@nathan按照这种逻辑,
$res=array(“image1.gif”、“image3.gif”、“image2.gif”)
也是一种有效的解决方案。你对这个问题的理解太狭隘了,你需要将OP给出的例子推广到其他情况,对于一般的HTML,正则表达式不起作用。啊哈,谢谢!我没想到会有一个完整的函数,但我知道这与正则表达式有关……这让我很害怕!谢谢。啊哈,谢谢!我没想到会有一个完整的函数,但我知道这与正则表达式有关……这让我很害怕!非常感谢。
<?php
$xml = <<<XML
<img src="image1.gif" width="20" height="20">
<img src="image3.gif" width="20" height="20">
<img src="image2.gif" width="20" height="20">
XML;

libxml_use_internal_errors(true);
$d = new DOMDocument();
$d->loadHTML($xml);
$res = array();
foreach ($d->getElementsByTagName("img") as $e) {
    $res[] = $e->getAttribute("src");
}
print_r($res);
Array ( [0] => image1.gif [1] => image3.gif [2] => image2.gif )
function get_image_sources( $s )
{
  preg_match_all( '/src="([^"]+)"/i' , $s , $sources );
  if(!(count($sources) == 2) || !count($sources[1]) ) return array();
  return $sources[1];
}