Удаление пустых строк php

Как удалить пустые строки из текста в PHP?

Мне нужно удалить пустые строки (с пробелами или абсолютно пустыми) в PHP. Я использую это регулярное выражение, но оно не работает:

Вышеупомянутое регулярное выражение говорит:

ereg-replace() неверно, потому что ereg/eregi устарели. Ваш preg_replace() даже не будет компилироваться, но если вы добавите разделители и установите многострочный режим, он будет работать нормально:

Но то, что он делает большую часть времени, – это замена двух или нескольких последовательных строк новой строки вместе с любыми горизонтальными пробелами (пробелами или вкладками), которые находятся между ними, с одной линией. Во всяком случае, это намерение. Кажется, что автор ожидает, что \s будет соответствовать просто символу пробела ( \x20 ), когда на самом деле он соответствует любому символу пробела. Это очень распространенная ошибка. Фактический список варьируется от одного аромата регулярного выражения до следующего, но, как минимум, вы можете ожидать, что \s будет соответствовать любому [ \t\f\r\n] совпадению.

На самом деле, в PHP у вас есть лучший вариант:

\h соответствует любому горизонтальному символу пробела, а \v соответствует вертикальному пробелу.

Просто взорвите строки текста в массив, удалите пустые строки с помощью array_filter и снова array_filter массив.

Или в одной строке:

Комментарий от Bythos от ссылки Джейми выше работал для меня:

Я не хотел снимать все новые строки, просто пустые / пробельные. Это делает трюк!

Если вы выведете это в текстовый файл, он будет выдавать одинаковый вывод на простой блокнот, Wordpad, а также на текстовые редакторы, например Notepad ++.

Этот только удаляет их от начала и до конца, а не от середины (если кто-то еще искал это).

Принятый ответ оставляет дополнительный прерывание строки в конце строки. Использование rtrim() приведет к удалению этой последней строки:

Из этого ответа работайте отлично для меня!

Источник

Как удалить пустые строки из текста в PHP?

Мне нужно удалить пустые строки (с пробелами или абсолютно пустыми) в PHP. Я использую это регулярное выражение, но оно не работает:

Но то, что он делает большую часть времени, – это замена двух или нескольких последовательных строк новой строки вместе с любыми горизонтальными пробелами (пробелами или вкладками), которые находятся между ними, с одной линией. Во всяком случае, это намерение. Кажется, что автор ожидает, что \s будет соответствовать просто символу пробела ( \x20 ), когда на самом деле он соответствует любому символу пробела. Это очень распространенная ошибка. Фактический список варьируется от одного аромата регулярного выражения до следующего, но, как минимум, вы можете ожидать, что \s будет соответствовать любому [ \t\f\r\n] совпадению.

На самом деле, в PHP у вас есть лучший вариант:

\h соответствует любому горизонтальному символу пробела, а \v соответствует вертикальному пробелу.

Просто взорвите строки текста в массив, удалите пустые строки с помощью array_filter и снова array_filter массив.

Или в одной строке:

Комментарий от Bythos от ссылки Джейми выше работал для меня:

Я не хотел снимать все новые строки, просто пустые / пробельные. Это делает трюк!

Если вы выведете это в текстовый файл, он будет выдавать одинаковый вывод на простой блокнот, Wordpad, а также на текстовые редакторы, например Notepad ++.

Этот только удаляет их от начала и до конца, а не от середины (если кто-то еще искал это).

Принятый ответ оставляет дополнительный прерывание строки в конце строки. Использование rtrim() приведет к удалению этой последней строки:

Из этого ответа работайте отлично для меня!

Источник

Как удалить повторяющиеся и пустые строки из *.txt?

Имеется текстовый файл temp6.txt в котором следующая информация:

Удаление пустых строк php

Удаление повторений и пустых строк таким образом

Не работает:

7 и 8 строка (см. рисунок) должны удалиться, как я понимаю, но они остаются. То есть, толку от array_unique и array_filter никакого. Точнее, я скорей всего неправильно использую функции.

Благодаря варианту Алексея Шиманского:

