我在我的网站上嵌入了一些mp3文件。问题是一些名称不同,我的网站不知道如何嵌入 - 除非我用正确的名称定义所有文件。
例如,
http://example.com/chapter1/book-[some random name].001.mp3
我已经设置了我的网站,所以它就像这样嵌入
http://example.com/chapter1/book.001.mp3
我是否有任何可以与php一起使用的解决方案,因此它会自动填充[some random name]
。
答案 0 :(得分:1)
你有一些选择,
正确输出文件的路径(最简单)
在db或flat文件中构建并存储mp3的注册表,并使用mod_rewrite将参数传递给loader脚本。 (以下示例)
<?php /* mod_rewrite .htaccess in chapters folder RewriteEngine On Options -Indexes RewriteBase /chapter1 RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*).mp3$ index.php?loadmp3=$1 [L] */ $mp3_dir='./mp3s/'; //Example passed url: http://localhost/chapter1/book.002.mp3 if(isset($_GET['loadmp3'])){ $real_path = get_mp3_list($_GET['loadmp3']); if($real_path != false){ //Result: ./mp3s/book-next_random_name.002.mp3 print_r($real_path); //Pass the url to a streamer script }else{ //not found } }
/**
* Build & cache, search for mp3 from array
*/
function get_mp3_list($search){
global $mp3_dir;
if(file_exists($mp3_dir.'mp3s.json')){
$list = json_decode(file_get_contents($mp3_dir.'mp3s.json'),true);
}else{
$mp3s = glob($mp3_dir."*.mp3");
$list = array();
foreach($mp3s as $mp3){
if(preg_match("#(\w+)-(\w+).(\d+).mp3#", $mp3, $match)){
$list[]=array('location'=>$mp3,
'type'=>$match[1],
'name'=>$match[2],
'episode'=>$match[3]);
}
if(!empty($list)){file_put_contents($mp3_dir.'mp3s.json', json_encode($list));}
}
}
$search = explode('.',$search,2);
foreach($list as $mp3){
if($mp3['type'] == $search[0] && $mp3['episode'] == $search[1]){
return $mp3['location'];
}
}
return false;
}
/*
$list Example Array
(
[0] => Array
(
[location] => ./mp3s/book-next_random_name.002.mp3
[type] => book
[name] => next_random_name
[episode] => 002
)
[1] => Array
(
[location] => ./mp3s/book-some_random_name.001.mp3
[type] => book
[name] => some_random_name
[episode] => 001
)
)
*/
?>
希望有所帮助