php html удалить разрыв строки из мета-описания тега - PullRequest
0 голосов
/ 18 июля 2011

Я печатаю содержимое страницы из базы данных MYSQL на PHP.У меня есть текстовое поле в БД, которое называется $ row ['description']

. При сохранении пользовательских данных в БД я использую только mysql_real_escape_string (), поэтому я не редактирую html

поле из db в качестве мета-тега описания html-страниц.Таким образом, если пользователь вставил разрывы строк в описании, они вызовут разрыв строк в исходном коде страницы в теге meta description.Я попытался удалить разрыв строки, используя цикл для пропуска форматов br.Я использую nl2br для преобразования в br.

$desc_array=(explode(" ", $row['description']));
for($i=0; $i < 17;$i++){
    if(nl2br($desc_array[$i])=="<br />" || nl2br($desc_array[$i])=="<br/>"){
        $i++;
    } 

Я проверил свой файл SQL, и разрывы строк выглядят как

\r\n\r\n

Я тоже пытался проверить этот формат, например

 $desc_array[$i])=="\r\n\r\n"
 $desc_array[$i])=="\r\n"
 $desc_array[$i])=="\n"
 $desc_array[$i])=="\r"

, но все ещеразрыв строки печатается в теге описания.Есть идеи?

Ответы [ 2 ]

5 голосов
/ 18 июля 2011
$string = str_replace(array("\r", "\n"), array('', ''), $string);
0 голосов
/ 18 июля 2011

Я скажу вам свое мнение, поскольку я сталкивался с этой ситуацией снова и снова.

Иногда обрезка \r\n, \n помогает, иногда нет.В нескольких случаях я узнал, что мне нужно удалить вот так:

<?php
$desc = "This
is a description";
// this is just a line break [enter]
$newDesc = str_replace(" 
", " ", $desc); // witch outputs This is a description
?>

У меня никогда не было любопытства узнать, почему он не хочет \ r \ n или \ n, может быть, я буду обманыватьсейчас:)

...