求教 替换指定标签内代码 类似于BBCODE
时间:2011-12-21
来源:互联网
$GetDatas 数据 =
PHPCode 部分A
[PHPCode]
$word = "PHPCode 部分A";
[/PHPCODE]
PHPCode 部分B
[PHPCode]
$word = "PHPCode 部分B";
[/PHPCODE]
PHPCode 部分C
[PHPCode]
$word = "PHPCode 部分C";
[/PHPCODE]
运行结果 =
PHPCode 部分A
$word = "PHPCode 部分A";
$word = "PHPCode 部分B";
$word = "PHPCode 部分C";
PHPCode 部分B
PHPCode 部分C
PHP code
Notice: Undefined offset: 1 in D:\..php on line 115
Notice: Undefined offset: 2 in D:\..php on line 115
Notice: Undefined offset: 3 in D:\..php on line 115
PHPCode 部分A
[PHPCode]
$word = "PHPCode 部分A";
[/PHPCODE]
PHPCode 部分B
[PHPCode]
$word = "PHPCode 部分B";
[/PHPCODE]
PHPCode 部分C
[PHPCode]
$word = "PHPCode 部分C";
[/PHPCODE]
运行结果 =
PHPCode 部分A
$word = "PHPCode 部分A";
$word = "PHPCode 部分B";
$word = "PHPCode 部分C";
PHPCode 部分B
PHPCode 部分C
PHP code
public static function PHPCodeShow($content, $widget) { $GetDatas = $widget->text; $GetDatas = htmlspecialchars($GetDatas); $GetDatas = nl2br($GetDatas); $PHPCodeTag = "|\[PHPCode\](.*?)\[\/PHPCode\]|ius"; $PHPCodeShow = ''; if (preg_match_all($PHPCodeTag, $GetDatas, $PHPCode)) { for ($num = 0; $num < count($PHPCode[0]); $num++) { $PHPCodeShow .= $PHPCode[1][$num]; } $PHPCodeOutPut = ''; $P = array($PHPCodeShow); $split = preg_split($PHPCodeTag,$GetDatas); for($i = 0; $i < count($split); $i++) { $PHPCodeOutPut .= $split[$i].$P[$i]; //出错行 } echo $PHPCodeOutPut; }
Notice: Undefined offset: 1 in D:\..php on line 115
Notice: Undefined offset: 2 in D:\..php on line 115
Notice: Undefined offset: 3 in D:\..php on line 115
作者: simpc 发布时间: 2011-12-21
$PHPCodeShow .= $PHPCode[1][$num];
$P = array($PHPCodeShow);
for($i = 0; $i < count($split); $i++)
{
$PHPCodeOutPut .= $split[$i].$P[$i]; //出错行
}
$PHPCodeShow 是一个串
所以 $P 是一个只有一个元素的一维数组,下标只有 0
但是 $split 可能有多个元素,也就是 $i 可能大于 0
$P[$i] 你用不存在的下标取值,当然是要报错的。
虽然可以通过屏蔽 Notice 级别错误的检查来回避出错信息的出现,但你的程序是不健壮的
$P = array($PHPCodeShow);
for($i = 0; $i < count($split); $i++)
{
$PHPCodeOutPut .= $split[$i].$P[$i]; //出错行
}
$PHPCodeShow 是一个串
所以 $P 是一个只有一个元素的一维数组,下标只有 0
但是 $split 可能有多个元素,也就是 $i 可能大于 0
$P[$i] 你用不存在的下标取值,当然是要报错的。
虽然可以通过屏蔽 Notice 级别错误的检查来回避出错信息的出现,但你的程序是不健壮的
作者: xuzuning 发布时间: 2011-12-21
运行结果也不对
期望值是
PHPCode 部分A
$word = "PHPCode 部分A";
PHPCode 部分B
$word = "PHPCode 部分B";
PHPCode 部分C
$word = "PHPCode 部分C";
期望值是
PHPCode 部分A
$word = "PHPCode 部分A";
PHPCode 部分B
$word = "PHPCode 部分B";
PHPCode 部分C
$word = "PHPCode 部分C";
作者: simpc 发布时间: 2011-12-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28