Если вы хотите держаться подальше от 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;
Примечание: это НЕ отличный способ сделать это.