Inhaltsverzeichnis
回复讨论(解决方案)
Heim Backend-Entwicklung PHP-Tutorial $str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码

$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码

Jun 23, 2016 pm 01:50 PM
str 执行

$str=preg_replace("/\[attach\]/is","111",$str);  这一句如何把111替换成可以执行的PHP代码

比如$str=preg_replace("/\[attach\]/is","$str=preg_replace(",$str);  结果出来后成字符了


回复讨论(解决方案)

$message=preg_replace("/\[url\](http:[^\]]*?)\[\/url\]/ies","_cuturl('\\1')",$message);function _cuturl($msg){	$new=cutstr($msg,20);	return $new;}
Nach dem Login kopieren

在正则后面加符号/e,就可以调用函数,在里面就可以执行php的操作

$str=preg_replace("/\[attach\]/is","$str=preg_replace(",$str);

这个是BBCODE的PHP替换。你应该是想实现类似DISCUZ的那种附件BBCODE。
要想回调可以使用 preg_replace_callback。

<?php //author: default7<default7#zbphp.com$str = preg_replace_callback("/\[attach\](\d+)\[\/attach\]/isUe",function($attachId = 0){	//todo 	$row = $db->query("select * from tb where id=$id ")->row();	return '<img  src="/static/imghw/default1.png"  data-src="'.$row['pic'].'"  class="lazy"  .$row['pic'].'" / alt="$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码" >';},$str);
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

原理如上,具体代码自己测试一下。



这个是BBCODE的PHP替换。你应该是想实现类似DISCUZ的那种附件BBCODE。
要想回调可以使用 preg_replace_callback。

<?php //author: default7<default7#zbphp.com$str = preg_replace_callback("/\[attach\](\d+)\[\/attach\]/isUe",function($attachId = 0){	//todo 	$row = $db->query("select * from tb where id=$id ")->row();	return '<img  src="/static/imghw/default1.png"  data-src="'.$row['pic'].'"  class="lazy"  .$row['pic'].'" / alt="$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码" >';},$str);
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

原理如上,具体代码自己测试一下。



