Проблема с тегом PHP strip - PullRequest
1 голос
/ 29 мая 2011

Я пытаюсь заставить работать мой фид сайта.

Мне нужно выбрать какой-то контент и отобразить его в своем фиде.После выбора я убираю теги, затем отображаю.

Проблема заключается в следующем:

Данные по-прежнему отображаются так, как будто теги все еще существуют (но без видимого тега html), например.после удаления в моем источнике у меня будет:

Привет (просто иллюстрирующий)

---- Между ними будет пробел, как если бы html-символ все еще существовал, но я не вижу его, когда я просматриваюмой источник -----

Привет

Как я могу это исправить.Спасибо

РЕДАКТИРОВАТЬ:

Чтобы сделать его более понятным, после удаления я все еще получаю текст, подобный этому:

Это моя первая строка

Это моя вторая строка с пробелом между первой и второй строкой, как будто есть тег абзаца

ОБНОВЛЕНИЕ

Я использую это:

$ body = substr (strip_tags (preg_replace ('/ \ n {2,} /', "\ n", $ row ["post_content"])), 0,150);

прия повторяю $ body, он по-прежнему поддерживает новые строки

Ответы [ 3 ]

1 голос
/ 29 мая 2011

у вас может быть \n, который был в конце абзацев после закрывающих тегов, которые вы удалили.

preg_replace('/[\p{Z}\s]{2,}/s',' ',$string); 

удалит все white space, tabs, new lines и double spaces и заменит один пробел.

\s Соответствует любому символу пробела. Эквивалент категории символов Unicode [\f\n\r\t\v\x85\p{Z}]. Если ECMAScript-совместимое поведение указано с помощью опции ECMAScript, \s эквивалентно [ \f\n\r\t\v].

1 голос
/ 29 мая 2011

strip_tags буквально удалит теги, оставляя все остальные пробелы позади. Вы можете избавиться от лишних строк новой строки и пробелов с помощью регулярных выражений, но, в зависимости от вашего контента, вы можете изменить его.

Удалить переводы:

$string = preg_replace('/\n{2,}/',"\n",$string);

Удалить лишние пробелы:

$string = preg_replace('/ {2,}/',' ',$string);
0 голосов
/ 27 июля 2017

Я испытывал очень раздражающее сходство.Решено с отделкой

    $body=strip_tags(trim($row["post_content"]));
...