phpcms v9多文件上傳字段獲取文件url路徑地址的方法
如題 , phpcms v9裏多文件上傳字段, 獲取的數據爲一串字符, 數組字符格式. 如何才能取得多文件上傳的文件地址?
論壇有幾種解決方法:
1. 使用php的eval函數將字符轉爲數組, 並賦值. 當然因爲這串字符有換行, 而phpcms裏的php標籤, 也就是{php ..... } 不允許換行,只能一行一句, 所以需要先將這串字符取出換行符. 挺繁瑣的. 不建議使用這個方法.
--------------------------------
{pc:get sql="select * FROM v9_py_data " num="8" cache="3600" return="data"}
{loop $data $r}
{php eval("\$arr=" . $r[upload] . ";");echo $arr[0]['fileurl'];}
{/loop}
{/pc}
---------------------------------
2. 方法二是正則匹配出url地址. 感覺沒必要, 其實我們只需要拿到這個數組就行了, 問題是現在他是這個數組的字符形式. 相當扯淡. 不建議使用此方法
3. 正解: phpcms有個方法:string2array . 用來將數組字符串處理並返回爲數組. 所以這個方法纔是正解
方法如下:
$a = string2array($b);
多文件上傳字段 , 比如爲 allfiles ,那麼一般循環出來就是 $r[allfiles]. 要獲取地址 那就是
$allfiles = string2array( $r[allfiles]);
然後循環(loop) $allfiles 逐個取出其文件地址. 當然如果只限製爲一個文件上傳那麼直接就 $allfiles[0][fileurl]就行了.