찾다
백엔드 개발PHP 튜토리얼$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码

$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;}

在正则后面加符号/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/imghwm/default1.png"  data-src="'.$row['pic'].'"  class="lazy"  .$row['pic'].'" / alt="$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码" >';},$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/imghwm/default1.png"  data-src="'.$row['pic'].'"  class="lazy"  .$row['pic'].'" / alt="$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码" >';},$str);

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



修正:
$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/imghwm/default1.png"  data-src="'.$row['pic'].'"  class="lazy"  .$row['pic'].'" / alt="$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码" >' : '';},$str);

$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/imghwm/default1.png"  data-src="'.$row['pic'].'"  class="lazy"  .$row['pic'].'" / alt="$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码" >';},$str);

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



修正:
$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/imghwm/default1.png"  data-src="'.$row['pic'].'"  class="lazy"  .$row['pic'].'" / alt="$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码" >' : '';},$str);



出现错误提示: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);

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



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);


 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);


错误提示: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);

可是前天输出
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    怎么写呢

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
每5分钟执行一次的Python脚本每5分钟执行一次的Python脚本Sep 10, 2023 pm 03:33 PM

自动化和任务调度在简化软件开发中的重复任务方面发挥着至关重要的作用。想象一下,有一个Python脚本需要每5分钟执行一次,例如从API获取数据、执行数据处理或发送定期更新。如此频繁地手动运行脚本可能非常耗时并且容易出错。这就是任务调度的用武之地。在这篇博文中,我们将探讨如何安排Python脚本每5分钟执行一次,确保它自动运行而无需手动干预。我们将讨论可用于实现此目标的不同方法和库,使您能够有效地自动化任务。使用time.sleep()函数每5分钟运行一次Python脚本的一种简单方法是利用tim

如何使用Python在Linux中进行脚本编写和执行如何使用Python在Linux中进行脚本编写和执行Oct 05, 2023 am 11:45 AM

如何使用Python在Linux中进行脚本编写和执行在Linux操作系统中,我们可以使用Python编写并执行各种脚本。Python是一种简洁而强大的编程语言,它提供了丰富的库和工具,使得脚本编写变得更加简单和高效。下面我们将介绍在Linux中如何使用Python进行脚本编写和执行的基本步骤,同时提供一些具体的代码示例来帮助你更好地理解和运用。安装Pytho

怎样在浏览器中编写PHP代码并保持代码不被执行?怎样在浏览器中编写PHP代码并保持代码不被执行?Mar 10, 2024 pm 02:27 PM

怎样在浏览器中编写PHP代码并保持代码不被执行?随着互联网的普及,越来越多的人开始接触网页开发,其中对于PHP的学习也越来越受到关注。PHP是一种在服务器端运行的脚本语言,通常用于编写动态网页。然而,在练习阶段,我们希望能够在浏览器中编写PHP代码并查看结果,但又不希望代码被执行。那么,如何实现在浏览器中编写PHP代码并保持不被执行呢?下面将详细介绍。首先,

如何在Python中执行Brown-Forsythe检验如何在Python中执行Brown-Forsythe检验Aug 31, 2023 pm 11:53 PM

Brown-Forsythe检验是一种统计检验,用于确定两个或多个组的方差是否相等。Levene检验使用与均值的绝对偏差,而Brown-Forsythe检验则使用与中位数的偏差。检验中使用的原假设如下-H0:组(总体)的方差相等备择假设是方差不相等-H1:组(群体)的方差不相等为了执行测试,我们计算每组的中位数以及与中位数的绝对偏差。然后我们根据这些偏差的方差计算F统计量。假设计算出的F统计量大于F分布表中的临界值。在这种情况下,我们拒绝原假设并得出结论:各组的方差不相等。在Python中,sc

如何在Python中执行ANCOVA?如何在Python中执行ANCOVA?Sep 01, 2023 pm 05:21 PM

ANCOVA(协方差分析)是一种有用的统计方法,因为它可以在分析中包含协变量,这可以帮助调整辅助变量并增加组间比较的精确度。这些额外的因素或协变量可以通过使用ANCOVA将其纳入研究中。为了确保观察到的组间差异是由研究中的治疗或干预引起的,而不是由无关因素引起的,可以使用ANCOVA来调整协变量对组均值的影响。这可以使组间比较更准确,并给出更可靠的关于变量之间关系的结论。在本文中,我们将仔细研究ANCOVA并在Python中实施。什么是ANCOVA?协方差分析(ANCOVA)方法比较两个或多个组

Linux环境下如何处理.sh文件执行问题?Linux环境下如何处理.sh文件执行问题?Mar 14, 2024 pm 03:36 PM

在Linux环境下,我们经常会遇到需要执行.sh文件的情况。.sh文件是Linux系统中的脚本文件,通常以.sh作为后缀名,用于执行一系列的命令。但有时候我们可能会遇到.sh文件无法执行的问题,这可能是因为权限问题或者编码格式等原因。本文将介绍在Linux环境下如何处理.sh文件执行问题,并提供具体的代码示例。1.添加执行权限在Linux系统中,如果一个.

Python中__str__和__repr__有什么异同点Python中__str__和__repr__有什么异同点Apr 29, 2023 pm 07:58 PM

__str__和__repr__有什么异同?字符串的表示形式我们都知道,Python的内置函数repr()能够把对象用字符串的形式表达出来,方便我们辨认。这就是“字符串表示形式”。repr()就是通过__repr__这个特殊方法来得到一个对象的字符串表示形式的。如果没有实现__repr__,当我们在控制台里打印一个向量的实例时,得到的字符串可能会是。>>>classExample:pass>>>print(str(Example()))>>>

Python内建类型str源码分析Python内建类型str源码分析May 09, 2023 pm 02:16 PM

1Unicode计算机存储的基本单位是字节,由8个比特位组成。由于英文只由26个字母加若干符号组成,因此英文字符可以直接用字节来保存。但是其他语言(例如中日韩等),由于字符众多,不得不使用多个字节来进行编码。随着计算机技术的传播,非拉丁文字符编码技术不断发展,但是仍然存在两个比较大的局限性:不支持多语言:一种语言的编码方案不能用于另外一种语言没有统一标准:例如中文就有GBK、GB2312、GB18030等多种编码标准由于编码方式不统一,开发人员就需要在不同编码之间来回转换,不可避免地会出现很多错

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기