PHP: как предотвратить нежелательные разрывы строк - PullRequest
3 голосов
/ 23 ноября 2010

Я использую PHP для создания базового HTML. Теги всегда одинаковы, но фактические ссылки / заголовки соответствуют переменным PHP:

$string = '<p style="..."><a href="'.$html[$i].'"><strong><i>'.$title[$i].'</i></strong></a>
<br>';
echo $string;
fwrite($outfile, $string);

Результирующий html, как отраженный (когда я просматриваю исходный код страницы), так и в простом текстовом файле, в который я пишу, выглядит следующим образом:

    <p style="..."><a href="http://www.example.com
"><strong><i>Example Title
</i></strong></a></p>
<br>

Хотя это работает, это не совсем то, что я хочу. Похоже, PHP добавляет разрыв строки каждый раз, когда я прерываю строку для вставки переменной. Есть ли способ предотвратить такое поведение?

Ответы [ 3 ]

2 голосов
/ 23 ноября 2010

Хотя это и не повлияет на вашу HTML-страницу с разрывами строк (если вы не используете pre или text-wrap: pre), вы должны быть в состоянии вызвать trim() для этих переменных, чтобы удалить символы новой строки.

Чтобы узнать, имеет ли ваша переменная символ новой строки спереди или сзади, попробуйте это регулярное выражение

var_dump(preg_match('/^\n|\n$/', $variable));

(я думаю, вам нужно использовать одинарные кавычки, чтобы PHP не превратил ваш \n вбуквальный перевод строки в строку).

1 голос
/ 23 ноября 2010

Я думаю, ваши переменные виноваты. Вы можете попробовать очистить их с помощью trim: http://us2.php.net/trim.

0 голосов
/ 18 августа 2012

Полагаю, что разрывы строк появляются из-за многобайтовой кодировки.Попробуйте:

$newstring =  mb_substr($string_w_line_break,[start],[length],'UTF-8');

Это сработало для меня, когда после разбора html обнаружились странные разрывы строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...