|
|
|
| помогите составить регулярное выражение.
или дайте ссылку, где есть похожее.
есть ссылки типа file:///G:WWW/PHP/my-garden/img/1.jpg
с разными именами файлов. надо вытащить только имена файлов 1.jpg и т.д.
пути могут быть разные. начинать надо с конца строки и до первого слэша.
типы файлов тоже могут быть разные, но для них у меня есть вот это:
.(?:gif|jpg|png|bmp|tiff)
я долго пыталась, но мне или ничего не выдает или выдает ноль. | |
|
|
|
|
|
|
|
для: elenaki
(23.12.2005 в 19:40)
| | Это типа для SQL запроса чтоли нужно? Нужно именно при помощи регулярных выражений или можно обойтись другими функциями? | |
|
|
|
|
|
|
|
для: Евгений Петров
(23.12.2005 в 20:02)
| | Если нужно только регулярными, то можно примерно так:
<?
$path = "file:///G:WWW/PHP/my-garden/img/1.jpg";
preg_match("|.*/([a-z0-9]+\.?[a-z]*)|i",$path,$regs);
echo "<pre>";
print_r($regs);
echo "</pre>";
?>
|
Только исправьте места [a-z0-9] и [a-z] на соотв диапазонв. :) Просто лень было все указывать | |
|
|
|
|
|
|
|
для: Евгений Петров
(23.12.2005 в 20:10)
| | не вижу привязки к концу строки - $... :( а от начала строки нет смысла, они все разные.
я предполагаю, надо так - привязку к концу строки (мы же не знаем, сколько перед именем файла будет слэшей), потом выбрать ВСЕ символы от конца строки до первого (от конца строки) слэша. кажется, в таком случае даже не надо проверять тип файла. но можно и проверить для порядка. это кажется так просто, но никак не получается...
ваш код выдает Array | |
|
|
|
|
|
|
|
для: elenaki
(23.12.2005 в 20:33)
| | Я не указал в конце U т.е. в силу жадности регулярных выражений выберется все (.*) до последнего слеша (/) а потом выберется имя файла ([a-z0-9]) и если есть - расширение (\.?[a-z]*).
А почему бы не воспользоваться стандартными ф-ями php?
<?
$path = "C:/WINDOWS/php.ini";
echo "Папка: ".dirname($path)."<br>";
echo "Файл: ".basename($path)."<br>";
?>
|
| |
|
|
|
|
|
|
|
для: elenaki
(23.12.2005 в 20:33)
| | ваш код выдает Array
А так?
<?
$path = "file:///G:WWW/PHP/my-garden/img/1.jpg";
preg_match("|.*/([a-z0-9]+\.?[a-z]*)|i",$path,$regs);
echo $regs[1];
?>
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(23.12.2005 в 20:56)
| | YES! то, что надо!
спасибки! | |
|
|
|