Вопрос

Я использую функцию JavaScript, которая получает какой -то HTML -код, который был включен с использованием PHP. Это не HTML в строке PHP, а файл HTML с расширением .php.

Поскольку код HTML отправляется в качестве параметра функции JS, он не может содержать возврата перевозки. Проблема в том, что написание больших блоков HTML в одной линии ужасна, я хотел бы выполнить функцию только для того, чтобы стирать возврат перевозки перед отправкой контента.

Есть ли источник для такой функции?

Спасибо!

Это было полезно?

Решение

просто

echo str_replace(array("\r\n", "\r", "\n"), null, $htmlCode);

Другие советы

Когда вы говорите «в файле PHP», я предполагаю, что вы имеете в виду, что вы include()файл, который выглядит примерно так:

<html>
  <head><title>Foo</title></head>
  <body>
    <?php do_stuff(); ?>
  </body>
</html>

Если это так, то, что вы ищете, называется Управление вывода, что позволяет вам либо предотвратить отправку данных до тех пор, пока вы не будете готовы, либо захватить их на строку для дополнительной обработки. Чтобы лишить возврата каретки из прилагаемого файла, вы можете сделать это:

<?php

ob_start();                       // start buffering output
include("foo.php");               // include your file
$foo = ob_get_contents();         // get a copy of the buffer's contents
ob_clean_end();                   // discard the buffer and turn off buffering
echo str_replace("\r", "", $foo); // print output w/o carriage returns

Если вы также хотите удалить новички, измените эту последнюю строку на:

echo str_replace(array("\n", "\r"), "", $foo);

Под «созданием его в PHP» я предполагаю, что вы имеете в виду, что строите строку, которая содержит соответствующий HTML.

Если это так, то это просто, что не возвращается каретка как часть вашей строки.

т.е. не делай этого:

foo =  "  this is my string
         and I have it on two lines"; 

Но скорее сделай это

foo = "" .
      " this is my string" .
      " and it's on one line ";

Конечно, вы можете использовать функцию String.replace, но строительство через Concats означает, что вы можете пропустить этот шаг.

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

Подумайте об использовании XML Автор Для этого, если это то, что ваш JavaScript анализирует. Таким образом, результат всегда будет действительным, и код должен стать чище.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top