• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

Alexygen

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

The Fen

Код:
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

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

Alexygen

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

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

The Fen

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

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

Alexygen

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

The Fen

Код:
<?php
$original = "[url][color=anything you want here][/url]";
echo preg_replace("/(\[color\=(.*)?\])/iU","<font color=\"$2\">",$original);
?>

Немного коряво, но ты уж извиняй, вторые сутки не сплю :)
 
A

Alexygen

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

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

The Fen

nl2br($строка)

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

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]

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

Alexygen

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

The Fen

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

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

Код:
<?php
$content = "[url]http://www.thefen.com[/url]";
echo preg_replace("/\[url](.*)\[\/url]/i","<a href=\"$1\">$1</a>",$content);
?>

у тебя появится еще один вопрос :)
 
A

Alexygen

:)

и он же был последний!
Спасибо огромное!!!
 
T

The Fen

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

Alexygen

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!