修正:
$str = preg_replace_callback("/\[attach\]\s*(\d+)\s*\[\/attach\]/isUe",function($match){	//todo 	$id = $match[1];	$row = $db->query("select * from tb where id=$id ")->row();	return $row ? '<img  src="/static/imghw/default1.png"  data-src="'.$row['pic'].'"  class="lazy"  .$row['pic'].'" / alt="$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码" >' : '';},$str);
Nach dem Login kopieren
Nach dem Login kopieren

$str=preg_replace("/\[attach\]/is","$str=preg_replace(",$str)


这个是BBCODE的PHP替换。你应该是想实现类似DISCUZ的那种附件BBCODE。
要想回调可以使用 preg_replace_callback。

<?php //author: default7<default7#zbphp.com$str = preg_replace_callback("/\[attach\](\d+)\[\/attach\]/isUe",function($attachId = 0){	//todo 	$row = $db->query("select * from tb where id=$id ")->row();	return '<img  src="/static/imghw/default1.png"  data-src="'.$row['pic'].'"  class="lazy"  .$row['pic'].'" / alt="$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码" >';},$str);
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

原理如上,具体代码自己测试一下。



修正:
$str = preg_replace_callback("/\[attach\]\s*(\d+)\s*\[\/attach\]/isUe",function($match){	//todo 	$id = $match[1];	$row = $db->query("select * from tb where id=$id ")->row();	return $row ? '<img  src="/static/imghw/default1.png"  data-src="'.$row['pic'].'"  class="lazy"  .$row['pic'].'" / alt="$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码" >' : '';},$str);
Nach dem Login kopieren
Nach dem Login kopieren




出现错误提示:Parse error: syntax error, unexpected T_FUNCTION in
指向$str = preg_replace_callback("/\[attach\]\s*(\d+)\s*\[\/attach\]/isUe",function($match){这一行

你的 php 版本是多少?

php5.2

function get($id) {  //$value = 这里是相关操作的代码  return $value;}$str = preg_replace("/\[(attach)\]/ise", "get('$1')", $str);
Nach dem Login kopieren

也可以
function get($r) {  //$value = 这里是相关操作的代码  return $value;}$str = preg_replace_callback("/\[(attach)\]/is", "get", $str);
Nach dem Login kopieren



dz的手机版不显示图片,所以我想自己写一个 显示人页面。

function get($r) {  $value = SELECT * FROM `bbs_forum_attachment_$row[tableid]` where tid =id  return $value;}$str = preg_replace_callback("/\[(attach)\]/is", "get", $str);
Nach dem Login kopieren


where tid =id 这个ID如何得到

你 print_r($r) 就可看到

你 print_r($r) 就可看到



function get($r) {  $value = "SELECT * FROM `bbs_forum_attachment_9` where tid =$r"  return $value;}$str = preg_replace_callback("/\[(attach)\]/is", "get", $str);
Nach dem Login kopieren


错误提示:Parse error: syntax error, unexpected T_RETURN

第二行的结尾分号少写了。

第二行的结尾分号少写了。



呵呵;我改成
function get($r) {  $value = "SELECT * FROM `bbs_forum_attachment_9` where tid =$r";  return $value;}$str = preg_replace_callback("/\[(attach)\]/is", "get", $str);
Nach dem Login kopieren

可是前天输出
SELECT * FROM `bbs_forum_attachment_9` where tid =Array26588

我想要的是SELECT * FROM `bbs_forum_attachment_9` where tid =26588 不要Array  怎么弄

我改成单引号前台输出 SELECT * FROM `bbs_forum_attachment_9` where tid =$r

是不是这段php语句没有执行,直接转成文本了

26588 从哪里来的? 在get方法里面 print_r($r); 得到什么?

改成$str = preg_replace_callback("/\[attach\](.+?)\[\/attach\]/is", "get", $str);  之后

输出:SELECT * FROM `bbs_forum_attachment_9` where tid =Array

26588 从哪里来的? 在get方法里面 print_r($r); 得到什么?




在get方法里面 print_r($r); 得到 值是  1

26588应该是第一次没有过滤干净

看不懂了,print_r($r); 怎么可能是1呢?

php5.2



忘了写明,我写的那个要 PHP 5.5+ 

php5.2    怎么写呢

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Python-Skript, das alle 5 Minuten ausgeführt wird Python-Skript, das alle 5 Minuten ausgeführt wird Sep 10, 2023 pm 03:33 PM

Automatisierung und Aufgabenplanung spielen eine entscheidende Rolle bei der Rationalisierung wiederkehrender Aufgaben in der Softwareentwicklung. Stellen Sie sich vor, es gibt ein Python-Skript, das alle 5 Minuten ausgeführt werden muss, beispielsweise um Daten von einer API abzurufen, eine Datenverarbeitung durchzuführen oder regelmäßige Aktualisierungen zu senden. Das häufige manuelle Ausführen von Skripten kann zeitaufwändig und fehleranfällig sein. Hier kommt die Aufgabenplanung ins Spiel. In diesem Blogbeitrag erfahren Sie, wie Sie ein Python-Skript so planen, dass es alle 5 Minuten ausgeführt wird, um sicherzustellen, dass es automatisch und ohne manuelles Eingreifen ausgeführt wird. Wir besprechen verschiedene Methoden und Bibliotheken, mit denen Sie dieses Ziel erreichen und Aufgaben effizient automatisieren können. Eine einfache Möglichkeit, mit der Funktion time.sleep() alle 5 Minuten ein Python-Skript auszuführen, ist die Verwendung von tim

So verwenden Sie Python für die Skripterstellung und Ausführung unter Linux So verwenden Sie Python für die Skripterstellung und Ausführung unter Linux Oct 05, 2023 am 11:45 AM

So verwenden Sie Python zum Schreiben und Ausführen von Skripten unter Linux. Im Linux-Betriebssystem können wir Python zum Schreiben und Ausführen verschiedener Skripte verwenden. Python ist eine prägnante und leistungsstarke Programmiersprache, die eine Fülle von Bibliotheken und Tools bereitstellt, um die Skripterstellung einfacher und effizienter zu machen. Im Folgenden stellen wir die grundlegenden Schritte zur Verwendung von Python zum Schreiben und Ausführen von Skripten unter Linux vor und stellen einige spezifische Codebeispiele bereit, die Ihnen helfen, es besser zu verstehen und zu verwenden. Installieren Sie Python

So führen Sie den Brown-Forsythe-Test in Python durch So führen Sie den Brown-Forsythe-Test in Python durch Aug 31, 2023 pm 11:53 PM

Der Brown-Forsythe-Test ist ein statistischer Test, mit dem ermittelt wird, ob die Varianzen zweier oder mehrerer Gruppen gleich sind. Der Levene-Test verwendet die absolute Abweichung vom Mittelwert, während der Brown-Forsythe-Test die Abweichung vom Median verwendet. Die im Test verwendete Nullhypothese lautet wie folgt: - H0: Die Varianzen der Gruppen (Grundgesamtheit) sind gleich. Die Alternativhypothese lautet, dass die Varianzen nicht gleich sind. - H1: Die Varianzen der Gruppen (Grundgesamtheit) sind nicht gleich Führen Sie den Test durch und berechnen Sie den Median jeder Gruppe und seine Korrelation mit dem Median. Die absolute Abweichung der Anzahl der Ziffern. Anschließend berechnen wir die F-Statistik basierend auf der Varianz dieser Abweichungen. Nehmen Sie an, dass die berechnete F-Statistik größer als der kritische Wert in der F-Verteilungstabelle ist. In diesem Fall lehnen wir die Nullhypothese ab und kommen zu dem Schluss, dass die Varianzen der Gruppen nicht gleich sind. In Python, sc

Wie führe ich ANCOVA in Python durch? Wie führe ich ANCOVA in Python durch? Sep 01, 2023 pm 05:21 PM

ANCOVA (Kovarianzanalyse) ist eine nützliche statistische Methode, da sie die Einbeziehung von Kovariaten in die Analyse ermöglicht, was bei der Anpassung an Hilfsvariablen helfen und die Präzision von Vergleichen zwischen Gruppen erhöhen kann. Diese zusätzlichen Faktoren oder Kovariaten können mithilfe von ANCOVA in die Studie einbezogen werden. Um sicherzustellen, dass beobachtete Unterschiede zwischen Gruppen durch die Behandlung oder Intervention in der Studie und nicht durch äußere Faktoren verursacht werden, kann ANCOVA verwendet werden, um die Auswirkung von Kovariaten auf die Gruppenmittelwerte anzupassen. Dies ermöglicht genauere Vergleiche zwischen Gruppen und liefert zuverlässigere Schlussfolgerungen über die Beziehungen zwischen Variablen. In diesem Artikel werden wir uns ANCOVA genauer ansehen und es in Python implementieren. Was ist ANCOVA? Die Methode der Kovarianzanalyse (ANCOVA) vergleicht zwei oder mehr Gruppen

Wie schreibe ich PHP-Code im Browser und verhindere, dass der Code ausgeführt wird? Wie schreibe ich PHP-Code im Browser und verhindere, dass der Code ausgeführt wird? Mar 10, 2024 pm 02:27 PM

Wie schreibe ich PHP-Code im Browser und verhindere, dass der Code ausgeführt wird? Mit der Popularität des Internets beschäftigen sich immer mehr Menschen mit der Webentwicklung, und auch das Erlernen von PHP hat immer mehr Aufmerksamkeit auf sich gezogen. PHP ist eine serverseitige Skriptsprache, die häufig zum Schreiben dynamischer Webseiten verwendet wird. Während der Übungsphase möchten wir jedoch in der Lage sein, PHP-Code im Browser zu schreiben und die Ergebnisse zu sehen, aber wir möchten nicht, dass der Code ausgeführt wird. Wie kann man also PHP-Code in den Browser schreiben und verhindern, dass er ausgeführt wird? Dies wird im Folgenden ausführlich beschrieben. Erste,

In Python integrierte Quellcodeanalyse vom Typ str In Python integrierte Quellcodeanalyse vom Typ str May 09, 2023 pm 02:16 PM

1Die Grundeinheit des Unicode-Computerspeichers ist das Byte, das aus 8 Bits besteht. Da Englisch nur aus 26 Buchstaben plus einer Reihe von Symbolen besteht, können englische Zeichen direkt in Bytes gespeichert werden. Andere Sprachen (wie Chinesisch, Japanisch, Koreanisch usw.) müssen jedoch aufgrund der großen Anzahl von Zeichen mehrere Bytes für die Codierung verwenden. Mit der Verbreitung der Computertechnologie entwickelt sich die Technologie zur Kodierung nicht-lateinischer Zeichen weiter, es gibt jedoch immer noch zwei wesentliche Einschränkungen: keine Unterstützung mehrerer Sprachen: Das Kodierungsschema einer Sprache kann nicht in einer anderen Sprache verwendet werden und es gibt keinen einheitlichen Standard: Beispielsweise gibt es auf Chinesisch viele Codierungsstandards wie GBK, GB2312, GB18030 usw. Da die Codierungsmethoden nicht einheitlich sind, müssen Entwickler zwischen verschiedenen Codierungen hin und her konvertieren, und es treten zwangsläufig viele Fehler auf.

Wie gehe ich mit Problemen bei der Ausführung von .sh-Dateien in einer Linux-Umgebung um? Wie gehe ich mit Problemen bei der Ausführung von .sh-Dateien in einer Linux-Umgebung um? Mar 14, 2024 pm 03:36 PM

In der Linux-Umgebung stoßen wir häufig auf Situationen, in denen wir .sh-Dateien ausführen müssen. Die .sh-Datei ist eine Skriptdatei im Linux-System, normalerweise mit .sh als Suffix, die zum Ausführen einer Reihe von Befehlen verwendet wird. Aber manchmal kann es vorkommen, dass die .sh-Datei nicht ausgeführt werden kann. Dies kann an Berechtigungsproblemen oder dem Codierungsformat oder anderen Gründen liegen. In diesem Artikel wird der Umgang mit Problemen bei der Ausführung von .sh-Dateien in einer Linux-Umgebung vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Fügen Sie Ausführungsberechtigungen im Linux-System hinzu, wenn a.

Was sind die Gemeinsamkeiten und Unterschiede zwischen __str__ und __repr__ in Python? Was sind die Gemeinsamkeiten und Unterschiede zwischen __str__ und __repr__ in Python? Apr 29, 2023 pm 07:58 PM

Was sind die Gemeinsamkeiten und Unterschiede zwischen __str__ und __repr__? Wir alle wissen, dass die in Python integrierte Funktion repr() Objekte in Form von Zeichenfolgen ausdrücken kann, um unsere Identifizierung zu erleichtern. Dies ist die „String-Darstellung“. repr() erhält die String-Darstellung eines Objekts über die spezielle Methode __repr__. Wenn __repr__ nicht implementiert ist und wir eine Instanz eines Vektors auf der Konsole ausgeben, kann die resultierende Zeichenfolge sein. >>>classExample:pass>>>print(str(Example()))>>>

See all articles