パラメータ文字列を解析して配列にする必要があります。コードは次のとおりです。
$paramStr = 'type,mp3|path,audio/file.php?id=artist01|popup,Yes';
function parse($paramStr) {
$params = preg_split('#=|,|\|#', $paramStr);
for ($i=0;$i<count($params);$i+=2) {
if ($params[$i] == "path") {
$params[$i+1] = $baseurl . "/" . $params[$i+1];
}
$ret[$params[$i]] = $params[$i+1];
}
return $ret;
}
if ($paramStr != "") {
$paramArr = parse($paramStr);
} else {
echo 'error';
}
var_dump($ret) を実行すると、正しい出力が得られます。
array
'type' => string 'mp3' (length=3)
'path' => string 'http://localhost/audio/file.php%3Fid%3Dartist01' (length=49)
'popup' => string 'Yes' (length=3)
ただし、var_dump($paramArr) を実行すると、奇妙な出力が得られました。
array
'type' => string 'mp3' (length=3)
'path' => string 'http://localhost/audio/file.php?id' (length=34)
'artist01' => string 'popup' (length=5)
'Yes' => null
誰でも理由を知っていますか?前もって感謝します。