Как убрать переносы и пробелы

grusha

Новичок
Как убрать переносы и пробелы

Подскажите пожалуйста ...

У меня в переменную , $test, приходит такой код...

PHP:
$test="<table>
<tr>
<td>Test</td>
</tr>
</table>";
А мне надо чтобы было всё в одну строчку , вот так...

PHP:
$test="<table><tr><td>Test</td></tr></table>";
Еслить ли какаянить функция и/или возможно ли это вообще ?
Заранее спасибо.
 

Румата

Новичок
Ссылка на мануал : http://ru2.php.net/manual/ru/function.str-replace.php
И пример оттуда же :
PHP:
// присваивает: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
Я думаю, что поменять гласные на символ перевода строки сможешь
 

grusha

Новичок
Этот код проходит если в конце строки стоит \n и т.д. , а если просто код написан , скажем , так
<table>
<tr>
<td>Test</td>
</tr>
</table>
То уже не работает !!!
В этом то и проблема !
 

Фанат

oncle terrible
Команда форума
grusha
Andronik действительно написал глупость.
ты не знаешь, каким кодом обозначается перевод строки? Ты это хотел узнать?
 

Румата

Новичок
Что значит, просто написан?

У тебя ведь как-то переносы строк осуществились?
 

grusha

Новичок
есть такой кусок кода..

<?php
$new_box ="<table><tr><td>Test</td></tr></table>";
?>
<script language="javascript">
var htmlContentOfNewBox = '<?php echo $new_box;?><DIV>This is a static box.</div>';
</script>


Если написано так , тогда всё ОК , но если так ->

<?php
$new_box ="<table>\n";
$new_box . ="<tr>\n";
$new_box . ="<td>Test</td>\n";
$new_box . ="</tr>\n";
$new_box . ="</table>\n";
?>
<script language="javascript">
var htmlContentOfNewBox = '<?php echo $new_box;?><DIV>This is a static box.</div>';
</script>

уже не пашет !

Вобщем если не в одну строчку то javascript не работает !

Вобщем то если даже так написано

$new_box ="
<table>
<tr>
<td>Test</td>
</tr>
</table>";

Уже не пашет !

Поэтому мне и надо убрать пробелы !

-~{}~ 20.04.07 01:34:

Автор оригинала: Фанат
grusha
а ты уверен, что хочешь убрать пробелы?
Скорее не пробелы , а перенос строки хочу убрать , чтобы всё в одну строчку было.
 

Andronik

Новичок
Если не пашет, хотя у меня работает, попробуй из

"<table>
<tr>
<td>Test</td>
</tr>
</table>";

сделать

"<table>" +
"<tr>" +
"<td>Test</td>" +
"</tr>" +
"</table>";
 

ioleg

Новичок
А в чем проблема заменить все символы с кодом:

13, 10: перенос и возврат каретки
9: табуляция
32: пробел

... обычной функцией str_replace?
 

grusha

Новичок
Автор оригинала: kruglov
"<table>\
<tr>\
<td>Test</td>\
</tr>\
</table>";
Ну не могу я так сделать ! мне эта переменная приходит...

если бы всё было так просто я бы тогда просто встрочку сразу всё и написал .

"<table><tr><td>Test</td></tr></table>";
Вот так бы написал . :)
 

ioleg

Новичок
grusha, да убери ты всё функцией:

str_replace(chr(13),'',$text);
str_replace(chr(10),'',$text);

И продолжай радоваться жизнью, т.к. всё у тебя будет в одну строчку. А дальше сам решай, какие еще из символов тебе убрать.
 

grusha

Новичок
Всем большое спасибо , я идиот :)
Посмотрел функцию , а она оказывется инклюдит файл , поэтому и не получалось ничего.

Вообщем спасибо то что вы посоветовали подойдёт , но не для моего случая, для моего кажется ничего не пожет , только изминения самих файлов !

Огромное спасибо всем !
 

Фанат

oncle terrible
Команда форума
kruglov
мне СИЛЬНО кажется, что если у него не работает яваскрипт, то этот яваскрипт надо ОДИН раз исправить руками, а не городить пхп скрипт для исправления на лету
 

Gorynych

Посетитель PHP-Клуба
Фанат мне так кажется, что у человека идут вставки в яваскрипт из PHP и, соотвественно, у него при вставках дробятся строки и "плывет" клиентский скрипт. И вряд ли это в одном уникальном месте происходит.

может что-то вроде этого (функция преобразует переданный текст/строку, удаляя символы перевода строк, кавычки и апостроф, чтобы предотвратить "разбиение" строк в клиентском скрипте):
PHP:
function jsString($str='') {
    return preg_replace("/('|\"|\r?\n)/", '', $str);
}

$new_box ="
<table>
<tr>
<td>Test</td>
</tr>
</table>";

echo "<script>alert('".jsString($new_box)."');</script>";
 

Vallar_ultra

Любитель выпить :)
Gorynych
>кавычки и апостроф

Может все-таки надо экранировать?
 
Сверху