2Pashkela: Примерно такого содержания код страницы: PHP: <a href="javascript:openWindow('/ berQ0p6inQ/')" title="t">text here</a> <span>Enquire</span></a> </div><div class="buttonDetails"> <a class="button details" href="javascript:openWindow('/ berQ0p6inQ/')" title="t">and here text too</a> В первом случае встречается ссылка без указания class'а в другом с указанием class'a. Всего на странице около 7 ссылок и хотелось бы реализовать через preg_replace. Нужно заменить чудо: href="javascriptopenWindow('/berQ0p6inQ/')" на href="index.html" Вот и всё...
Ну как то так PHP: $sourc=<<<HERE <a href="javascript:openWindow('/ berQ0p6inQ/')" title="t">text here</a> <span>Enquire</span></a> </div><div class="buttonDetails"> <a class="button details" href="javascript:openWindow('/ berQ0p6inQ/')" title="t">and here text too</a> <a href="javascript:openWindow('/ berQ0p6inQ/')" title="t">text here</a> <span>Enquire</span></a> </div><div class="buttonDetails"> <a class="button details" href="javascript:openWindow('/ berQ0p6inQ/')" title="t">and here text too</a> <a href="javascript:openWindow('/ berQ0p6inQ/')" title="t">text here</a> <span>Enquire</span></a> HERE; echo preg_replace("|(javascript:openWindow\('\/.*\/'\))|sU", "index.html",$sourc);
PHP: <? /* Создай файл tema.txt и запихни туда следующее, чтобы проверить работу проги: <a href="javascript:openWindow('/berQ0p6inQ/')" title="t">text0</a> <a class="button details" href="javascript:WINDOW('/berQ0341/')" title="t">text1</a> <a class="button details" href="javascript:WINDOW('/berQ0342/')" title="t">text2</a> <a class="button details" href="javascript:WINDOW('/berQ0343/')" title="t">text3</a> */ /* Чтобы проверить результаты работы надо запустить в опере, выйдет два столбика - оригинал и измененный, просто поднести мышку и посмотреть, как изменились ссылки, также создается файл tema1.txt, где измененные исходники */ $fp = fopen("tema.txt", "r"); $list = fread($fp, filesize("tema.txt")); fclose($fp); echo $list . "\r\n"; /* удалить потом, просто показывает как было в оригинале */ /*--------------------------------------------------------------------------------------------------------------*/ // Собственно сама замена /*------------------*/ if (preg_match_all('/href="(.*)" title(.*)/i', $list, $result)) { $count = count($result[1])-1; for ($i=0;$i<=$count;$i++) $list = str_replace($result[1][$i], "index.html", $list); } /*------------------*/ // Конец замены $fp = fopen("tema1.txt", "a+"); fwrite($fp,$list . "\r\n"); fclose($fp); echo $list . "\r\n"; /*-------------------------------------------------------------------------------------------------------------*/ ?> будет работать независимо от содеражания того, что в кавычках "javascriptpenWindow('/ berQ0p6inQ/')" и вообще легко подстраивается под любые нужды
Надо скопировать текст который находится между <b><kis="ar"> и </b> Вот вообщем надо регулярку, текст не в одну строку а в несколько.
PHP: $w = '<b><kis="ar"> и </b>'; preg_match('#<b><kis\="ar">(.{0,})</b>#im',$w,$n); $a= $n['1']; $b = $n['1'];
PHP: $w = <<<THIS <b><kis="ar">мля большой при большой текст даеше и с прееводом строки несколько раз </b> THIS; preg_match('#<b><kis\="ar">(.*?)</b>#is',$w,$n); print_r($n);
PHP: if (preg_match_all('/<b><kis(.*)>(.*)<\/b>/i', $list, $result)) print_r ($result); в html весь текст идет сплошняком в одну строку, и те ВВОДЫ, что ты сделал вручную для перевода строки, не подействуют, пока не поставишь например <br> - а это уже совсем другая регулярка. Так что то, что выглядит текстом " в несколько строк" но не имеет внутри текста разделителей строк - просто текст в одну строчку Пробелы учитываются.
кстати пашет, модификатор шаблона s (PCRE_DOTALL) - будет означать что метасимвол "." означаюший любой символ будет также засчитываться и для переводов строки.
народ, читал читал, ну никак не доходят до меня регулярки, какой реврайт надо сделать чтобы было так. юзер заходит на pipiska.chlen.ru и ему показывают страницу chlen.ru/pipiska ? тоесть *.chlen.ru = chlen.ru/*
Подскажите, нужно написать регулярку, для дополнительного поля профиля пользователя на форуме vBulletin Нужно исключить в этом поле "http" и прочие адреса сайтов. Спасибо!
попробуй так PHP: preg_match('/\\b(http:\/\/|)([-A-Z0-9.]+)(\/[-A-Z0-9+&@#\/%=~_|!:,.;]*)?(\\?[-A-Z0-9+&@#\/%=~_|!:,.;]*)?/i', $subject)
Мне вставить в это поле : Code: /\\b(http:\/\/|)([-A-Z0-9.]+)(\/[-A-Z0-9+&@#\/%=~_|!:,.;]*)?(\\?[-A-Z0-9+&@#\/%=~_|!:,.;]*)?/i это допустимо будет? Задача исключить в этом поле, при регестрации пользователя - имена сайтов.
по идее, нет. Тогда он будет допускать только такие имена пользователей, которые похожи на адреса сайтов.