我知道这听起来有点奇怪,但我有一个字符串:
<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');
感谢。
答案 0 :(得分:4)
<?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 )
答案 1 :(得分:0)
使用正则表达式将每个项目提取为数组或字符串。
听起来像是我当天回来的作业问题,这应该让你接近......
src\s*=\s*([\'"])?([^\'" >]+)(\1)?
答案 2 :(得分:0)
是
function get_image_sources( $s )
{
preg_match_all( '/src="([^"]+)"/i' , $s , $sources );
if(!(count($sources) == 2) || !count($sources[1]) ) return array();
return $sources[1];
}
:)