检查字符串是否链接

时间:2010-03-16 16:56:13

标签: php html html-parsing

我有相当长的条目提交到数据库。

如何创建一个函数来查看此条目中是否有链接?有人可以让我开始吗?

实际上,我希望函数能够在字符串中查找任何<a<a href或任何其他相关链接实例。

我不想将条目放入数组中。有没有其他方法可以实现这一目标?

2 个答案:

答案 0 :(得分:0)

查看Regex以查找HTML标记

答案 1 :(得分:0)

如果你想远离RegEx,你可以使用一个丑陋的strpos和substr组合来查找"<a "提取等等。

像这样丑陋的东西(这只会找到第一个链接,它会因代码错误而失败,并且找不到'(这是无效的XHTML))p.s.这是一个坏主意:

function findLink($string) {
  $pos = strpos($string, "<a ");
  if ($pos === false)
    return false;

  $string = substr($string, $pos);
  $pos = strpos($string, "href");
  $string = substr($string, $pos);

  // First quote
  $pos = strpos($string, '"');
  $string = substr($string, $pos + 1);

  // Last quote
  $pos = strpos($string, '"');
  $string = substr($string, 0, $pos);

  if (trim($string) != "")
    return $string;
  return false;
}

我确定你也可以尝试对字符串进行标记化吗?

$token = strtok($string, "\"'");
while ($token !== false) {
  // Look for anything with a link in it
  str_replace(array("http://", "www", "ftp://"), "", ltrim($string), $count);
  if ($count > 0)
    return $string;
  $token = strtok($string, "\"'");
}
return false;

注意:这些不是很好的方法。