Имеется строка такого типа: Code: ":"http:\/\/cs11144.vkontakte.ru\/u50**1914\/-6\/z_ba**ad66.jpg" Как, с помощью preg_replace получить нормальную ссылку? Как бы я ни старался, он ":" и " представляет все время по разному, то в виде quot; , то &;:&; , то в обычном виде ":" .
есть текст вида PHP: .............. <script type="text/javascript"> %%%%% </script> ............... как спарсить на php строку %%%%% (тоесть тело js скрипта) помоги пожалуйста , просто с регулярками никогда не работал, а тут срочно пришлось
как в htaccess сделать вывод файла "t.txt" (корень сайта) по любому из адрессов "t(тут любые цифры в разном количестве).t". причем требуется всегда ответ от сервера 200
Code: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^t([0-9]+).t/?$ t.txt [L,QSA]
можно как нибудь в одно правило записать? Code: RewriteRule ^([a-zA-Z0-9_/]+)$ index.php?p=$1 RewriteRule ^([a-zA-Z0-9_/]+)-([0-9]*)?$ index.php?p=$1&skip=$2
if (!preg_match('#[0-9]{2}\s[0-9]{7}#',$seria[$i])) {echo "0";}else{echo "1";} Нужно чтоб строка $seria[$i] обязательно была формата 11 1112233 то есть 2 первые цифры пробел и 7 идущих дальше. В чем тут: [0-9]{2}\s[0-9]{7} ошибка? регулярка чуть ли не все подряд одобряет
Ограничители начала и конца строки помогут, но \s пропустит как пробел так и табуляцию, если не критично, можно оставить так. Как вариант если нужно именно пробел а не табуляцию, тогда так: Code: #^\d{2} \d{7}$#
preg_match("#[а-я А-Я]#" Как сюда добавить тире? только тире... Чтоб из разрешенных было русские буквы,тире и пробел? и почему preg_match("#[а-я А-Я]#",$text); Пропускает текст вида: Иванов Иван Ivanivich хотя четко указано только русские и пробел( #^[а-я А-Я]{2,3}+$# так пробовал... 2 или 3 блока с русскими буквами и пробел.. Вообще ничего не пропускает preg_match("|^[-а-я]+$|i",strtolower($rus_fio[$i])) так тоже( хотя привожу в нижнии регистр и в нем сравниваю..
-=Zhenek=-, заюзайте 3-й параметр функции preg_match() и поймете, почему пропускает. А также вспомните о существовании символов ^ и $.
#^([а-яА-ЯчЧ]{2,20})\s([а-яА-ЯчЧ]{2,20})\s([а-я А-ЯчЧ]{2,20})$# Вот. Иванов Иван Иванович пропускает а Петров Петр Петрович нет п.с буквы ч там добавлены т.к он говорил что их нет в диапазоне а-я Ну а добавление 3 параметра не особо помогает.. если регулярка правильная он заполняется.. если нет то пустой.
Логика.. Если в слове есть буква ч регулярка ее не пропускает. удаляем все работает. Искал проблему методом научного тыка. Отчество Иванович не пропускал пока букву "ч" не удалил. удалил, сработало. заменил ее на произвольные любые другие типа Ивановиапва пропустило. Поэтому я и в замешательстве.
-=Zhenek=- используйте вещи правильно. Если входная строка в кодировке utf-8 и содержит символы c кодом >128 необходимо использовать модификатор u: PHP: <?PHP $in_arr = array('Иванов Иван Иванович', 'Петров Петр Петрович'); foreach ($in_arr as $in) if (preg_match('#^([а-яА-Я]{2,20})\s([а-яА-Я]{2,20})\s([а-яА-Я]{2,20})$#u', $in, $out)) var_dump($out); Того же эффекта можно добиться, если использовать однобайтовые кодировки, но так лучше НЕ ДЕЛАТЬ PHP: <?PHP $in_arr = array('Иванов Иван Иванович', 'Петров Петр Петрович'); foreach ($in_arr as $in) { $in = iconv('utf-8', 'cp1251', $in); if (preg_match(iconv('utf-8', 'cp1251', '#^([а-яА-Я]{2,20})\s([а-яА-Я]{2,20})\s([а-яА-Я]{2,20})$#'), $in, $out)) var_dump($out); } И просто рекомендация - если не понимаете почему что-то происходит, выясняйте причину, а не городите костыли на пустом месте
Есть строка вида PHP: <img src='capcha.php?s=тут_сессия_которую_вырезает_античат' как это спарсить (сессию)? Пишу регулярку, но дает странный еррор preg_match("/(<img src=\'capcha.php?s\[S+]\'/" Compilation failed: missing ) at offset 32 в строке где регулярка.