Forum Webscript.Ru
Программирование => PHP => Тема начата: myname от 24 Мая 2003, 11:32:12
-
Какой функцией обрезать последние символы (.mp3) со слова? Допустим Apollo 440.mp3
-
substr
-
(substr($fupload_name, ".mp3")) будет правильно?
-
$name = substr($fupload_name, 0, -4);
-
Работает. Спасибо.
[OFF]
-
хм. не совсем верно. substr может не то что нужно вернуть, лучше использовать что-нибудь типа pathinfo() или мож еще есть какие-нить функции для парсинга пути, уже не помню. RTFM.
-
Britva:
substr может не то что нужно вернуть
Интересно это КАК?
-
Tronyx:
Интересно это КАК?
Это когда имя файла не в формате 8.3
-
ThE0ReTiC
а какая разница, сколько там слева - 8 или 32?
справа-то, вроде, как, 3 подразумевается?
-
У меня такой вариант, может он не совсем корректный, но работает как надо. Может что-то надо изменить для полной правильности?
if ($post=="yes") {
include("config-inc.php");
//обрезаем последние 4 символа
$description = substr($fupload_name, 0, -4);
/*обрезаем первые 4 символа
$description = substr($fupload_name, +4, 0);
*/
if (($fupload_type=="application/mp3") || (strstr($fupload_name, ".mp3"))) {
$query = "INSERT INTO $Database_table (path,description,date) VALUES (\'$path\',\'$description\',\'$date\')";
mysql_query($query);
if ($fupload_type=="application/mp3") { $file_name= $fupload_name; }
if (strstr($fupload_name, ".mp3")) { $file_name=$fupload_name; }
copy ($fupload, "$home_path/$file_name") or die ("Ошибка! Невозможно сохранить файл.");
$id_num=mysql_insert_id();
$query = "UPDATE $Database_table SET path=\'$file_name\' WHERE id=\'$id_num\'";
$result = mysql_query($query);
}
}
?>
-
RomikChef
разницы скока слева никакой.
А что, если справа будет не 3 ?
-
ThE0ReTiC
Так просили же именно .mp3 обрезать...
-
FreeSpace
Так надо стараться думать шире :)
-
$ext=".mp3";
substr($fupload_name, 0, -strlen($ext));
вот так будет работать с любым расширением, которое указано в переменной $ext...
-
ThE0ReTiC
Стараюсь :)
Хоть выше уже есть почти универсальный пример, пихну свою альтернативу:
$tmp = explode(".", $filename);
array_pop($tmp);
$name = implode(".", $tmp);
unset($tmp);
-
yUAC
basename
(PHP 3 <= 3.0.18, PHP 4 >= 4.0.0)
basename -- Returns filename component of path
Description
string basename (string path [, string suffix])
Given a string containing a path to a file, this function will return the base name of the file. If the filename ends in suffix this will also be cut off.
On Windows, both slash (/) and backslash (\\) are used as path separator character. In other environments, it is the forward slash (/).
Лисапед, однако, изобрел.
-
Как вырезать только первый знак? Я так понял, что надо сначала определить сколько знаков в строке, а потом уже выбрать первый из неё? Разъясните пожалуйста.
-
myname
$first_char = substr($string,0,1)
почитай-таки мануал :)
-
FreeSpace:
$tmp = explode(".", $filename);
array_pop($tmp);
$name = implode(".", $tmp);
unset($tmp);
Пример выше даже не почти универсальный. а совсем неуниверсальный.
И альтернатива ужасная.
РНР очень медленно работает с массивами.
И использовать их там, где абсолютно нафиг не нужны - глупо.
задача решается в одну строчку с использованием srrpos
именно это имел в виду теоретик.
Xander
Этот лисапед глюкал в каких-то версиях.
-
Кстати, а чем не вариант preg_match(\'/(.*?)\\.+?$/si\',$filename,$res); $path=$res[1]; ?
-
Зачем так много всего, если хватает $simbol = substr("".$song[artist]."",0,1); ?
-
myname
А вот эти рюшечки - "". и ."" у тебя для красоты?