0

例如,我有这个网址:

http://adstorage.jamba.net/storage/view/325/0/fa/Fairytale.mp3

如何使用 PHP 代码使其返回Fairytale. 之前Fairytale和之后的所有东西.mp3都应该被删除。

标识符是/并且.mp3只有file name应该返回。

4

5 回答 5

1

像这样的东西怎么样:

$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];
于 2012-11-30T09:11:19.017 回答
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

?>
于 2012-11-30T09:13:34.433 回答
1

使用pathinfo()功能

<?php
$url = "http://example.com/file_name.mp3";
$f = pathinfo($url);
echo $f[filename]; // File name
?>
于 2014-03-02T06:15:56.157 回答
0

你可以试试:

$input = 'http://adstorage.jamba.net/storage/view/325/0/fa/Fairytale.mp3';
echo current(explode('.', basename($input)));
于 2012-11-30T09:12:44.547 回答
0

尝试一行, $input 是你的 url (php 5.4):

$name = explode('.',array_slice(explode('/',$input), -1, 1))[0];
于 2012-11-30T09:20:08.373 回答