Добавьте атрибут nofollow для ссылки, если тег заголовка отсутствует с помощью PHP

У меня есть куча текста с html. В основном, что я хочу сделать, это все ссылки, найденные в этом тексте. Я хочу добавить rel = "noindex" в каждую найденную ссылку, только если атрибут title отсутствует.

Например, если ссылка выглядит так:

<a href="test.html">test</a> 

Я хочу, чтобы это выглядело так:

 <a rel="nofollow" href="test.html">test</a> 

Но если ссылка выглядит так:

 <a title="test title" href="test.html">test</a> 

Я не хочу добавить к этому атрибуту rel = "nofollow". Как я могу это сделать в php?

РЕДАКТИРОВАТЬ:

Мне жаль, что я не упоминал об этом, но я использую PHP4. Да, я знаю, но я застрял с PHP4.

Сначала используйте preg match, чтобы получить, если заголовок будет добавлен.

 $str = '<a href="test.html">test</a>'; if(!preg_match('/title=/', $str)) { $str = str_replace('href=', 'rel="nofollow" href=', $str); } 

Совсем просто с DOMDocument :

 $dom = new DOMDocument; $dom->loadHTML($yourHTML); $links = $dom->getElementsByTagName('a'); foreach ($links as $link) { if (!$link->hasAttribute('title')) { $link->setAttribute('rel', 'nofollow'); } } $yourHTML = $dom->saveHTML(); 

Это гораздо более стабильно и надежно, чем с регулярным выражением.