例如,我有这个网址:
http://adstorage.jamba.net/storage/view/325/0/fa/Fairytale.mp3
如何使用 PHP 代码使其返回Fairytale
. 之前Fairytale
和之后的所有东西.mp3
都应该被删除。
标识符是/
并且.mp3
只有file name
应该返回。
例如,我有这个网址:
http://adstorage.jamba.net/storage/view/325/0/fa/Fairytale.mp3
如何使用 PHP 代码使其返回Fairytale
. 之前Fairytale
和之后的所有东西.mp3
都应该被删除。
标识符是/
并且.mp3
只有file name
应该返回。
像这样的东西怎么样:
$url = "http://adstorage.jamba.net/storage/view/325/0/fa/Fairytale.mp3";
$parts = parse_url($url);
$path_parts = explode('/', $parts['path']);
list($name, $extension) = explode(".", $path_parts[count($path_parts) - 1]);
echo $name;
这可能是矫枉过正,这件事可以用一个简单的正则表达式来完成,比如:
preg_match("#.*/(\w+)\.\w+#", $url, $matches);
echo $matches[1];
使用 pathinfo 函数
<?php
$url = "http://adstorage.jamba.net/storage/view/325/0/fa/Fairytale.mp3";
$f = pathinfo($url);
echo $f[filename]; // File name Fairytale
print_r(pathinfo($url)); // File Array
?>
使用pathinfo()
功能
<?php
$url = "http://example.com/file_name.mp3";
$f = pathinfo($url);
echo $f[filename]; // File name
?>
你可以试试:
$input = 'http://adstorage.jamba.net/storage/view/325/0/fa/Fairytale.mp3';
echo current(explode('.', basename($input)));
尝试一行, $input 是你的 url (php 5.4):
$name = explode('.',array_slice(explode('/',$input), -1, 1))[0];