从网址获取文本块

时间:2012-11-30 09:06:17

标签: php

例如,我有这个网址:

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

如何使用PHP代码以便返回Fairytale。 <{1}}之前和Fairytale之后的所有内容都应该删除。

标识符为.mp3/,只应返回.mp3

5 个答案:

答案 0 :(得分: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];

答案 1 :(得分: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

?>

答案 2 :(得分:1)

使用pathinfo()功能

<?php
$url = "http://example.com/file_name.mp3";
$f = pathinfo($url);
echo $f[filename]; // File name
?>

答案 3 :(得分:0)

您可以尝试使用:

$input = 'http://adstorage.jamba.net/storage/view/325/0/fa/Fairytale.mp3';
echo current(explode('.', basename($input)));

答案 4 :(得分:0)

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

$name = explode('.',array_slice(explode('/',$input), -1, 1))[0];