Я хочу преобразовать текстовые ссылки в «реальные» ссылки, используя php.PHP - Текстовая ссылка для ссылки
Моя проблема в том, что и изображения меняются - кто знает, как я могу это исправить?
Some text with link - the first (Image) should stay as it is, the others should be converted
<img src="http://www.google.de/someimage.jpg">
www.google.de
http://www.google.de
Сценарий я использую
$text = preg_replace(
array(
'/(?(?=<a[^>]*>.+<\/a>)(?:<a[^>]*>.+<\/a>)|([^="\']?)(\b(?:https?|ftp|bf2|):\/\/[^<> \n\r]+))/iex',
'/<a([^>]*)target="?[^"\']+"?/i',
'/<a([^>]+)>/i',
'/(^|\s)(www.[^<> \n\r]+)/iex'),
array(
"stripslashes((strlen('\\2')>0?'\\1<a href=\"\\2\">\\2</a>\\3':'\\0'))",
'<a\\1',
'<a\\1 target="_blank">',
"stripslashes((strlen('\\2')>0?'\\1<a href=\"http://\\2\">\\2</a>\\3':'\\0'))",
),
$text
);
Не следует использовать регулярное выражение для разбора/редактирования HTML - использовать XML-парсер. Разбирайте документ, затем перебирайте узлы и применяйте изменения только к текстовым узлам. –