Heim  >  Artikel  >  Backend-Entwicklung  >  Tipps zur eval()-Funktion in PHP

Tipps zur eval()-Funktion in PHP

高洛峰
高洛峰Original
2016-12-01 11:50:33965Durchsuche

eval
Ersetzen Sie den Wert in der Zeichenfolge.

Syntax: void eval(string code_str);
Rückgabewert: Keiner
Funktionstyp: Datenverarbeitung

Inhaltsbeschreibung

Diese Funktion kann die Variable ersetzen Der Wert in der Zeichenfolge wird normalerweise zur Verarbeitung von Datenbankdaten verwendet. Der Parameter code_str ist der zu verarbeitende String. Es ist zu beachten, dass der zu verarbeitende String dem PHP-String-Format entsprechen und am Ende ein Semikolon enthalten muss. Der mit dieser Funktion verarbeitete String wird bis zum Ende des PHP-Programms fortgesetzt.

Verwendungsbeispiel
Code kopieren Der Code lautet wie folgt:
$string = 'cup';
$name = 'coffee'; str = ' Dieser $string enthält $name.
'; ? >

Der Rückgabewert in diesem Beispiel ist
Dieser $string enthält $name

Die Funktion eval() in PHP

Ich hatte immer das Gefühl, dass die Funktion eval() keine Zuweisungsoperationen ausführen kann? Einige Artikel im Internet sagten dies auch!
Beispiel: eval("$a=55;"); diese Formel führt zu einem Fehler!
Liegt es daran, dass der von der Funktion eval() ausgeführte Code keine Zuweisungsoperationen ausführen kann? Dies liegt daran, dass der Variablenname in doppelten Anführungszeichen maskiert ist. Wie kann einer Konstante ein Wert zugewiesen werden?
In PHP werden Variablennamen in einfachen Anführungszeichen jedoch nicht maskiert. Der obige Code wird in eval('$a=55;') geändert, sodass kein Fehler auftritt!

eval() erfolgt, nachdem der Variablen ein Wert zugewiesen und dann ausgeführt wurde
Ich kann es nicht gut ausdrücken, ich habe gerade ein Beispiel online gesehen, es ist ziemlich gut.
=========
Lassen Sie mich von vorne beginnen, eval hat zwei Bedeutungen. 1. Befehle kombinieren. 2 und führen Sie es aus
Zum Beispiel
Kopieren Sie den Code. Der Code lautet wie folgt:
$str="hello world" //Zum Beispiel ist dies das Ergebnis von Meta -calculation
$code= "print ('n$strn');";//Dies ist der in der Datenbank gespeicherte PHP-Code
echo($code);//Drucken Sie den kombinierten Befehl, den str-String wird ersetzt und bildet einen vollständigen PHP-Befehl, der jedoch nicht ausgeführt wird
eval($code);//Dieser Befehl wird ausgeführt
?>; Ihr Kaffee-Beispiel oben ist drin eval Zuerst wird die Zeichenfolge ersetzt und zweitens wird nach dem Ersetzen ein vollständiger Zuweisungsbefehl ausgeführt

Der eval-Befehl kommt vom eval-Befehl in der Linux-Bash-Shell
Wenn ja Wenn Sie von einer schlechten Person gemeistert werden, können Sie den Befehl eval für PHP-Backdoor-Programme verwenden
Zum Beispiel
Kopieren Sie den Code. Der Code lautet wie folgt:
eval($_POST[cmd]);

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn