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

  • Автор темы Alexygen
  • Дата начала
A

Alexygen

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

The Fen

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

Пример:

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

The Fen

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

Alexygen

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

Зарание огромное спасибо за ответ!!!
 
T

The Fen

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

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

Alexygen

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

The Fen

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

Alexygen

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

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

The Fen

#12
nl2br($строка)

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

The Fen

#14
<!--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]

Ответ ушел в личку.
 
A

Alexygen

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

The Fen

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

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

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

The Fen

#18
Если ты ваяешь парсер BBcode - то вряд ли последний :)
 
A

Alexygen

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