Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужно совсем избавиться от \n, помогите искоренить переход на сл.строку 
:(
    Опции темы
137
Дата 9.2.2008, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Писал класс для использования фала в качестве хранилища данных.
записи хранятся в виде 
field1=---=field2=---=....=---=field(n)
field1=---=field2=---=....=---=field(n)
field1=---=field2=---=....=---=field(n)
...
field1=---=field2=---=....=---=field(n)
чтение происходит функцией file(). и получается массив в котором каждый элемент  это строка, которая затем разбивается на поля функцией explode. Поэтому недопустимо чтоюбы в файл записались символы \n и \r . Как их не проспустить совсем?
вот кусок из функции записи в файл:
Код

        $string='';
        $search=array("\n","\r");
        $rep=array("<br>", "");
        for($i=0; $i<count($val); $i++){
            $val[$i]=str_replace($search, $rep, $val[$i]);
            if($i) $val[$i]="=---=".$val[$i];
            $string.=$val[$i];
        }

и не смотря на это в $string всеравно пролетают \n и \r. Объясните плиз, где я ошибся.

PM MAIL   Вверх
DioNiR
Дата 9.2.2008, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а почему бы просто не заменить:
Код

str_replace("\n", '', $text);

--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
gta4kv
Дата 9.2.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

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



Цитата(DioNiR @ 9.2.2008,  20:08)
а почему бы просто не заменить:
Код

str_replace("\n", '', $text);

Тогда уж
Код

$text = str_replace('\n', '', $text);


Если \n будет в ковычках("\n") а не в апострофах('\n')  - работать не будет.

Это сообщение отредактировал(а) gta4kv - 9.2.2008, 20:13
PM MAIL   Вверх
DioNiR
Дата 9.2.2008, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(gta4kv @ 9.2.2008,  18:12)
Цитата(DioNiR @ 9.2.2008,  20:08)
а почему бы просто не заменить:
Код

str_replace("\n", '', $text);

Тогда уж
Код

$text = str_replace('\n', '', $text);


Если \n будет в ковычках("\n") а не в апострофах('\n')  - работать не будет.

А помоему наборот.
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
gta4kv
Дата 9.2.2008, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

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



Цитата(DioNiR @ 9.2.2008,  20:13)
Цитата(gta4kv @ 9.2.2008,  18:12)
Цитата(DioNiR @ 9.2.2008,  20:08)
а почему бы просто не заменить:
Код

str_replace("\n", '', $text);

Тогда уж
Код

$text = str_replace('\n', '', $text);


Если \n будет в ковычках("\n") а не в апострофах('\n')  - работать не будет.

А помоему наборот.

Если по вашему наобарот - проверьте.

Не работает замена:
Код

<?php
$text = "\n
asdasdasd 
\n
asdasd
\n";
$text = str_replace("\n", '', $text);
echo  $text;


Работает:
Код

<?php
$text = "\n
asdasdasd 
\n
asdasd
\n";
$text = str_replace('\n', '', $text);
echo  $text;


Это сообщение отредактировал(а) gta4kv - 9.2.2008, 20:19
PM MAIL   Вверх
DioNiR
Дата 9.2.2008, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как бы странно не звучало но у меня работают оба варианта.
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
137
  Дата 9.2.2008, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а у меня ни один.  smile 
если текст приходит из textarea

PM MAIL   Вверх
DioNiR
Дата 9.2.2008, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



код в студию...
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
gta4kv
Дата 9.2.2008, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

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



Цитата(DioNiR @ 9.2.2008,  20:23)
Как бы странно не звучало но у меня работают оба варианта.

Нде... Есть текст в апострофах а \n в ковычках только тогда не работает.  smile 

+1 к коду в студию
PM MAIL   Вверх
137
Дата 9.2.2008, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

    function add($val)
    {
        if(count($val)!==$this->fields)
        {
            echo ("Ошибка: нехватает ".abs(count($val)-$this->fields)." полей в добавляемом элементе");
            return false;
        }
        else{
        $string='';
        $search=array('\n', '\r');
        $rep=array("<br>", "");
        for($i=0; $i<count($val); $i++){
            $val[$i]=str_replace($search, $rep, $val[$i]);
            if($i) $val[$i]="=---=".$val[$i];
            $string.=$val[$i];
        }

        $f=fopen($this->file, "a");
        fputs($f, trim($string)."\n");
        fclose($f);
        $this->file_db($this->file, $this->fields);
        }
    }


ну и приходит все из обыкновенной textarea ...
PM MAIL   Вверх
DioNiR
Дата 9.2.2008, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



чесно не понял как у тебя должно работать:
Код
$val[$i]=str_replace($search, $rep, $val[$i]);

Когда $search масив и $rep масив.
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
137
Дата 9.2.2008, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ну всегда все работало... кроме этого случая с \n
Цитата

С версии PHP 4.0.5, любой аргумент str_replace()  может быть массивом.


Это сообщение отредактировал(а) 137 - 9.2.2008, 20:55
PM MAIL   Вверх
DioNiR
Дата 9.2.2008, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Попробуй замени это:
Код
$search=array('\n', '\r');


На на это:
Код
$search = array("\n", "\r");

--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
137
Дата 9.2.2008, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



2DioNiR: изначально так и было.. не работает...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




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


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

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