простановка title регулярное выражение

(Ответов: 7, Просмотров: 774)
  1. Banned
    • Регистрация: 22.05.2011
    • Сообщений: 129
    • Репутация: 23
    Добрый день.
    Может делал кто-нибудь такое: добавление title к ссылкам регулярным выражением?
    • 0
  2. Дипломник
    • Регистрация: 19.12.2009
    • Сообщений: 145
    • Репутация: 32
    24list,

    Код:
    $str = '<a href="#" title="title">anchor</a>text';
    
    $str = preg_replace('#(<a\s+[^>]*)\s*title="title"#is', '$1', $str); //если есть тайтлы - удаляем
    $str = preg_replace('#(<a\s+)#is', '$1title="new title"', $str);
    
    echo $str;
    • 1

    Спасибо сказали:

    24list(27.03.2012),
  3. Banned
    • Регистрация: 22.05.2011
    • Сообщений: 129
    • Репутация: 23
    Немного не так
    Код:
    $str = '<a href="#" title="title">anchor</a>text';
    в итоге должно получится:
    $str = '<a href="#" title="anchor">anchor</a>text';
    • 0
  4. Дипломник
    • Регистрация: 19.12.2009
    • Сообщений: 145
    • Репутация: 32
    Цитата Сообщение от 24list Посмотреть сообщение
    Немного не так
    Код:
    $str = '<a href="#" title="title">anchor</a>text';
    в итоге должно получится:
    $str = '<a href="#" title="anchor">anchor</a>text';
    так вместо new title впишите anchor
    • 0
  5. Banned
    • Регистрация: 22.05.2011
    • Сообщений: 129
    • Репутация: 23
    нет, какой текст ссылки такой же должен быть title
    • 0
  6. Дипломник
    • Регистрация: 19.12.2009
    • Сообщений: 145
    • Репутация: 32
    посмотрите мой код внимательней:

    Код:
    $str = '<a href="#" title="title">anchor</a>text';
    
    $str = preg_replace('#(<a\s+[^>]*)\s*title="title"#is', '$1', $str); //если есть тайтлы - удаляем
    $str = preg_replace('#(<a\s+)#is', '$1title="new title"', $str);
    
    echo $str;

    чтобы получить
    Код:
    $str = '<a href="#" title="title">anchor</a>text';
    в итоге должно получится:
    $str = '<a href="#" title="anchor">anchor</a>text';
    необходимо в третьей строчке заменить new title на anchor
    • 0
  7. Banned
    • Регистрация: 22.05.2011
    • Сообщений: 129
    • Репутация: 23
    вы подразумеваете что новый title известен заранее, это не так
    Код:
    '<a href="#" title="title">anchor</a>text'  ->  '<a href="#" title="anchor">anchor</a>text'
    '<a href="#">new anchor</a>text'  ->  '<a href="#" title="new anchor">new anchor</a>text'
    '<a href="#">txt</a>'  ->  '<a href="#" title="txt">txt</a>'
    Последний раз редактировалось 24list; 27.03.2012 в 20:40.
    • 0
  8. Дипломник
    • Регистрация: 19.12.2009
    • Сообщений: 145
    • Репутация: 32
    Цитата Сообщение от 24list Посмотреть сообщение
    вы подразумеваете что новый title известен заранее, это не так
    теперь понял

    попробуйте так:
    Код:
    $str = preg_replace('#(<a\s+)([^>]*>)([^<]*)#is', '$1title="$3"$2$3', $str);
    ЗЫ: код не проверял, если не работает - скажите, проверю как освобожусь

    и да, в коде считаю что никаких тегов внутри ссылки быть не может
    • 1

    Спасибо сказали:

    24list(27.03.2012),

Похожие темы

Темы Раздел Ответов Последний пост
Влияет ли регулярное написание статей на скорость индексации Googl’ом?
Google 26 26.09.2011 04:03
Готовые статьи. Регулярное обновление
Копирайтинг, переводы, постинг 4 21.09.2011 18:24
Влияет ли регулярное написание статей на скорость индексации Googl’ом?
Вопросы от новичков 4 18.09.2011 13:55
Title и h1
Вопросы от новичков 4 28.03.2011 12:19
Title в ВП
Web программирование 1 28.11.2010 12:46

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры