我已经构建了以下代码,并且正在执行我的代码数组部分所需的工作。
$demo = '[url=https://www78.zippyshare.com/v/AQg3SYMQ/file.html]1. Like Im Fabo.mp3[/url][url=https://www78.zippyshare.com/v/TPRugyFb/file.html]2. Stic _Em Up.mp3';
$arr = explode("[/url]", $demo);
print '<pre>'; print_r($arr); print '</pre>';
上面的部分返回这个。
Array
(
[0] => [url=https://www78.zippyshare.com/v/AQg3SYMQ/file.html]1. Like Im Fabo.mp3
[1] => [url=https://www78.zippyshare.com/v/TPRugyFb/file.html]2. Stic _Em Up.mp3
)
我现在想知道如何分解上面的每个部分以返回类似的内容。
Array
(
[0] => https://www78.zippyshare.com/v/AQg3SYMQ/file.html
[0] => 1. Like Im Fabo.mp3
[1] => https://www78.zippyshare.com/v/TPRugyFb/file.html
[1] => 2. Stic _Em Up.mp3
)
这样我就可以轻松获取文件路径和文件名。
答案 0 :(得分:2)
您可以使用正则表达式进行解析:
// Setup regex
$re = '/\[url=(?P<url>[^\]]*)](?P<song>[^\[]*)\[\/url]/';
$str = '[url=https://www78.zippyshare.com/v/AQg3SYMQ/file.html]1. Like Im Fabo.mp3[/url][url=https://www78.zippyshare.com/v/TPRugyFb/file.html]2. Stic _Em Up.mp3[/url]';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
输出将是这样的:
array(2) {
[0]=>
array(5) {
[0]=>
string(80) "[url=https://www78.zippyshare.com/v/AQg3SYMQ/file.html]1. Like Im Fabo.mp3[/url]"
["url"]=>
string(49) "https://www78.zippyshare.com/v/AQg3SYMQ/file.html"
[1]=>
string(49) "https://www78.zippyshare.com/v/AQg3SYMQ/file.html"
["song"]=>
string(19) "1. Like Im Fabo.mp3"
[2]=>
string(19) "1. Like Im Fabo.mp3"
}
[1]=>
array(5) {
[0]=>
string(79) "[url=https://www78.zippyshare.com/v/TPRugyFb/file.html]2. Stic _Em Up.mp3[/url]"
["url"]=>
string(49) "https://www78.zippyshare.com/v/TPRugyFb/file.html"
[1]=>
string(49) "https://www78.zippyshare.com/v/TPRugyFb/file.html"
["song"]=>
string(18) "2. Stic _Em Up.mp3"
[2]=>
string(18) "2. Stic _Em Up.mp3"
}
}
您可以像这样遍历结果集:
foreach ($matches as $match){
echo(($match["url"])." => ".($match["song"])."\r\n");
}
结果将是:
https://www78.zippyshare.com/v/AQg3SYMQ/file.html => 1. Like Im Fabo.mp3
https://www78.zippyshare.com/v/TPRugyFb/file.html => 2. Stic _Em Up.mp3
答案 1 :(得分:0)
首先使用trim修剪字符串开头的[url =] 然后用]
分解字符串的其余部分答案 2 :(得分:-1)
您应该遍历数组,并使用parse_url()函数解析每个URL。