1

我有这个字符串:

  <img src=images/imagename.gif alt='descriptive text here'>

我试图把它分成以下两个字符串(两个字符串的数组,不管怎样,刚刚分解)。

  imagename.gif
  descriptive text here

请注意,是的,它实际上是&lt;and not <。与字符串的结尾相同。

我知道正则表达式是答案,但我在正则表达式方面还不够好,不知道如何在 PHP 中实现它。

4

2 回答 2

2

尝试这个:

<?php

$s="&lt;img src=images/imagename.gif alt='descriptive text here'&gt;";

preg_match("/^[^\/]+\/([^ ]+)[^']+'([^']+)/", $s, $a);

print_r($a);

输出:

Array
(
    [0] => &lt;img src=images/imagename.gif alt='descriptive text here
    [1] => imagename.gif
    [2] => descriptive text here
)
于 2012-12-09T02:37:43.130 回答
2

更好的使用DOM xpath rather than regex

<?php
$your_string = html_entity_decode("&lt;img src=images/imagename.gif alt='descriptive text here'&gt;");
$dom = new DOMDocument;
$dom->loadHTML($your_string);
$x = new DOMXPath($dom); 

foreach($x->query("//img") as $node) 
{
    echo $node->getAttribute("src");
    echo $node->getAttribute("alt");
}

?>
于 2012-12-09T04:58:12.407 回答