Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

03.12.2007, 16:50
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
регулярные выражения
пытаюсь написать собственный парсер для ИМГ тегов.
PHP код:
$data = "текст факинг текст [img]hack.jpg[/img] второй текст [img]deex.jpg[/img]";
eregi("(\[img\]([a-z.]+)\[/img\])", $data, $regs);
echo ("<pre>");
print_r($regs);
echo ("</pre>");
на данный момент встал вопрос:
почему результат выводит один тег два раза?
PHP код:
Array
(
[0] => [img]hack.jpg[/img]
[1] => [img]hack.jpg[/img]
[2] => hack.jpg
)
|
|
|

03.12.2007, 16:55
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Он сначала тебе выводит полностью шаблон, потом совпадение с первым подшаблоном, потом со вторым.
|
|
|

03.12.2007, 17:09
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
ничо не понимаю
ну а здесь что может быть не так?
PHP код:
$str = "текст факинг текст [img]hack.jpg[/img] второй текст [img]deex.jpg[/img]";
$pattern = "/([img\])/i";
$replacement = "1 \${1}";
print preg_replace($pattern, $replacement, $str); // line 30
PHP код:
Warning: preg_replace() [function.preg-replace]: Compilation failed: missing terminating ] for character class at offset 8 in h:\home\localhost\www\txtdb\r.php on line 30
|
|
|

03.12.2007, 17:17
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Ошибка в паттерне:
$pattern = "/([img\])/i";
Обрати внимание, что у тебя внутри шаблона идёт квадратная скобка [. В терминах regexp всё что между квадратных скобок трактуется как класс символов ([a-zA-Z] и т.д.). У тебя же, как я понимаю, знчение квадратной скобки должно быть "как символ"... Вот и экранируй его тогда... Причём вторую скобку ты проэкранировал, а первую забыл... Делай так:
$pattern = "/(\[img\])/i";
|
|
|

03.12.2007, 17:29
|
|
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме: 3152874
Репутация:
1020
|
|
Че та я не доганю, ты хочешь заменить все теги на img на 1$
|
|
|

03.12.2007, 17:31
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
cпасибо большое, тока я всё ещё не могу получить желаемое:
PHP код:
$str = "текст факинг текст [img]hack.jpg[/img] второй текст [img]deex.jpg[/img]";
$pattern = "/(\[img\])([a-z.A-Z0-9]+)(\[/img\])/i";
$replacement = "<a href='img/\${2}'>\${2}</a>";
print preg_replace($pattern, $replacement, $str); // line 30
проблема вот в этом:
$pattern = "/(\[img\])([a-z.A-Z0-9]+) (\[/img\])/i";
когда я добавляю этот кусок, у меня всё бьётся. а без него я получаю то что хочу -
[img]hack.jpg[/img] превращается в ссылку, но в конце остаётся [/img]:
текст факинг текст hack.jpg[/img] второй текст deex.jpg[/img]
|
|
|

03.12.2007, 17:36
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
А так не пробовал?
$pattern = "/(\[img\])([a-z.A-Z0-9]+)(\[\/img\])/i";
|
|
|

03.12.2007, 17:38
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
О да! Под вечер башка совсем варить отказывается 
Спасиба большое 
|
|
|
|
 |
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
регулярные покупаем траф и загрузки
|
loader32 |
Трафик, лоады, инсталлы, загрузки - Покупка, продажа |
0 |
22.09.2007 20:56 |
|
Регулярные выражения и sql инъекции
|
Satell |
PHP, PERL, MySQL, JavaScript |
4 |
18.09.2007 09:37 |
|
регулярные выражения. вопрос
|
DRON-ANARCHY |
PHP, PERL, MySQL, JavaScript |
20 |
01.05.2007 11:42 |
|
Регулярные выражения [Beta-version]
|
Talisman |
Авторские статьи |
8 |
20.03.2007 16:32 |
|
Обнаружение Sql инъекций и Css атак
|
k00p3r |
Чужие Статьи |
0 |
12.06.2005 20:43 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|