1

我有一个像这样的字符串

$str = '<a href="http://www.example.com/example_link">This is the Example Link</a>';

我想在php中从上面的字符串中获取href值(http://www.example.com/example_link)和文本值(This is the Example Link)

如何从字符串中获取这些值,任何有效的方式。我需要使用 PHP DOM 还是 REGEX?

注意:一个字符串中可能不止一次出现锚<a>标记。

4

2 回答 2

0

首先找到链接

` // 正则表达式过滤器
$reg_exUrl = "/(http|https|ftp|ftps)\://[a-zA-Z0-9-.]+.[a-zA-Z]{2,3} (/\S*)?/";
// 您要过滤的 url
文本 $text = ' This is the Example Link ';
// 检查文本中是否有url
if(preg_match($reg_exUrl, $text, $url)) {
$link=$url[0];
} else {
$link='发生了一些问题';
}

现在找到锚点之间的文本

$link_text = preg_replace('/<a.*?>/i', '', $text);
$link_text = preg_replace('/<\/a>/i', '', $link_text);
?>

于 2013-05-16T06:33:54.067 回答
0

如果您确定您的字符串将采用正确的 xml 格式,那么您可以使用 simplexml_load_string

尝试这个

<?php
$str = '<a href="http://www.example.com/example_link">This is the Example Link</a>';
$xml  = simplexml_load_string($str);
echo "<pre>";
print_r($xml);
 ?>

它会返回一个对象,你可以访问任何你想要的

演示

于 2013-05-16T05:49:09.787 回答