удалось избавиться от пустых строк. Но вот строки повторяются! array_unique бесполезная вещь какая-то. =(

Сопутствующий вопрос. А как отсортировать строки в порядке убывания первых 10 символов (чисел, например: 0000000504, 0000000503 и т.д.)? Я думаю, что лучше всю строку не рассматривать, т.к. там числа с текстом вперемешку. Но не пойму, как задать выборку, которая как бы и будет являться флагом.

ВСЕМ СПАСИБО! ВСЁ СДЕЛАЛА

Удаление пустых строк php

3 ответа 3

Предположу, что все же не работает только вторая функция, а первая работает.

Поэтому удалить пустые строки можно попробовать регулярным выражением.

В итоге все будет выглядеть примерно так:

Удаление пустых строк php

Удаление повторов у вас прекрасно работает. А с последней строчкой «проблема» не в ней, а в символе новой строки в конце предпоследней строки – собственно, каждая строка с данными заканчивается символом новой строки.

Удаление пустых строк php

Чтобы «пустой строки» не было, надо у последней строки с данным отрезать символ новой строки в конце.

Наиболее близко к исходному коду был бы такой вариант:

В третьей записываем в файл результат – соединяем элементы массива символом новой строки. Так после последней строки этого символа не будет.

Ну и мы молодцы, т.к. теперь читаем и пишем файл только по одному разу.

Источник

Как удалить пустые элементы в массиве вместе с ключами?

unset удаляет только значение, а я хочу удалить еще и ключи. Что использовать для этого? Также хотелось бы узнать функцию, которая удалит все это дело полностью сама, без циклов, думаю, что такая есть, не так ли?

6 ответов 6

Зашел посмотреть на решение достаточно насущной проблемы. Беглым взглядом окинул топик и увидел, что нормального решения пока нет. Сочинил следующее:

Не изящно, но очень просто и, главное, работает 🙂

Удаление пустых строк php

В зависимости от того, что считается «пустым» элементом, можно еще такой вариант предложить:

Хотелось бы отметить что далеко не всегда такого кода достаточно:

Например так мы например можем нарваться на неприятности:

На выходе мы получим

Хотя на самом то деле хотели получить

По этому для таких случаев используем:

Удаление пустых строк php

И все, ключей пустых нет.

Удаление пустых строк php

Всё ещё ищете ответ? Посмотрите другие вопросы с метками массивы php или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.9.17.40238

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Удаление пустых строк php

Удаление пустых строк php

Удаление пустых строк php

MY.GAMES консолидирует издателя гиперказуальных игр Mamboo Games

Удаление пустых строк php

Новости интернет-рекламы за июль-август 2021 года

Удаление пустых строк php

Здравствуйте! Написал небольшой парсер, проблема в том, что данные сохраняются в файл следующем виде:

Т.е. остаются пустые строки. Запись в файл циклом выглядит так:

с помощью /r/n перевод строки не получается сделать (думаю, из-за хостинга).

Вопрос: как удалить пустые строки и повторы на php? Может как-то все красиво обработать и перезаписать в новый файл? :rolleyes:

Удаление пустых строк php

Скорее всего из-за того что пишите их ‘\r\n’, а не «\r\n». или как в вашем случае слеш не в ту сторону

Удаление пустых строк php

после того как текст составлен, перед записью в файл:

Удаление пустых строк php

mfl, в а чем прикол плодить «пустые строки», если надо совсем другое?)

P.S. а советом про ‘\r\n’ и «\r\n» смотрю воспользовались 😉

Удаление пустых строк php

skAmZ:
mfl, в а чем прикол плодить «пустые строки», если надо совсем другое?)

P.S. а советом про ‘\r\n’ и «\r\n» смотрю воспользовались 😉

Да, после сохранения файла остается только «n» и ничего не работает.🙅

Удаление пустых строк php

awmaster08, не совсем понятно к чему вы это))

Не получится приведите точный ваш код)

Удаление пустых строк php

Должно получится что-то примерно такое:

Удаление пустых строк php

Пока ничего не помогло. Я думаю в конце скрипта надо файл снова открыть и его обработать.

Удаление пустых строк php

Я так понял это есть часть парсера?

проверять? Например так:

И код я чуток сократил.

Удаление пустых строк php

После сохранения этого кода, получаем в скрипте

т.е. слэши пропали? Это нормально? Может поэтому не работает такой способ?

Удаление пустых строк php

awmaster08:
После сохранения этого кода, получаем в скрипте

т.е. слэши пропали? Это нормально? Может поэтому не работает такой способ?

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *