str_replace函数问题,搞不懂,急!who can help me?

远方 2006-01-03 12:29:42
<!-- html.php页面 -->

//方案1
<?

function trans_trim($string) {

$string=trim($string);
$string=htmlspecialchars($string);

$string=str_replace(chr(10),"<br>",$string);
$string=str_replace(chr(32)," ",$string);

$string=str_replace("[img]","<img src= ",$string);
$string=str_replace("[/img]",">",$string);
return $string;
}
?>

//方案2

function trans_trim($string)
{

$string=trim($string);
$string=htmlspecialchars($string);

$string=str_replace("[img]","<img src= ",$string);
$string=str_replace("[/img]",">",$string);

$string=str_replace(chr(10),"<br>",$string);
$string=str_replace(chr(32)," ",$string);

return $string;
}
?>

<!-- UBB.php页面 -->

<?php
include('html.php');
?>

<?

$nr="[img [/img] 我爱ASP,我也爱PHP,我更愿意学ASP.net,希望我能与你成为好朋友,共同研究WEB,QQ:283493494。谢谢! ";

echo "<p>".trans_trim($nr)."<p>";

?>


问题

:以上 html.php中的两个方案一样吗?

A.不一样 B.一样

如果你是高手,高高手或者专家也管!,请选择(单选题)

选 A/B 都请你 说明你的原因,好吗? 谢谢!

我已经调试了,希望你也调试一下 我的配置:PHP5.0+MSSQL+IIS5.1 基于 WINDOWS平台
...全文
147 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
-神仙- 2006-01-07
  • 打赏
  • 举报
回复
又被唠叨抢先了
远方 2006-01-07
  • 打赏
  • 举报
回复

写漏了,呵呵,谢谢各位参与讨论!
xuzuning 2006-01-04
  • 打赏
  • 举报
回复
1、你的示例“$nr="[img [/img] 我爱ASP,我也爱PHP,我更愿意学ASP.net,希望我能与你成为好朋友,共同研究WEB,QQ:283493494。谢谢! ";”
是错的其中的[img不会被任何规则替换掉!

2、$string=str_replace(chr(32)," ",$string);的意义是什么?
chr(32)就是半角空格,把空格替换成空格的意义何在?

3、如果是$string=str_replace(chr(32)," ",$string);
那么这句应该最先执行,否则html标记中的空格也将被替换掉,标记就无效了
qdsxm 2006-01-04
  • 打赏
  • 举报
回复
$string=str_replace(chr(10),"<br/>",$string);
$string=str_replace(chr(32)," ",$string);

如果放在上面两行的上面,那么<br/>中的">"就被替换掉了,剩下的就只有<br/了,再执行上面两行就不起作用了,HTML代码就会有错,显示就不正常
Fibona 2006-01-03
  • 打赏
  • 举报
回复
两种结果应该是一样的,我用的是你一样的环境,我也试了,结果一样的
<p><img src= > 我爱ASP,我也爱PHP,我更愿意学ASP.net,希望我能与你成为好朋友,共同研究WEB,QQ:283493494。谢谢!<p>
<p><img src= > 我爱ASP,我也爱PHP,我更愿意学ASP.net,希望我能与你成为好朋友,共同研究WEB,QQ:283493494。谢谢!<p>

这是两次替换后的结果


$string=str_replace("[img]","<img src= ",$string);这里的img的src=后面不要求有空格

远方 2006-01-03
  • 打赏
  • 举报
回复
[red]你好!这里是CSDN![/red]

$string=str_replace(chr(10),"<br>",$string);
$string=str_replace(chr(32)," ",$string);

$string=str_replace("[img]","<img src= ",$string);
$string=str_replace("[/img]",">",$string);

$string=str_replace("[red]","<font color=red> ",$string);
$string=str_replace("[/red]","</font>",$string);


你好!这里是CSDN!字就会变成 红色 的

把你定义的 UBB代码 放在


$string=str_replace(chr(10),"<br>",$string);
$string=str_replace(chr(32)," ",$string);

它的下面 就可以反之就不可以

什么原因 谁能帮我 谢谢了!
远方 2006-01-03
  • 打赏
  • 举报
回复
不一样

//方案2 不能输出图片 而是什么都没有

$string=str_replace(chr(10),"<br>",$string);
$string=str_replace(chr(32)," ",$string);

除了 头部 中间内容 的 什么空格啊 换行的 也的给它 输出来



zalvsa 2006-01-03
  • 打赏
  • 举报
回复
请问为何要用
$string=str_replace(chr(10),"<br>",$string);
$string=str_replace(chr(32)," ",$string);
我测试了下chr(10)也是空格值吧。
如果纯是替换[img],[/img]的话两个方案完全是一样的。因为序数的替换不会影响到你的[img]及[/img]的字符。

21,891

社区成员

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

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