Помогите составить выражение

Тема в разделе "Регулярные выражения", создана пользователем plyyyy, 20 авг 2010.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. plyyyy

    plyyyy Постоялец

    Регистр.:
    10 фев 2010
    Сообщения:
    52
    Симпатии:
    2
    Есть html-код в юникоде:
    Продаются Слоны. Очень <a href="/">хорошие слоны</a>! Всегда в наличии слоны.

    С помощью рег. выражения (на php) нужно сделать первое вхождение слова "слоны"(без учета регистра) ссылкой на определенную страницу. Например, "/sloni.htm". Естественно не трогая те части текста, которые уже находятся в ссылке.

    То есть вот что должно получиться:
    Продаются <a href="/sloni.htm">Слоны</a>. Очень <a href="/">хорошие слоны</a>! Всегда в наличии слоны.


    (нужно чтобы русифицировать плагин для джумлы Seo KeyWord Link )
     
  2. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    374
    Симпатии:
    41
    PHP:
    $str "Продаются Слоны. Очень <a href=\"/\">хорошие слоны</a>! Всегда в наличии слоны.";
    $reg1 '/слоны/i';
    $new '<a href="/sloni.htm">$0</a>';

    $result preg_replace($reg1,$new,$str,1);
    echo 
    $result;
     
  3. ec_stasis

    ec_stasis Создатель

    Регистр.:
    5 июл 2010
    Сообщения:
    24
    Симпатии:
    3
    Если строка в utf-8, то нужно так:
    PHP:
    <?php

    $str 
    "Продаются Слоны. Очень <a href=\"/\">хорошие слоны</a>! Всегда в наличии слоны.";
    $reg1 '/слоны/iu';
    $new '<a href="/sloni.htm">$0</a>';

    $result preg_replace($reg1,$new,$str1);
    echo 
    $result;

    ?>
    $reg1 = '/слоны/iu';
    модификатор u - utf-8
     
Статус темы:
Закрыта.