Ну так открывай файл через file(); в цикле каждую строку проверяй условием, кот. я привел. Например: PHP: <?php $file_arr = file("text.txt"); foreach($file_arr as $line) { strlen($line) <= 10 ? $line = '' : '' ; echo $line."<br>"; } ?> Скрипт выведет текстовый файл исключая сроки меньше или равные 10 симвалам. в условии можно переделать на проверку условием и записем в файл, тоесть запишется новый файл, где не будет "маленьких" строк. Возможно есть и более практичный вариант. PS. Написал на скорую руку, нужно доделать до нормального вывода и вырезания "строки"
Вообще с трудом понял суть проблемы, а что если считать файл побайтово в переменную, далее переменную разбить на Строки $strings = explode("\r\n", $file); Далее сделать поиск в кадом ключе $strings[0], [1], [2]... искать кол-во символов "\n" если оно меньше 10, то делать unset($strings[$key]); Потом склеиваем оставшиеся ключи и перезаписываем файл. Надеюсь правильно понял суть вопроса =)
чото хитромудрая надуманность какая-то, вот так вот и пох на размеры файла: PHP: <?php $a = fopen('123.txt','r'); while (!feof($a)) { $b = trim(fgets($a)); if (strlen($b)>10) echo $b . "<br>"; } ?> Причем здесь регулярки - искренне не понял. Или залей куда-нибудь пример такого файла
Бред, имхо PS: Сорри, но правда бред ни одна регулярка не будет работать быстрее while и strlen, имхо в квадрате Тем более с большим файлом
понял, может это наведет на подсказку: PHP: <?php $a = fopen('123.txt','r'); while (!feof($a)) { $b = trim(fgets($a)); if (preg_match('#.{10}#',$b)) echo $b . "<br>"; } ?> где в 123.txt - твой текст
rushter Я не пойму, тогда в чем проблема? Если твоя регулярка работает, то к чему тема? Твоя регулярка ищет количество имволов между "\n" и "\n", если и работает, то. Первую строку он не распознает, т.к. она начальная и перед нею нету знака переноса строки, что соответсвенно и с конечной строкой.
хммм =\ Вообщем такая тема, если было 2 строки меньше 20 символов одна - за другой, то вырезается только одна. Видимо замена на \n мешает сразу вырезать сл. строку. Тоесть если между этими строками вставить еще одну больше 20 символов, то в один раз все вырезается. Например: PHP: $out = preg_replace("#\n(.{1,20})\n#","\n",$string); $out = preg_replace("#\n(.{1,20})\n#","\n",$out); Успешно вырежет оставшуюся (забытую) строку. Но если их будет больше 2х подряд, то проблема. Вообщем нужен или цикл, каждый раз проверя еслть ли там строки меньше 20 символов, либо думать над шаблоном
Что то не получается вытащить цифры после Location: /id PHP: HTTP/1.1 302 Found Server: nginx/0.7.59 Date: Mon, 14 Dec 2009 11:17:46 GMT Content-Type: text/html; charset=windows-1251 Connection: close X-Powered-By: PHP/5.2.6-1+lenny3 Pragma: no-cache Cache-control: no-store Set-Cookie: remixchk=5; expires=Thu, 09-Dec-2010 05:38:21 GMT; path=/; domain=.vkontakte.ru Set-Cookie: remixsid=c54f572c56461cef2bc77daf110a3a2c16bc62f49f31bb800bf161a; expires=Thu, 09-Dec-2010 10:36:40 GMT; path=/; domain=.vkontakte.ru Location: /id12345678 Vary: Accept-Encoding Content-Length: 0 HTTP/1.1 200 OK Server: nginx/0.7.59 Date: Mon, 14 Dec 2009 11:17:50 GMT Content-Type: text/html; charset=windows-1251 Transfer-Encoding: chunked Connection: keep-alive X-Powered-By: PHP/5.2.6-1+lenny3 Pragma: no-cache Cache-control: no-store Vary: Accept-Encoding Подскажите кто может.
у меня есть текст Code: <a href="" class="tracknews">*ТЕКСТ*</a> и надо заменивать что бы остался только *ТЕКСТ*, сам шаблон статический кроме слова *ТЕКСТ*. я написал регулярку только она его не хочет доставать: Code: $txt = preg_replace('#<a href="" class="tracknews">.+?</a>#si', '\\1', $txt);
PHP: <?php $txt = '<a href="" class="tracknews">*ТЕКСТ*</a>'; $txt = preg_replace('#<a href="" class="tracknews">(.*)</a>#','$1',$txt); echo $txt; ?>