2009-06-03 61 views
0

我正在使用一個JavaScript函數,它接收一些使用php包含的html代碼。 它不是一個PHP字符串中的html,而是一個擴展名爲.php的html文件。如何刪除回車在HTML中使用PHP?

由於html代碼作爲參數發送給js函數,因此它不能包含回車符。問題是,在一行中寫入大塊HTML是非常糟糕的,我希望只有在發送內容之前刪除回車符的函數。

有沒有這種功能的來源?

謝謝!

回答

6

簡單

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

通過「在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建設意味着你到了跳過那一步。

+1

=而非+ =。 – Chuck 2009-06-03 17:06:30

+0

aye ..我怪現在和上次我寫了任何php之間的6年 – 2009-06-03 19:27:54

-1

考慮使用XML writer這個,如果這就是你的JavaScript解析。這樣的結果總是有效的,代碼應該更清潔。

1

當你「在一個PHP文件」說,我假定你的意思是你include()荷蘭國際集團,看起來像這樣的文件:

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

如果是這樣的話,你要尋找的是稱爲Output Control,它允許您防止在準備好數據之前發送數據,或者將其捕獲到字符串以進行其他處理。要從包含的文件剝離回車,你可以這樣做:

<?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);