1
4

4 回答 4

0
$url = '<a title="Question" href="http://stackoverflow.com/questions/ask"></a>';
preg_match("/href=\"(.*?)\"/i", $url, $matches);
print_r($matches);
/*
Match Group(s) :
        1.  http://stackoverflow.com/questions/ask
*/
于 2012-12-26T08:10:58.560 回答
0

如果您已经有了锚标记并​​且只想获取 href 值,请尝试此代码。它将删除除“href”值之外的其他值。唯一的问题是“href”这个词不能在“href”属性前面的 id/class 内。

$url = '<a href="http://stackoverflow.com/questions/ask"></a>';
$url =  substr ( $url,(strpos($url,' href=') + 6) );
$url = explode($url[0],$url);
echo $url[1]; // $url[1] will store the 'http://stackoverflow.com/questions/ask'
于 2012-12-26T06:56:06.093 回答
0

有多种选择。。

  • 如果您知道 href 将始终是 a 标签上的唯一属性,您可以使用 strpos/stripos 找到第一个和最后一个双引号的位置,并使用 substr 拉出 href。
  • 或者,即使有多个属性,strpos/stripos 都接受从何处开始搜索字符串的偏移量。如果您在 href 之后开始,则可以执行与上述相同的操作。
  • 或者,使用正则表达式可能会更好,它也可以找到 href 并从那里开始。
  • 最后,如果这是您正在迭代的格式正确的 XHTML 文档的一部分,您可以使用 SimpleXML 来迭代数组并获取您需要的每个属性。

根据所提供的有限信息,我将从第一个或第二个选项开始,并且仅在有其他要求时才使用正则表达式或 SimpleXML。

于 2012-12-26T06:43:57.137 回答
-2

除非链接是由您的 PHP 代码本身生成的,否则您不能这样做。PHP 是服务器端代码,而页面上的链接本身是 HTML 客户端代码。两人无法交流。要提取值,您需要使用 JavaScript 等客户端脚本。

于 2012-12-26T06:24:51.527 回答