书签 分享 收藏 举报 版权申诉 / 13

类型php关于反斜杠转义字符.docx

  • 文档编号:17126043
  • 上传时间:2023-07-22
  • 格式:DOCX
  • 页数:13
  • 大小:20.63KB
";

    echo "";

  }

总体觉得比较烦,而我又不是一个语言表达能力强的人.

如果看出大概的意思,我再帖下一个页面:

upload_image2.php.

【 在 neogeo 的大作中提到:

 】

:

 呵呵

:

 贴几个关键代码介绍介绍?

方便大家学习,也好增强精华区。

:

 呵呵,(斑竹马甲)

:

 【 在 mud (你看不到我中......) 的大作中提到:

 】

neogeo (被率领的40个马甲之一,幸好未掉队) 于Tue Aug  5 15:

51:

13 2003)

提到:

嗯,看懂了。

现在提交图片还得用户自己动手,还不如直接构造表单后直接提交,用户看不出来,

就发现图片已经上去了。

不过这样如果文件不存在又有点麻烦。

呵呵,想法不错,思路也很清晰。

代码风格和我有点像,呵呵,看着亲切。

有几点建议,大家探讨:

1) if(count($matches)>0)

    ....

    for($i=0;$i

    这几句不如改成:

    $count = count($matches);

    if($count > 0)

    ....

    for($i=0;$i<$count;$i++)

    这样 count() 函数只执行一遍,原来要执行 count($matches)+1 遍

2) echo "";

    这样还不如写成:

    echo '';

    一方面,用 "" 括起来的php解析的时候要扫描整个字符串一遍,有没有要替换的

    php变量。

    如 

    $temp = 'yy';

    echo "xx $temp xx";

    输出是 xx yy xx

    而

    echo 'xx $temp xx';

    输出时 xx $temp xx

    速度肯定下面那个快(如果不需要替换)

    另一方面,要 \" 转义成 " 也有速度消耗,而且更严重的是看起来不爽。

    呵呵,我是这么认为的。

嗯,继续贴。

大家也一起参与啊~!

探讨一个问题的解决对自己帮助很大的。

【 在 mud (你看不到我中......) 的大作中提到:

 】

:

 代码太丑了,大家见谅:

:

  // $canon_content是用户提交的html源代码

:

   $canon_content = stripslashes($canon_content);

:

   $p_arr = array();

:

   $r_arr = array();

:

   // 构造pattern,匹配的xxx部分,对于xxx部分有一个限制就是屏蔽..

:

 http和ftp开头的,这样做的用意是如果改文件是引用的网上的图片文件,那么就没有必..

:

 醒用户上传.

:

   $pattern = "/]*src=\"((?

!

(http|ftp|\.|\/)).*?

)\"/i";

:

   // 找到这些src的值

:

   preg_match_all($pattern, $canon_content, $matches, PREG_SET_ORDER);

:

   // 如果的确能够找到(考虑用户可能没有提交图片,那么count(...)返回0

:

   if(count($matches)>0)

:

   {

:

     // 输出添加图片的表单.因为php并不能访问本地文件系统,所以还是需要使用input-

:

 file控件的.

:

     echo "添加图片!

";

:

     echo "

:

 data\">";

:

     echo "

";

:

 (以下引言省略 ... ...)

mud (你看不到我中......) 于Tue Aug  5 17:

17:

17 2003)

提到:

hehe, 没想到;)

count(...)的问题我的确考虑过,而且以前也是如你的做法.

但是后来仅限于C++了.因为我觉得代码执行时间和网络传输时间比起来实在是九牛一毛.

写成count(...)直观,嘿嘿.一眼就看出是$matches的count

echo 的问题,谢谢提醒,我向来在php中字符串都是用"而非',字符用',是C++留下来的后遗

症.下次知道了.其实我一般

值有空格

【 在 neogeo 的大作中提到:

 】

:

 嗯,看懂了。

:

 现在提交图片还得用户自己动手,还不如直接构造表单后直接提交,用户看不出来,

:

 就发现图片已经上去了。

:

 不过这样如果文件不存在又有点麻烦。

:

 呵呵,想法不错,思路也很清晰。

:

 代码风格和我有点像,呵呵,看着亲切。

:

 有几点建议,大家探讨:

:

 1) if(count($matches)>0)

:

     ....

:

     for($i=0;$i

:

     这几句不如改成:

:

     $count = count($matches);

:

     if($count > 0)

:

     ....

:

     for($i=0;$i<$count;$i++)

:

     这样 count() 函数只执行一遍,原来要执行 count($matches)+1 遍

:

 2) echo "";

:

     这样还不如写成:

:

     echo '';

:

     一方面,用 "" 括起来的php解析的时候要扫描整个字符串一遍,有没有要替换的

