【发布时间】:2011-11-18 15:20:14
【问题描述】:
给定链接
$link="<a href='test.php'>test</a>";
如何使用 php 分隔 href 和锚文本。
【问题讨论】:
-
“分离”如何?你想用这些零件做什么?
给定链接
$link="<a href='test.php'>test</a>";
如何使用 php 分隔 href 和锚文本。
【问题讨论】:
您并没有具体说明要解析的字符串,但是使用 PHP 执行此操作的一种非常简单的方法是在您的情况下将其解析为格式化字符串 (Demo):
$link = "<a href='test.php'>test</a>";
$result = sscanf($link, "<a href='%[^']'>%[^<]</a>", $href, $text);
var_dump($result, $href, $text);
但是如果链接的格式发生变化,这不是很稳定,所以你最好寻找has been already answered的DomDocument。
【讨论】:
<?php
$link="<a href='test.php'>test</a>";
libxml_use_internal_errors(true);
$dom = new domdocument;
$dom->loadHTML($link);
foreach ($dom->getElementsByTagName("a") as $a) {
echo $a->textContent, "\n";
echo $a->getAttribute("href"), "\n";
}
【讨论】:
$link = "<a href='test.php'>test</a>";
preg_match('~<a .*?href=[\'"]+(.*?)[\'"]+.*?>(.*?)</a>~ims', $link, $result);
//result[1] == test.php
//result[2] == test
或者更好的,如果你想要“测试”
$link = "<a href='test.php'>test</a>";
$result = strip_tags($link);
最后你可以看看DOMDocument
【讨论】:
$link 总是 会以相同的方式格式化,那么我个人认为没有问题。只是我的2美分。 :)