[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Почему не работает trim()
segazav
Всем доброго вечера!

Не могу понять почему не срабатывает функция trim()???

Вот мой пример обработки, нужно удалить не нужные символы из конца и начала строки заголовка:

$_POST['zagolovok'] = trim($_POST['zagolovok'], ".,:;-+="); // Удаляем не нужные символы в конце и начале строки


Не удаляет не точки, не запятые и т.д.
Игорь_Vasinsky
потому что 2й аргумент - хоть и строка - но это подразумевает - что там нужно перечислять значения всего того что вы хотите порезать.

вот если ваша строка начинается с и заканчивается или "или" с .,:;-+= и именно в этом порядке - она их порежет.

для того чтобы удалить группу не нужных символов, в строке, используют регулярные выражения и preg_replace()

а trim() работает просто

echo trim(' строка ');
echo trim(':строка:',':');
echo trim(',строка,', ',');


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
twin
Цитата (Игорь_Vasinsky @ 24.03.2016 - 01:20)
вот если ваша строка начинается с и заканчивается или "или" с .,:;-+= и именно в этом порядке - она их порежет.

Это не так. Код у ТС вполне рабочий. Скорее всего там есть пробелы перед или после этих символов. Проверить просто:
$_POST['zagolovok'] = trim($_POST['zagolovok']);
$_POST['zagolovok'] = trim($_POST['zagolovok'], ".,:;-+=");

И еще, не принято модифицировать суперглобальные массивы. Лучше назначить другую переменную.
$zagolovok = trim($_POST['zagolovok']);
$zagolovok = trim($zagolovok, ".,:;-+=");
Ну и инициализация конечно...

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
segazav
Да, действительно!!!!
Так заработало!
Оказывается "вот где враг сидел")

$_POST['zagolovok'] = trim($_POST['zagolovok']);
$_POST['zagolovok'] = trim($_POST['zagolovok'], ".,:;-+=");


Думал реально не обойтись без регулярного выражения :huh:
inpost
segazav
А ты попробуй в список добавить ещё пробел, может и одного trim хватит.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
segazav
В смысле пробелы с двух сторон строки?
Так, что ли?

$_POST['zagolovok'] = trim($_POST['zagolovok'], " .,:;-+= ");
twin
Одного хватит)) Только лучше тогда уж так:
$_POST['zagolovok'] = trim($_POST['zagolovok'], " \t\n\r\0\x0B.,:;-+=");


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Zzepish
segazav
да
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.