Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Не могу найти PHP_EOL в $POST от textarea
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3890
Пользователь №: 21196
На форуме: 7 лет, 2 месяца, 20 дней
Карма: 87




Собственно вопрос в теме.

Не могу понять, пишу в textarea несколько строк каждую с новой строки...ну ENTER жму. На выходе ловлю:

			if(strstr($_POST['test'],PHP_EOL))echo'!';
else echo'E';


пишет Е??? Почему-то...но если тут же $_POST['test'] вставить внутрь textarea он вставляет с переносами, как и нужно.

Почему так?


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3890
Пользователь №: 21196
На форуме: 7 лет, 2 месяца, 20 дней
Карма: 87




Как бы разобрался:

	if(strstr($_POST['test'],"\n"))echo'!';
else echo'E';


Теперь не понятно какого не работает PHP_EOL?


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3890
Пользователь №: 21196
На форуме: 7 лет, 2 месяца, 20 дней
Карма: 87




echo ord(PHP_EOL);//13


Перевод строки : 10

Возврат каретки: 13

Ну и как же быть тогда? :) Почему не пишется возврат каретки он же есть.


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3890
Пользователь №: 21196
На форуме: 7 лет, 2 месяца, 20 дней
Карма: 87




Короче пришел к выводу, что возврат каретки теряется во время AJAX запроса, когда вытаскиваю значение из textarea:

document.getElementById("id").value;


JS не вытаскивает возврат каретки.


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
lans8097  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Даже не смотри сюда
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 197
Пользователь №: 30468
На форуме: 5 лет, 6 месяцев, 9 дней
Карма: 3




Цитата (ABC @ 18.10.2013 - 02:32)
Короче пришел к выводу, что возврат каретки теряется во время AJAX запроса, когда вытаскиваю значение из textarea:

document.getElementById("id").value;

Ну так проверьте на уровне клиента что на самом деле уходит в заголовок.
Я вот сижу и не магу понять зачем вы это делаете
Для каких целей вам это надо ?
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3890
Пользователь №: 21196
На форуме: 7 лет, 2 месяца, 20 дней
Карма: 87




lans8097
Ну дак я проверил что не приходит, нашел вот теперь место где теряется...

нужно это чтоб на основе строк из техтареа построить через аякс запрос тестовый селект из этих строк...в обработчике айкса использую:

$temp=explode(PHP_EOL,$_POST['selects']);


Вот сюда не приходят PHP_EOL


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kaww  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1784
Пользователь №: 20757
На форуме: 7 лет, 3 месяца, 21 день
Карма: 186




PHP_EOL - символ конца строки в платформе на которой запущен пхп. Это совсем не означает, что на клиенте он такой же.
preg_split( "/\r\n|\r|\n/", $string );
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3890
Пользователь №: 21196
На форуме: 7 лет, 2 месяца, 20 дней
Карма: 87




kaww
Да...точно, спасибо.
Но все равно не понимаю до конца:

Перенос строки в тектареа (от => Браузера) это 2 символа:
1. Возврат коретки - код 13
2. Новая строка - код 10

Ведь это разные символы...ну да эффект для юзера не заметен, но все же почему на одном и том же компе в том же браузере его ядро JS берет инфу из текстареа и пропадает Возврат коретки?

Кстатит если вдруг кому интересно аналоги пэхэпэшных strstr и ord в JS, которыми пользовался:

function strstr( haystack, needle, bool ) {	// Find first occurrence of a string
//
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)


var pos = 0;

pos = haystack.indexOf( needle );
if( pos == -1 ){
return false;
} else{
if( bool ){
return haystack.substr( 0, pos );
} else{
return haystack.slice( pos );
}
}
}

function ord( string ) { // Return ASCII value of character
//
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)


return string.charCodeAt(0);
}


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26363
Пользователь №: 21350
На форуме: 7 лет, 2 месяца, 9 дней
Карма: 736




Цитата
preg_split( "/\r\n|\r|\n/", $string );

к чему такое чудо, когда

$temp=explode(PHP_EOL,$_POST['selects']);

с этим прекрасно справляется?

PHP_EOL на разных платформах - сама знает что нужно содержать, либо \r либо \r\n


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2059
Пользователь №: 36605
На форуме: 4 года, 3 месяца, 7 дней
Карма: 113




Цитата (Игорь_Vasinsky @ 18.10.2013 - 07:51)
Цитата
preg_split( "/\r\n|\r|\n/", $string );

к чему такое чудо, когда

$temp=explode(PHP_EOL,$_POST['selects']);

с этим прекрасно справляется?

PHP_EOL на разных платформах - сама знает что нужно содержать, либо \r либо \r\n

как раз таки у него верное решение, PHP_EOL не знает, в этой константе сожержиться информация о способе переноса строки в конкретной ОС где запускается интерпретатор.

Можешь сам проверить на разных ос это дело


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26363
Пользователь №: 21350
На форуме: 7 лет, 2 месяца, 9 дней
Карма: 736




кстати

PHP_EOL (string)
Корректный символ конца строки, используемый на данной платформе. Доступна начиная с версии PHP 4.3.10 и PHP 5.0.2


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3890
Пользователь №: 21196
На форуме: 7 лет, 2 месяца, 20 дней
Карма: 87




Игорь_Vasinsky
Дело в том, что в моем случае содержимое вытаскивается из textarea js`ом браузера и отправляется на сервер, который с радостью ищет там PHP_EOL и не находит, потому, что ***** js, как я понял, теряет символ конца строки, а использует только символ начала строки.

Если сделать тоже самое обычным submit формы, то
$temp=explode(PHP_EOL,$_POST['selects']);

прекрасно сработает, только что проверял.

Проблема только с AJAX`ом. Но с костылем:
preg_split( "/\r\n|\r|\n/", $string ); 
предложенным kaww все прекрасно работает.


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса