удаление пустых строк 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() приведет к удалению этой последней строки:

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

Источник

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

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

удаление пустых строк php. Смотреть фото удаление пустых строк php. Смотреть картинку удаление пустых строк php. Картинка про удаление пустых строк php. Фото удаление пустых строк php

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

Не работает:

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

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

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

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

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

удаление пустых строк php. Смотреть фото удаление пустых строк php. Смотреть картинку удаление пустых строк php. Картинка про удаление пустых строк php. Фото удаление пустых строк php

3 ответа 3

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

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

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

удаление пустых строк php. Смотреть фото удаление пустых строк php. Смотреть картинку удаление пустых строк php. Картинка про удаление пустых строк php. Фото удаление пустых строк php

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

удаление пустых строк php. Смотреть фото удаление пустых строк php. Смотреть картинку удаление пустых строк php. Картинка про удаление пустых строк php. Фото удаление пустых строк php

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

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

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

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

Источник

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

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

6 ответов 6

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

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

удаление пустых строк php. Смотреть фото удаление пустых строк php. Смотреть картинку удаление пустых строк php. Картинка про удаление пустых строк php. Фото удаление пустых строк php

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

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

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

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

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

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

удаление пустых строк php. Смотреть фото удаление пустых строк php. Смотреть картинку удаление пустых строк php. Картинка про удаление пустых строк php. Фото удаление пустых строк php

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

удаление пустых строк php. Смотреть фото удаление пустых строк php. Смотреть картинку удаление пустых строк php. Картинка про удаление пустых строк php. Фото удаление пустых строк php

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

Похожие

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

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

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

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

Источник

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

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