motorway Опубликовано 4 июня, 2007 Жалоба Поделиться Опубликовано 4 июня, 2007 Есть строка (или кусок текста) небольшого размера в переменной $.. - до неск. кБ. Нужно убрать из нее все, что идет до слова word1, оставить все, что дальше идет до слова word2, убрать между word2 и word3, и оставить все, что идет дальше до слова word4, а остаток строки убрать. Как это легче всего закодировать на php? Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 5 июня, 2007 Жалоба Поделиться Опубликовано 5 июня, 2007 Не самий красивий, но самий легкий вариант: <?$str = 'removing test word1 will stay up to word2 this would be removen but now word3 preserve text between it and word4 test test test test';$toremove = substr($str, 0, strpos($str, "word1"));$str = str_replace($toremove, "", $str);$start = strpos($str, "word2") + strlen("word2");$end = strpos($str, "word3") - $start;$toremove = substr($str, $start, $end );$str = str_replace($toremove, "", $str);$toremove = substr($str, strpos($str, "word4") + strlen("word4"));$str = str_replace($toremove, "", $str);echo $str;?> Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 5 июня, 2007 Автор Жалоба Поделиться Опубликовано 5 июня, 2007 Пока не успел в этом разобраться, но я пробовал еще с explode, где в качестве разделителя эти слова. Там довольно быстро убирается, м.б., даже легче этого ;) Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 5 июня, 2007 Жалоба Поделиться Опубликовано 5 июня, 2007 (изменено) Пока не успел в этом разобраться, но я пробовал еще с explode, где в качестве разделителя эти слова. Там довольно быстро убирается, м.б., даже легче этого ;) Очень хорошое решение ;) Изменено 5 июня, 2007 пользователем Darhazer Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 6 июня, 2007 Автор Жалоба Поделиться Опубликовано 6 июня, 2007 Еще вопрос: есть довольно глюкавый файл php с ява-скриптом, короче, суть вот в чем: нужно как-то передать в переменную на php содержимое текстового поля TEXTAREA, которое появляется с самого начала на этой странице. Но странно, что нет тэга <form>. Там довольно странно, если просто посмотреть, то что между тегами TEXTAREA, и скопировать для отображения (echo) - то это не то... Может, можно что-то типа document.write... Это очень нужно! я имел в виду коллекцию элементов формы на этой странице Ссылка на комментарий Поделиться на другие сайты Поделиться
mmap Опубликовано 7 июня, 2007 Жалоба Поделиться Опубликовано 7 июня, 2007 Как-то некрасиво... Лучше использовать <?php$str = 'removing test word1 will stay up to word2 this would be removen but now word3 preserve text between it and word4 test test test test';$str = preg_replace("/.+?word1(.+?)word2.+?word3(.+?)word4.+/", "word1\\1word2word3\\2word4", $str);echo $str;?> Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 8 июня, 2007 Жалоба Поделиться Опубликовано 8 июня, 2007 Правдо красиво Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 8 июня, 2007 Автор Жалоба Поделиться Опубликовано 8 июня, 2007 Когда в textarea есть текст в виде нескольких строк, то как сделать в php переменную, чтобы выводилось именно так, как в textarea? Если делать echo $str - то в виде строки одной пишет. Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 9 июня, 2007 Автор Жалоба Поделиться Опубликовано 9 июня, 2007 Вроде простая вещь, но не могу найти/понять: есть текстовый файл, как преобразовать его строки в массив, чтобы можно было работать с каждой строкой. Нужно считывать из файла по одной строке и на каждом действии цикла что-то с ней делать как с переменной $string :D Кажется, понял. Есть функция file+foreach :D Ссылка на комментарий Поделиться на другие сайты Поделиться
Ф@РТОВЫЙ Опубликовано 9 июня, 2007 Жалоба Поделиться Опубликовано 9 июня, 2007 Когда в textarea есть текст в виде нескольких строк, то как сделать в php переменную, чтобы выводилось именно так, как в textarea? Если делать echo $str - то в виде строки одной пишет.есть функция nl2br которая заменяет обычные переводы строк на html-ные ( то есть на тег <br> )$str = nl2br($str); Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 9 июня, 2007 Автор Жалоба Поделиться Опубликовано 9 июня, 2007 есть функция nl2br которая заменяет обычные переводы строк на html-ные ( то есть на тег <br> ) $str = nl2br($str); у меня файл оканчивается нек-рыми символами. Как убрать последнюю строку файла с помощью file или другой функции? или нужно каждый раз в foreach проверять - не содержит ли эти символы? Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 9 июня, 2007 Автор Жалоба Поделиться Опубликовано 9 июня, 2007 Как проверить, является ли первый байт строки символом = , и если да, то присвоить строке оставшуюся часть? Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 9 июня, 2007 Автор Жалоба Поделиться Опубликовано 9 июня, 2007 кое-как разобрался с помощью strpos, но все равно, как удалить первые несколько байт строки? Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 9 июня, 2007 Автор Жалоба Поделиться Опубликовано 9 июня, 2007 при выводе длинной строки (перем.) можно использовать тег <br>, и выводится на неск. строках, но при записи в файл пишется в виде одной строки, причем вместо новой строки вставляется текст <br>. Как нормально записать в файл на нескольких строках? Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 11 июня, 2007 Жалоба Поделиться Опубликовано 11 июня, 2007 при выводе длинной строки (перем.) можно использовать тег <br>, и выводится на неск. строках, но при записи в файл пишется в виде одной строки, причем вместо новой строки вставляется текст <br>. Как нормально записать в файл на нескольких строках? Надо пользуват "\n" или "\r\n" вместо <br> Ссылка на комментарий Поделиться на другие сайты Поделиться
mmap Опубликовано 12 июня, 2007 Жалоба Поделиться Опубликовано 12 июня, 2007 Как проверить, является ли первый байт строки символом = , и если да, то присвоить строке оставшуюся часть? if ($str[0] == '=')$str = sunstr($str, 1); кое-как разобрался с помощью strpos, но все равно, как удалить первые несколько байт строки? $str = substr($str, $start); // "удаляет" первые $start байт. при выводе длинной строки (перем.) можно использовать тег <br>, и выводится на неск. строках, но при записи в файл пишется в виде одной строки, причем вместо новой строки вставляется текст <br>. Как нормально записать в файл на нескольких строках? Делай копию $srt для вывода в браузере, либо заменяй теги <br /> на \n при выводе: $srt = preg_replace("/<br\s*\/*>/i", "\n", $srt); у меня файл оканчивается нек-рыми символами. Как убрать последнюю строку файла с помощью file или другой функции? или нужно каждый раз в foreach проверять - не содержит ли эти символы? Убрать последнюю строку из файла легко: $arr = file("file");array_pop($arr); P.S.: foreach медленнее свзязки count() + for() в 2-4 раза. Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 24 июня, 2007 Автор Жалоба Поделиться Опубликовано 24 июня, 2007 Нужно найти все вхождения подстрок вида >здесь любой текст</font> и вывести в виде массива этот самый текст внутри. :D Ссылка на комментарий Поделиться на другие сайты Поделиться
mmap Опубликовано 25 июня, 2007 Жалоба Поделиться Опубликовано 25 июня, 2007 preg_match_all("/<font>(.+?)<\/font>/, $str, $matches);print_r($matches); Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 29 июня, 2007 Автор Жалоба Поделиться Опубликовано 29 июня, 2007 ОК. Нужно для всех файлов в данной директории найти вхождение вида: "http://.../dir/..." и вырезать его, т.е. все, что в кавычках. КАК? ;) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти