ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

14.02.2010, 21:05
|
|
Участник форума
Регистрация: 03.09.2009
Сообщений: 179
Провел на форуме: 1014907
Репутация:
90
|
|
Если тебе надо не заменять какую-то определённую картинку, то добавь в регулярку то, почему она не подходит.
|
|
|

14.02.2010, 21:14
|
|
Новичок
Регистрация: 01.07.2006
Сообщений: 10
Провел на форуме: 61364
Репутация:
0
|
|
Сообщение от vvy
что б она не смогла увидеть первое изображение нужно ее немного дописать, опираясь на html код этой картинки
дело в том что код картинки никак не отличается от других картинок на странице...
Сообщение от vvy
ЗЫ а ты можешь влиять на параметр "на что менять" в функции preg_replace?
да, смогу, есть идеи?
|
|
|

14.02.2010, 21:20
|
|
Познающий
Регистрация: 29.03.2009
Сообщений: 33
Провел на форуме: 73399
Репутация:
7
|
|
kof, я в php этим не разу не занимался, но думаю туда можно будет вставить функцию, всю целеком, вместе с телом (как безымянные функции в javascript), ток в начале попробовать нужно будет реализовать...
|
|
|

14.02.2010, 21:22
|
|
Новичок
Регистрация: 01.07.2006
Сообщений: 10
Провел на форуме: 61364
Репутация:
0
|
|
vvy, понял идею, буду курить, спасибо!
|
|
|

14.02.2010, 21:23
|
|
Участник форума
Регистрация: 03.09.2009
Сообщений: 179
Провел на форуме: 1014907
Репутация:
90
|
|
Сообщение от vvy
kof, я в php этим не разу не занимался, но думаю туда можно будет вставить функцию, всю целеком, вместе с телом (как безымянные функции в javascript), ток в начале попробовать нужно будет реализовать...
нельзя, для этого надо preg_replace_callback()
Есть 2 варианта:
Ничего не менять или менять всё на нужную картинку
|
|
|

14.02.2010, 21:55
|
|
Познающий
Регистрация: 29.03.2009
Сообщений: 33
Провел на форуме: 73399
Репутация:
7
|
|
для этого надо preg_replace_callback()
ну не знаю, в моем интерпритаторе(стандартны от денвера) отлично работает вот такой код:
PHP код:
function repl() {return '1111111';}
$html=preg_replace('~(<img[^>]*>)~i',repl(),$html);
но динамически создать функцию прямо в строке вызова preg_replace так и не получилось
У меня созрел другой вариант: все лишние img-и можно просто "сломать"
PHP код:
$html=preg_replace('~<img~i','<imggggggggg',$html);
$html=preg_replace('~<imggggggggg~i','<img',$html,1);
И получится, что неизвестный тег <imggggggggg> браузер не отобразит, а первую картинку мы вернем в прежнее состояние
|
|
|

14.02.2010, 22:30
|
|
Участник форума
Регистрация: 03.09.2009
Сообщений: 179
Провел на форуме: 1014907
Репутация:
90
|
|
Сообщение от vvy
ну не знаю, в моем интерпритаторе(стандартны от денвера) отлично работает вот такой код:
PHP код:
function repl() {return '1111111';}
$html=preg_replace('~(<img[^>]*>)~i',repl(),$html);
но динамически создать функцию прямо в строке вызова preg_replace так и не получилось 
Ты вызываешь функцию и ставишь на замену её результат
Сообщение от vvy
У меня созрел другой вариант: все лишние img-и можно просто "сломать"
PHP код:
$html=preg_replace('~<img~i','<imggggggggg',$html);
$html=preg_replace('~<imggggggggg~i','<img',$html,1);
И получится, что неизвестный тег <imggggggggg> браузер не отобразит, а первую картинку мы вернем в прежнее состояние
Не получиться, ты возвращаешь назад все каринки
Последний раз редактировалось WNZRS; 14.02.2010 в 22:33..
|
|
|

14.02.2010, 22:53
|
|
Познающий
Регистрация: 29.03.2009
Сообщений: 33
Провел на форуме: 73399
Репутация:
7
|
|
возвращаешь назад все каринки
Я возвращаю назад только первую найденную картинку (третий параметр в вызове функции)
Ты вызываешь функцию и ставишь на замену её результат
Спасибо, кеп. Но на самом деле это не важно, т.к. результат функции совершенно не зависит от найденного текста
PHP код:
function repl() {
static $i;
if ($i=='') {$i='1'; return '$1';}
else return '';
}
$html=preg_replace('~(<img[^>]*>)~i',repl(),$html);
(Правдо, этот вариант не рабочий, но я не стал на нем заморациватся, т.к. все равно задать функцию не получилось)
|
|
|

15.02.2010, 00:09
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Привет.
Код:
echo preg_replace('/<img[^>]++>/se', '$Q++ ? "$0" : ""', $data);
Будет notice.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|