Регулярные выражения

Тема в разделе "PHP программирование", создана пользователем Alexygen, 14 янв 2007.

  1. Alexygen

    Alexygen Гость

    Как с помощью фунцкии preg_replace() заменить конструкцию [color=#xxxxxx] на <font color="#xxxxxx"> где хххххх - любые символы?
     
  2. The Fen

    The Fen Гость

    Код (Text):
    preg_replace("/(\[color=\#(.{6})\])/is","<font color=\"$2\">",$original);
    где $original - переменная с текстом, где нужно искать места для замены.

    Пример:

    Код (Text):
    <?php
    $original = "blabla[color=#xxxxxx]hehe";
    echo preg_replace("/(\[color=\#(.{6})\])/is","<font color=\"$2\">",$original);
    ?>
     
  3. Alexygen

    Alexygen Гость

    а если там стоит не #000000, а black?
     
  4. The Fen

    The Fen Гость

    Уважаемый, вы задали конкретный вопрос - и получили конкретный ответ.
    Я думаю Вам было бы проще полистать литературу по регулярным выражениям, чем для каждого частного случая спрашивать совета.
     
  5. Alexygen

    Alexygen Гость

    Я просто хочу понять что такое \#(.{6})\ и почему когда убираешь # ничего не работает! Мне кажется, если я пойму этот случай, то в остальном разберусь сам!

    Зарание огромное спасибо за ответ!!!
     
  6. The Fen

    The Fen Гость

    Не вдаваясь в подробности:

    \# - это кусок строки... в частности # перед xxxxxx
    (.{6})\ - точка - это любой символ, {6} - количество таких символов
     
  7. Alexygen

    Alexygen Гость

    а почему тогда $content=preg_replace("/(\[color=\.{6}\])/is","<font color=\"$2\">",$content); неработает?
     
  8. The Fen

    The Fen Гость

    Код (Text):
    <?php
    $original = "[url][color=anything you want here][/url]";
    echo preg_replace("/(\[color\=(.*)?\])/iU","<font color=\"$2\">",$original);
    ?>
    Немного коряво, но ты уж извиняй, вторые сутки не сплю :)
     
  9. Alexygen

    Alexygen Гость

    круто, спасибо огромное!!!
     
  10. The Fen

    The Fen Гость

    Всегда пожалуйста :)
     
  11. Alexygen

    Alexygen Гость

    А Вы дизайнер или программист?

    Да и последний вопрос по программированию! А какв форме textarea заменять перенос строки на <br>? Т.е. когда мы пишем и хотим написать в новой строке, то навимаем пробел, но при выводе на экран после сохранения этого переноса нет!
     
  12. The Fen

    The Fen Гость

    nl2br($строка)

    заменит все переносы в $строка на <br>
     
  13. Alexygen

    Alexygen Гость

    А Вы дизайнер или программист?
     
  14. The Fen

    The Fen Гость

    <!--QuoteBegin-Alexygen+15:01:2007, 17:49 -->
    <span class="vbquote">(Alexygen @ 15:01:2007, 17:49 )</span><!--QuoteEBegin-->А Вы дизайнер или программист?

    [snapback]53263" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Ответ ушел в личку.
     
  15. Alexygen

    Alexygen Гость

    похоже я туплю, но разве $content=preg_replace("/(\[url\](.*)?\[/url])/iU","<a href=\"$2\">$2",$content); не должно работать? В чем ошибка?
     
  16. The Fen

    The Fen Гость

    Не должно... =) Учите регулярные выражения, сударь.

    И даже после этого:

    Код (Text):
    <?php
    $content = "[url]http://www.thefen.com[/url]";
    echo preg_replace("/\[url](.*)\[\/url]/i","<a href=\"$1\">$1</a>",$content);
    ?>
    у тебя появится еще один вопрос :)
     
  17. Alexygen

    Alexygen Гость

    :)

    и он же был последний!
    Спасибо огромное!!!
     
  18. The Fen

    The Fen Гость

    Если ты ваяешь парсер BBcode - то вряд ли последний :)
     
  19. Alexygen

    Alexygen Гость

    я уже наваял! Вот только теперь думаю как http:// прописывать, т.е. если его не ввели от автоматически вставить, а если ввели, то не вставлять!
     
  20. Alexygen

    Alexygen Гость

    разобрался!!!
     
Загрузка...

Поделиться этой страницей