Php - 在数组中传递变量

时间:2016-10-23 10:20:01

标签: php arrays

如果编写了这个函数,我的脚本工作正常:

$extension_allowed =array(".pdf",".jpg",".jpeg",".png",".txt",".doc",".docx", ".odt", ".rtf", ".xls", ".xlsx", ".ods");

但是,如果我想从应用程序配置中配置扩展并从查询中提取此扩展,那么如何在数组中传递扩展?

// extensions
$extensionsUploadFileQ = mysql_query("
SELECT 
    *
FROM table_config
WHERE field1 = 'EXTENSIONS_UPLOAD'
");
$extensionsUploadFileR=mysql_fetch_array($extensionsUploadFileQ);
$extensionUploadFileParameter=$extensionsUploadFileR['value_extensions'];

查询结果,传递变量$ extensionUploadFileParameter但不能使用此数组:

$extension_allowed =array($extensionUploadFileParameter); 

如何解决这个问题?

由于

3 个答案:

答案 0 :(得分:1)

如果我对你在MySQL数据库中的理解很好,你就得到了你的" EXTENSIONS_UPLOAD"像" .pdf,.jpg,.jpeg,.png,.txt,.doc,.docx"并且您只想将其转换为PHP数组类型。

如果是,则尝试使用explode PHP函数:

// extensionUploadFileParameter = ".pdf,.jpg,.jpeg";
$extension_allowed = explode(",", $extensionUploadFileParameter);

/* 
   $extension_allowed will have:

   array(3)
   (
     [0] => string(4) ".pdf"
     [1] => string(4) ".jpg"
     [2] => string(4) ".jpeg"
   )
*/

OR

// extensionUploadFileParameter = '".pdf",".jpg",".jpeg"';
preg_match_all('/(.\w+)/', $extensionUploadFileParameter, $matches);  
$extension_allowed = $matches[0];

/*
 $extension_allowed will have:

 Array
 (
   [0] => .pdf
   [1] => .jpg
   [2] => .jpeg
 )
*/

我希望它有所帮助。

祝你好运。

P.S。尽量避免使用" eval"功能:

  

警告eval()语言结构非常危险,因为它   允许执行任意PHP代码。因此不鼓励使用它。   如果您已经仔细确认除了以外没有其他选择   使用此构造,请特别注意不要传递任何用户   提供数据而未事先正确验证。

答案 1 :(得分:1)

您写道:

  

在mySQL文件中我有这个值字符串:“。pdf”,“。jpg”,“。jpeg”,“。png”,“。txt”,“。doc”,“。docx”,“。odt “,”。rtf“,”。xls“,”。xlsx“,”。ods“我认为:当这个tring是从查询中提取时,传递的是变量$ extensionUploadFileParameter - Frankie

您可以使用eval功能

eval('$extension_allowed = array(' . $extensionUploadFileParameter . ');'); 

答案 2 :(得分:0)

谢谢。该脚本可以正常使用:

 preg_match_all('/(.\w+)/', $extensionUploadFileParameter, $matches);  
$extension_allowed = $matches[0];

eval()很危险:eval()语言结构非常危险,因为它允许执行任意PHP代码