[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не могу удалить пробел из конца строки
Хиросим
Всем привет.
Такая проблема - нужно взять небольшую строку из базы данных (название песни), удалить все спецсимволы, пробелы по краям удалить, а в составе фразы заменить на нижние прочерки, ну и обрезать строку по признаку открывающейся скобки. Смысл - заточить строку под название файла.
Пример:
Данные таблицы: Moody's Mood (Part. Patti Austin)
Нужно получить: Moodys_Mood(
ну и дальше прилепить к нему расширение ".mp3" и запустить в проигрыватель.
Вроде банально все до безобразия.
Но если в безе название песни имеет пробел в конце, то этот пробел не убирается, причем все пробелы в составе строки послушно заменяются, а крайний справа, собака, остается....
Пачему такое может быть??
Вот функция моя:
function dubleclear_songname($song)
{
$song = trim ($song);
$udalit = array("'", ",", ".", ":", "`", "?", "#");
$zamenit = array(" ", "/");
$song=str_replace($udalit, "", $song);
$song=str_replace($zamenit, "_", $song);
$song_array = explode("(", $song);
$song = $song_array[0];
if ($song_array[1])
{$song = $song."(";}
$song = trim ($song);
return $song;
}




Спустя 13 минут, 59 секунд (23.09.2010 - 15:53) DedMorozzz написал(а):
Сабж - trim()

Спустя 8 минут, 55 секунд (23.09.2010 - 16:02) Хиросим написал(а):
Дык аж два раза отТримил, в начале и в конце...

Спустя 20 минут, 21 секунда (23.09.2010 - 16:22) DedMorozzz написал(а):
ты не совсем меня, наверное, понял. Trim позволяет удалять не только пробелы а и любые символы. Почитай про необязат параметр. И распечатай то, что возвращает. Почти уверен, что добавляеться за пределами ф-и.

Спустя 43 секунды (23.09.2010 - 16:23) Rand написал(а):
Вот взял я твою функцию:
$song = "          Moody's Mood (Part. Patti Austin)        ";
$song = dubleclear_songname($song);
echo "\"".$song."\"";


Результат: "Moodys_Mood_(" и никаких пробелов. Следовательно проблема не в функции.

Спустя 15 минут, 29 секунд (23.09.2010 - 16:38) Хиросим написал(а):
Не не в функции проблема, чето глубже...
если вручную пробел в базе убираю, все нормально... такое впечатление, что трим этот пробел за пробел не принимает...

Спустя 4 минуты, 35 секунд (23.09.2010 - 16:43) Хиросим написал(а):
Зашел в базу удалил тот пробел что там был и поставил вместо него новый... все нормально работает.. какой то хитрый вид пробела, триму не известный... я в базу из екселя загоняю данные в формате csv, может тут какая нибудь заковырка....

Спустя 5 минут, 16 секунд (23.09.2010 - 16:48) Хиросим написал(а):
как можно понять что это за символ???

Спустя 6 минут, 55 секунд (23.09.2010 - 16:55) Rand написал(а):
ord($str[strlen($str)-1]);

Выведет ASCII код последнего символа строки $str. Как узнаешь код, можно потом сделать str_replace(chr(код), "", $song).

Спустя 14 минут, 30 секунд (23.09.2010 - 17:09) Хиросим написал(а):
код 160... откудаж взялось счастье такое....
спасибо, братцы, сам к новому году тока допер бы....

Спустя 11 минут, 43 секунды (23.09.2010 - 17:21) Rand написал(а):
Как подсказал гугл - это тоже пробел, только "Неразрывный". trim его не удаляет, но можно передать этот символ в качестве второго параметра, и тогда всё должно быть ровно.

Спустя 6 минут, 14 секунд (23.09.2010 - 17:27) Хиросим написал(а):
ну теперь то я въехал... знал бы раньше про ord, шум бы и не поднимал...
в опчем спасибо!
Быстрый ответ:

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