通过PHP自定义协议实现把字符串代码变为可以执行代码
程序员文章站
2022-04-04 08:05:29
...
以crossphp中解析注释配置为例,定义协议名:annotate $str_code = array(foo=bar); stream_register_wrapper(annotate,stringToPHPStream); $var=include(annotate://{$str_code}); print_r($var); 这样字符串$str_code就变成了一个php的array,远离eval吧,骚年
以crossphp中解析注释配置为例,定义协议名:annotate
$str_code = 'array("foo"=>"bar")';
stream_register_wrapper("annotate", "stringToPHPStream");
$var = include ("annotate://{$str_code}");
print_r($var);
这样字符串$str_code就变成了一个php的array, 远离eval吧,骚年~
如果要更改示例中协议名称,请更改stringToPHPStream这个类中的stream_open方法 CrossPHP
"bar")'; stream_register_wrapper("annotate", "stringToPHPStream"); $var = include ("annotate://{$str_code}"); print_r($var);
* 使用方式 stream_register_wrapper("自定义名字", "stringToPHPStream") * $var = include ("自定义名字://字符串代码") ** * @Auth: wonli