Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как убрать пробелы и переносы, имеется html код надо убрать переносы ие 
:(
    Опции темы
grusha
Дата 19.4.2007, 03:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.6.2006

Репутация: нет
Всего: нет



подскажите пожалуйста , как победить такую беду...
есть такой кусок кода..

Код

<?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>\r";
$new_box. ="<tr>\r";
$new_box. ="<td>Test</td>\r";
$new_box. ="</tr>\r";
$new_box. ="</table>\r";
?>
<script language="javascript">
var htmlContentOfNewBox = '<?php echo $new_box;?><DIV>This is a static box.</div>';
</script>

тогда не работает , т.е. если идёт не в одну строчку , то код перестаёт работать , как это можно победить  ???

Заранее спасибо.


Это сообщение отредактировал(а) grusha - 19.4.2007, 03:14
PM MAIL   Вверх
Mymik
Дата 19.4.2007, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 11
Всего: 78



grusha, я че-то не понял  smile  В теме ты говоришь, что тебе нужно. В заголовке ты говоришь, что тебе нужно избавиться от пробелов. А тут ты говоришь что тебе они нужны... я чего-то не понял...
вообще, \r это возврат каретки в начало строки. Но для того чтобы перенести каретку на следующую строку, тебе еще нужно написать \n А не работает скорее всего имеено из-за того что происходит возврат каретки и старые данные либо затираются, либо превращаются в мусор.
Но это тебе не в JS тему... А в PHP наверное...
Или у тебя JS код не работает ??? или ... или вообще что у тебя там не работает ??? опиши проблему.


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
12345c
Дата 19.4.2007, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Код

$new_box ="<table>\\\r";
$new_box. ="<tr>\\\r";
$new_box. ="<td>Test</td>\\\r";
$new_box. ="</tr>\\\r";
$new_box. ="</table>\\\r";
(экранируем переносы строк для JS через "\\" в ПХП)
PM WWW   Вверх
grusha
Дата 19.4.2007, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.6.2006

Репутация: нет
Всего: нет



Цитата(12345c @ 19.4.2007,  15:55)
Код

$new_box ="<table>\\\r";
$new_box. ="<tr>\\\r";
$new_box. ="<td>Test</td>\\\r";
$new_box. ="</tr>\\\r";
$new_box. ="</table>\\\r";
(экранируем переносы строк для JS через "\\" в ПХП)

мне надо именно средствами javascript.

может я как то не так описал проблему ...
Вообщем мне нужен код который бы удалял переносы, и делал всё в одну строчку.

впринципе пример можно упростить до такого .....

Код

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


Эсли так то всё ОК, но если так 

Код

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


то перестаёт работать.
PM MAIL   Вверх
z-END
Дата 19.4.2007, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 4
Всего: 102



насколько я понял проблема в генерации переменной для яваскрипт.. скорее всего браузер ругается на unterminated string.
наверно должно помочь:
Код

<?php echo str_replace("\r\n",' ',$new_box);?>



--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
grusha
Дата 19.4.2007, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.6.2006

Репутация: нет
Всего: нет



Цитата(z-END @ 19.4.2007,  18:59)
насколько я понял проблема в генерации переменной для яваскрипт.. скорее всего браузер ругается на unterminated string.
наверно должно помочь:
Код

<?php echo str_replace("\r\n",' ',$new_box);?>

Спасибо,но так всетаки не работает.
Уточнение...

в переменную $new_box передаётся разный код , и без \r\n, а просто написан скажем вот так ,

Код

<table>
<tr>
<td>Test</td>
</tr>
</table>


вобщем делаю просмотр исходного кода в браузере пишет вот такое 
Код

var htmlContentOfNewBox = '    
        <table class="contentpaneopen">
                <tr>
            <td valign="top" colspan="2">
                Yesterday all servers in the U.S. went out on strike in a bid to get more RAM and better CPUs. A spokes person said that the need for better RAM was due to some fool increasing the front-side bus speed. In future, busses will be told to slow down in residential motherboards.            </td>
        </tr>
                </table>

        <span class="article_seperator">&nbsp;</span>

        <DIV>This is a static box.</div>';


Ну не так не победить этот код ....

Вообще есть ли способ ?
PM MAIL   Вверх
grusha
Дата 19.4.2007, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.6.2006

Репутация: нет
Всего: нет



Или может ктото скажет почему нельзя писать так ..

Код

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

PM MAIL   Вверх
Sardar
Дата 19.4.2007, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(grusha @  19.4.2007,  20:38 Найти цитируемый пост)
Или может ктото скажет почему нельзя писать так

Просто так решили нетскейповцы/ECMA'вцы, строки не могут содержать не экранированных переносов. Либо экранируй через \ (тогда перенос вообще исчезнет), либо кодируй их посредством \n.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
grusha
Дата 19.4.2007, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.6.2006

Репутация: нет
Всего: нет



Цитата(Sardar @  19.4.2007,  21:49 Найти цитируемый пост)
Либо экранируй через \ (тогда перенос вообще исчезнет)


А можнопоподробнее об этом , или примерчик небольшой ?

PM MAIL   Вверх
Sardar
Дата 19.4.2007, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



$new_box = str_replace(array("\n", "\r", "\r\n"), "\\\n", $new_box);
Но учти что все переносы строк просто будут просто игнорироваться при исполнении JS. Замени на '\\n' если они нужны.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
grusha
Дата 20.4.2007, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.6.2006

Репутация: нет
Всего: нет



Этот код проходит если в конце строки стоит \n и т.д. , а если просто код написан , скажем , так
<table>
<tr>
<td>Test</td>
</tr>
</table>
То уже не работает :(
В этом то и проблема ! 
PM MAIL   Вверх
Sardar
Дата 20.4.2007, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Не может быть такого smile
Пых-пышный исходник сохраняет переносы строк, так что сама строка будет содержать \r\n. Далее str_replace заменяем их на экранированные \n, должно в JS'е быть:

Код

var a = "<table>\
<tr>\
<td>Test</td>\
</tr>\
</table>";

Тогда проблем не будет.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
grusha
Дата 20.4.2007, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.6.2006

Репутация: нет
Всего: нет



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

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

Огромное спасибо всем !
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1114 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.