php执行字符串代码,PHP代码执行 - Go语言中文社区

php执行字符串代码,PHP代码执行


Eval函数介绍

Eval函数的语法如下:

eval ( string $code )

$code是字符串型变量,是需要执行的PHP代码。

代码不能包含打开/关闭 PHP tags。比如, 'echo "Hi!";' 不能这样传入:''。但仍然可以用合适的PHP tag来离开、重新进入PHP模式。比如 'echo "In PHP mode!"; ?>In HTML mode!

0b30446c2cd1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

0b30446c2cd1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

0b30446c2cd1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

0b30446c2cd1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

0b30446c2cd1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

0b30446c2cd1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

0b30446c2cd1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

PHP7.2.1返回的错误信息

eval()的返回值为 NULL,除非在执行的代码中return了一个值,函数返回传递给 return 的值。 PHP 7 开始,执行的代码里如果有一个parse error,eval() 会抛出 ParseError 异常。在 PHP 7 之前, 如果在执行的代码中有parse error,eval() 返回 FALSE,之后的代码将正常执行。无法使用 set_error_handler() 捕获 eval() 中的解析错误。

0b30446c2cd1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

preg_replace函数分析

preg_replace函数的语法如下:

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

=

new=phpinfo()&pattern=/lammer/e&base=lammer

mixed 说明一个参数可以接受多种不同的(但不一定是所有的)类型。Int是整形变量。

中括号的意思是如果前一个参数存在,那么中括号中的参数可写可不写。例如:如果存在$subject参数,则$limit参数可有可无;如果不存在$limit参数,则$ count也不能出现。

pattern:

要搜索的模式。可以使一个字符串或字符串数组。

replacement:

用于替换的字符串或字符串数组。

当使用e 修饰符时,这个函数会转义一些字符(即:'、"、  和 NULL) 然后进行后向引用替换。当这些完成后请确保后向引用解析完后没有单引号或 双引号引起的语法错误(比如: 'strlen('$1')+strlen("$2")')。确保符合PHP的 字符串语法,并且符合eval语法。因为在完成替换后, 引擎会将结果字符串作为php代码使用eval方式进行评估并将返回值作为最终参与替换的字符串。

0b30446c2cd1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

图5.1 preg_replace代码执行

subject:

要进行搜索和替换的字符串或字符串数组。

如果subject是一个数组,搜索和替换回在subject 的每一个元素上进行, 并且返回值也会是一个数组。

limit:

每个模式在每个subject上进行替换的最大次数。默认是 -1(无限)。

count:

如果指定,将会被填充为完成的替换次数。

0b30446c2cd1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_28871885/article/details/115152386
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-30 13:11:17
  • 阅读 ( 788 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