Перейти к содержанию
СофтФорум - всё о компьютерах и не только

php работа со строками


Рекомендуемые сообщения

Есть строка (или кусок текста) небольшого размера в переменной $.. - до неск. кБ.

Нужно убрать из нее все, что идет до слова word1, оставить все, что дальше идет до слова word2, убрать между word2 и word3, и оставить все, что идет дальше до слова word4, а остаток строки убрать. Как это легче всего закодировать на 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';$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;?>
Ссылка на комментарий
Поделиться на другие сайты

Пока не успел в этом разобраться, но я пробовал еще с explode, где в качестве разделителя эти слова. Там довольно быстро убирается, м.б., даже легче этого ;)

Ссылка на комментарий
Поделиться на другие сайты

Пока не успел в этом разобраться, но я пробовал еще с explode, где в качестве разделителя эти слова. Там довольно быстро убирается, м.б., даже легче этого ;)

Очень хорошое решение ;)

Изменено пользователем Darhazer
Ссылка на комментарий
Поделиться на другие сайты

Еще вопрос: есть довольно глюкавый файл php с ява-скриптом, короче, суть вот в чем:

нужно как-то передать в переменную на php содержимое текстового поля TEXTAREA, которое появляется с самого начала на этой странице. Но странно, что нет тэга <form>.

Там довольно странно, если просто посмотреть, то что между тегами TEXTAREA, и скопировать для отображения (echo) - то это не то...

Может, можно что-то типа document.write...

Это очень нужно! :rolleyes:

я имел в виду коллекцию элементов формы на этой странице

Ссылка на комментарий
Поделиться на другие сайты

Как-то некрасиво...

Лучше использовать

<?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;?>
Ссылка на комментарий
Поделиться на другие сайты

Когда в textarea есть текст в виде нескольких строк, то как сделать в php переменную, чтобы выводилось именно так, как в textarea? Если делать echo $str - то в виде строки одной пишет.

Ссылка на комментарий
Поделиться на другие сайты

Вроде простая вещь, но не могу найти/понять: есть текстовый файл, как преобразовать его строки в массив, чтобы можно было работать с каждой строкой.

Нужно считывать из файла по одной строке и на каждом действии цикла что-то с ней делать как с переменной $string

:D

Кажется, понял. Есть функция file+foreach :D

Ссылка на комментарий
Поделиться на другие сайты

Когда в textarea есть текст в виде нескольких строк, то как сделать в php переменную, чтобы выводилось именно так, как в textarea? Если делать echo $str - то в виде строки одной пишет.

есть функция nl2br которая заменяет обычные переводы строк на html-ные ( то есть на тег <br> )

$str = nl2br($str);

Ссылка на комментарий
Поделиться на другие сайты

есть функция nl2br которая заменяет обычные переводы строк на html-ные ( то есть на тег <br> )

$str = nl2br($str);

у меня файл оканчивается нек-рыми символами. Как убрать последнюю строку файла с помощью file или другой функции? или нужно каждый раз в foreach проверять - не содержит ли эти символы?

Ссылка на комментарий
Поделиться на другие сайты

Как проверить, является ли первый байт строки символом = , и если да, то присвоить строке оставшуюся часть?

Ссылка на комментарий
Поделиться на другие сайты

при выводе длинной строки (перем.) можно использовать тег <br>, и выводится на неск. строках,

но при записи в файл пишется в виде одной строки, причем вместо новой строки вставляется текст <br>. Как нормально записать в файл на нескольких строках?

Ссылка на комментарий
Поделиться на другие сайты

при выводе длинной строки (перем.) можно использовать тег <br>, и выводится на неск. строках,

но при записи в файл пишется в виде одной строки, причем вместо новой строки вставляется текст <br>. Как нормально записать в файл на нескольких строках?

Надо пользуват "\n" или "\r\n" вместо <br>

Ссылка на комментарий
Поделиться на другие сайты

Как проверить, является ли первый байт строки символом = , и если да, то присвоить строке оставшуюся часть?

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 раза.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Нужно найти все вхождения подстрок вида >здесь любой текст</font> и вывести в виде массива этот самый текст внутри. :D

Ссылка на комментарий
Поделиться на другие сайты

ОК. Нужно для всех файлов в данной директории найти вхождение вида:

"http://.../dir/..." и вырезать его, т.е. все, что в кавычках.

КАК? ;)

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...