Maison > développement back-end > Problème PHP > Convertir la chaîne php en code exécutable

Convertir la chaîne php en code exécutable

Guanhui
Libérer: 2023-02-28 21:32:01
original
4836 Les gens l'ont consulté

Convertir la chaîne php en code exécutable

php字符串转成可执行代码

在php中将字符串转为可执行的代码,可以通过使用php中的“eval()”函数来实现。

eval说明与用法

eval — 把字符串作为PHP代码执行

eval ( string $code ) : mixed
Copier après la connexion

注:函数eval()语言结构是 非常危险的, 因为它允许执行任意 PHP 代码。 它这样用是很危险的。 如果您仔细的确认过,除了使用此结构以外 别无方法, 请多加注意,不要允许传入任何由用户 提供的、未经完整验证过的数据 。

eval参数

code:

需要被执行的字符串

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

除此之外,传入的必须是有效的 PHP 代码。所有的语句必须以分号结尾。比如 'echo "Hi!"' 会导致一个 parse error,而 'echo "Hi!";' 则会正常运行。

return 语句会立即中止当前字符串的执行。

代码执行的作用域是调用 eval() 处的作用域。因此,eval() 里任何的变量定义、修改,都会在函数结束后被保留。

eval返回值

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

eval使用示例

<?php
$string = &#39;cup&#39;;
$name = &#39;coffee&#39;;
$str = &#39;This is a $string with my $name in it.&#39;;
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>
Copier après la connexion

以上例程会输出:

This is a $string with my $name in it.
This is a cup with my coffee in it.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal