我在文件中有数组的字符串表示。我需要将其转换为数组。如何实现这一点。
例如
$arr = 'array(1,2,3,4,5,6)';
echo getType($arr); // string
//convert $arr to type array
echo getType($arr); // array
答案 0 :(得分:0)
这取决于文件是否完全由有效的PHP组成。如果是,你只能include
该文件。否则,鉴于此字符串是有效的PHP,您可以 eval
字符串,但通常这被视为几乎任何问题的不良解决方案。
如果整个文件都是有效的PHP而您只想在另一个脚本中使用include。
return array(1,2,3,4,5,6);
$arr = include 'somefile.php';
var_dump($arr);
这会给你......
array(6) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) }
答案 1 :(得分:0)
我不知道字符串格式是否已修复。
如果不是,您可以查看serialize()
和unserialize()
。
假设格式是写的,另一种方法是通过require
或include
执行文件,而不是将其作为字符串读取。这将在您的上下文中创建变量。这种方法存在一些小问题,例如封闭标签,但也许在您的情况下可以解决。
最后我也发现了这种方法:Execute PHP code in a string。这是我的第二种方法的改进变体。
答案 2 :(得分:0)
但是它不能同时处理不同类型的令牌,例如“数组()”和“[]”。