Автоматически добавит атрибут title указанным элементам, у которых атрибута title нет
Синтаксис: title($data='', $element='')
$data - передаваемый данные (обычно HTML-код)
$element - элемент, у которого проверяется наличие title
Пример:
echo title('Cайт <a href="/page.html">всегда работает</a> очень <a href="/page.html" title="будьте уверены">быстро</a>', 'a');
// в результате получим данные с одним добавленным атрибутом title, ведь у второго элемента данный атрибут уже был:
Cайт <a href="/page.html" title="всегда работает">всегда работает</a> очень <a href="/page.html" title="будьте уверены">быстро</a>
function title($data='', $element=''){// Например: title($text, 'a')
if($data && $element){
$data = str_replace(' />', '>',
str_replace('title=""', '',
str_replace("title=''", '',
str_replace('title="\"', '',
str_replace("title='\'", '',
str_replace('title=\"', 'title="',
str_replace("title=\'", "title='", $data)))))));
$replace_modifiers = array("\n","\t","\r","\f");
preg_match_all('/<'.$element.'(.+)>(.*)<\/'.$element.'>/sUi', $data, $found);// (.*) - указано потому, что иногда элемент может быть просто якорем, например <a name="якорь"></a>
foreach($found['1'] as $k=>$v){
if(!mb_stristr($v, 'title=')){
$title = trim(str_replace('"', '"', str_replace($replace_modifiers, " ", strip_tags($found['2'][$k]))));
if($title){
$data = str_replace($found['0'][$k], '<'.$element.$v.' title="'.$title.'">'.$found['2'][$k].'</'.$element.'>', $data);
}
}
}
}
return $data;
}
|