:

 (以下引言省略...)

mud (你看不到我中......) 于Tue Aug  5 17:

28:

38 2003)

提到:

upload_image.php

上一个文件我删掉了一些代码,其中有一个输出hidden域(name=id,表示数据库中对应记录

的id)

用户的源代码不能直接存在数据库中,需要把所有img src类似于C:

\xxx的替换成服务器的

路径.

该文件的功能就是 上传图片+修改canon_content + 填写数据库中的canon_content值

刚才颤颤巍巍加了好多注释,生怕看不懂.现在不加太多了.

include("../global.inc.php");

$canon_content = stripslashes($canon_content);

$pattern = array();

$replace = array();

// 这个方法不错,对于这种情况,以及购物车修改多个商品的数量(但是不知道有多少商品

)等等情况很有用处.

// 遍历所有POST变量,取出名字符合我的要求的那些变量使用.

foreach($_POST as $key=>$value)

{

           // 这就是要求,要求变量名以oimg开头,意思是old_image_path,即值C:

\xxx对

应的名字

if(strncmp($key, "oimg", 4)!

=0)

           // upload_file函数见下面

$newfilename = upload_file($cfg['canon_images_upload_dir'], "nimg".$i);

}

echo "


";

$canon_content = preg_replace($pattern, $replace, $canon_content);

echo $canon_content;

$sql = "update canon set canon_content='$canon_content' where canon_id=$id";

sql_connect();

mysql_query($sql);

echo "成功";

?

>

// $file并不是文件名称,在中即为"photo"

function upload_file($upload_dir, $file)

{

rtrim($upload_dir, "/\\");

           // 原则上文件名不变,但是对于重名,我是在文件名后加数字,

           //  即:

 如果有a.jpg,那么下一个上传的a.jpg变为a1.jpg,再下面为a2.jpg.

..

while(file_exists($newfile))

          // 仅仅返回文件名,不带目录

return substr($newfile, strrpos($newfile, "/")+1);

}

【 在 mud 的大作中提到:

 】

:

 hehe, 没想到;)

:

 count(...)的问题我的确考虑过,而且以前也是如你的做法.

:

 但是后来仅限于C++了.因为我觉得代码执行时间和网络传输时间比起来实在是九牛一..

:

 写成count(...)直观,嘿嘿.一眼就看出是$matches的count

:

 

:

 echo 的问题,谢谢提醒,我向来在php中字符串都是用"而非',字符用',是C++留下来的..

:

 症.下次知道了.其实我一般

:

 值有空格

:

 【 在 neogeo 的大作中提到:

 】

:

 (以下引言省略...)

yuelinniao (率领四十个马甲游水库 于Tue Aug  5 17:

37:

09 2003)

提到:

嗯。

其实 

.....

提交后就是 array $_POST['oimg']

$_POST['oimg'][0]

$_POST['oimg'][1]

$_POST['oimg'][2]

$_POST['oimg'][3]

.....

你那样处理也很好。

呵呵。

原来是VC版斑竹,失敬失敬~

这个合集多好啊~!

呵呵

【 在 mud (你看不到我中......) 的大作中提到:

 】

:

 upload_image.php

:

 上一个文件我删掉了一些代码,其中有一个输出hidden域(name=id,表示数据库中对应记录

:

 的id)

:

 用户的源代码不能直接存在数据库中,需要把所有img src类似于C:

\xxx的替换成服务器的

:

 路径.

:

 该文件的功能就是 上传图片+修改canon_content + 填写数据库中的canon_content值

:

 

:

 刚才颤颤巍巍加了好多注释,生怕看不懂.现在不加太多了.

:

 

:

 include("../global.inc.php");

:

 $canon_content = stripslashes($canon_content);

:

 $pattern = array();

:

 $replace = array();

:

 // 这个方法不错,对于这种情况,以及购物车修改多个商品的数量(但是不知道有多少商品

:

 )等等情况很有用处.

:

 // 遍历所有POST变量,取出名字符合我的要求的那些变量使用.

:

 foreach($_POST as $key=>$value)

:

 {

:

            // 这就是要求,要求变量名以oimg开头,意思是old_image_path,即值C:

\x..

:

 应的名字

:

 (以下引言省略 ... ...)

mud (你看不到我中......) 于Tue Aug  5 21:

49:

02 2003)

提到:

也可以这样,

但是如果考虑购物车更新商品数量时用我那种方法更好一些.

数组我一般是在multiple select才用

【 在 yuelinniao 的大作中提到:

 】

:

 嗯。

:

 其实 

:

 

:

 

  

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
php 关于 斜杠 转义 字符
提示  冰点文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:php关于反斜杠转义字符.docx
链接地址:https://www.bingdoc.com/p-17126043.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2


收起
展开