[求助]PHP中用正则替换文本

yun_feiyang 2012-09-07 04:14:40
现在页面中有一段文字如下:
------------------------------
测试文本A
[code=H]aa622ea28638f1e2f9ebc1c845499ed3[/code]
测试文本B
[code=H]D0C93D1FAC0843A993431688BD6AFD10[/code]
测试文本C
[code=H]0F3D2A4C5BCA48F0B9E8E4564DEFB127[/code]
-------------------------------
如上,php中如何用正则找到上面“以[code=H]开头和[/code]结尾”的文本,并替换成另外一段文本。
小弟是php新手,谢谢大侠了。
...全文
123 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2012-09-08
  • 打赏
  • 举报
回复
$s =<<< TXT
测试文本A
[code=H]aa622ea28638f1e2f9ebc1c845499ed3

测试文本B
[code=H]D0C93D1FAC0843A993431688BD6AFD10[/code]
测试文本C
[code=H]0F3D2A4C5BCA48F0B9E8E4564DEFB127[/code]
TXT;

$target = array('asad', 'dsdf', '4323');

echo preg_replace('/\[code=H]\(.*?)\[\/code\]/se','array_shift($target)',$s);
[/code]

测试文本A
asad
测试文本B
dsdf
测试文本C
4323
yun_feiyang 2012-09-08
  • 打赏
  • 举报
回复
我php不太懂就是类似这种
---------------
function GetText($str)
{
$path = "C:\";
$text = readFiles($path.$str.txt);

return $text;
}
----------------
一起混吧 2012-09-08
  • 打赏
  • 举报
回复
aa622ea28638f1e2f9ebc1c845499ed3 -- 返回 abc
这个函数要怎么写啊?

还不如就替换成中间的文本
yun_feiyang 2012-09-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

abc def 从哪里来的?
[/Quote]

abc def 是我想最终显示的文本,就是调用一个php函数,把"aa622ea28638f1e2f9ebc1c845499ed3"这段文本传进去,返回"abc".
一起混吧 2012-09-07
  • 打赏
  • 举报
回复
abc def 从哪里来的?
yun_feiyang 2012-09-07
  • 打赏
  • 举报
回复
最后的效果类似这种
--------------
测试文本A
abc
测试文本B
def
测试文本C
hjk
--------------
yun_feiyang 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

哦,怎么乱了
$s=<<<txt
测试文本A
[code=H]aa622ea28638f1e2f9ebc1c845499ed3[/code]
测试文本B
[code=H]D0C93D1FAC0843A993431688BD6AFD10[/code]
测试文本C
[code=H]0F3D2A4C5BCA48F0B9E8E4564DEFB127[/code]
txt;
echo ……
[/Quote]
不对啊,我这边执行,正则不对,替换完之后,原来的文本要保留啊,每部分的替换文本要不同的文本。
一起混吧 2012-09-07
  • 打赏
  • 举报
回复
哦,怎么乱了
$s=<<<txt
测试文本A
[code=H]aa622ea28638f1e2f9ebc1c845499ed3[/code]
测试文本B
[code=H]D0C93D1FAC0843A993431688BD6AFD10[/code]
测试文本C
[code=H]0F3D2A4C5BCA48F0B9E8E4564DEFB127[/code]
txt;
echo preg_replace('/\[code=H]\(.*?)\[\/code\]/s','',$s);
一起混吧 2012-09-07
  • 打赏
  • 举报
回复
$s=<<<txt
测试文本A
[code=H]aa622ea28638f1e2f9ebc1c845499ed3

测试文本B
[code=H]D0C93D1FAC0843A993431688BD6AFD10[/code]
测试文本C
[code=H]0F3D2A4C5BCA48F0B9E8E4564DEFB127[/code]
txt;
echo preg_replace('/\[code=H]\(.*?)\[\/code\]/s','',$s);[/code]
测试文本A

测试文本B

测试文本C
yun_feiyang 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

另外一段文本 是什么样的?
[/Quote]

随便什么文本都行
一起混吧 2012-09-07
  • 打赏
  • 举报
回复
另外一段文本 是什么样的?
gezuowei 2012-09-07
  • 打赏
  • 举报
回复
$match ="@^\[code=H]\(.*?)\[/code\]@";
$result_arr = array();
if(preg_match_all($match, $str, $result_arr)){
print_r($result_arr);
}

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