喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

招聘PHP开发人员(北京)

上一主题 下一主题
     
标题: [问题] 问一个正则,关于替换网址的问题?  
 
yuanbo203 (yuanbo203)
注册会员
Rank: 2
初级会员


UID 67778
精华 0
积分 123
帖子 114
金钱 123 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-1-5
状态 离线
[广告]: 代充Paypal帐号美元
问一个正则,关于替换网址的问题?

比如在我的库中读取出一个页面内,页面里有很多链接,现在我想将这些链接先 urlencode  并替换后,在显示出来
如 :

××××××<a href="http://www.xxx.cn/用水计划.doc">点击查看</a> xxxxxxx
现在我想将 www.xxx.cn/用水计划.doc 先用urlencode 并替换后,然后再显示出来?

请问这个正则怎么写?
主要是我在用ereg_replace()时,替换部分应该怎么写,不是很明确 ?

造成这样的主要原因是我的站从win移到了linux
apach2不支持中文中路径,链接会失效

望高人指点
2007-4-25 10:17 AM#1
查看资料  发短消息  顶部
 
yuanbo203 (yuanbo203)
注册会员
Rank: 2
初级会员


UID 67778
精华 0
积分 123
帖子 114
金钱 123 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-1-5
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
哪位帮说说啊?
还没人回答就沉了啊
这可不行
2007-4-25 02:21 PM#2
查看资料  发短消息  顶部
 
sports98 (sports98)
新手上路
Rank: 1
一般会员



UID 8263
精华 0
积分 38
帖子 37
金钱 38 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2001-5-17
状态 离线
[推荐阅读] 承接php,jsp,asp,ajax等项目开发
先回复一下,不知道成不成。问问斑竹吧



<?php

$str 
=' ××××××<a href="http://www.xxx.cn/用水计划1.doc">点击查看</a> xxxxxxx××××××<a href="http://www.xxx.cn/用水计划2.doc">点击查看</a> xxxxxxx××××××<a href="http://www.xxx.cn/用水计划3.doc">点击查看</a> xxxxxxx××××××<a href="http://www.xxx.cn/用水计划4.doc">点击查看</a> xxxxxxx××××××<a href="http://www.xxx.cn/用水计划5.doc">点击查看</a> xxxxxxx××××××<a href="http://www.xxx.cn/用水计划6.doc">点击查看</a> xxxxxxx';
//echo $str;
preg_match_all("/href=\"http://([wd:/.x80-xff]*)\"/",$str,$array);
$str eregi_replace("href=\"http://([0-9a-zA-Z:/.x80-xff]*)\"","href=\"http://%s\"",$str);
foreach(
$array[1] as $key=>$value)
{
    
$s[$key] = urlencode($value);
    
$_s[] = "$s[$key]";
}
$__s join(",",$_s);
eval(
"$vstr = sprintf('".$str."',$__s);");

echo 
"MSG:".$vstr;
?>
唠叨这方面比较强悍些~
2007-4-25 03:01 PM#3
查看资料  访问主页  发短消息  QQ  ICQ 状态  顶部
 
yuanbo203 (yuanbo203)
注册会员
Rank: 2
初级会员


UID 67778
精华 0
积分 123
帖子 114
金钱 123 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-1-5
状态 离线
[推荐阅读] 复选框问题
朋友,谢谢你了,我是才学的正则,你的匹配有些我看不明白
不过调试的时候出现如下错误

Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '/' in /srv/web/test/test.php on line 5

Warning: Invalid argument supplied for foreach() in /srv/web/test/test.php on line 7

Warning: join() [function.join]: Bad arguments. in /srv/web/test/test.php on line 12

Parse error: syntax error, unexpected '=' in /srv/web/test/test.php(13) : eval()'d code on line 1
MSG:
不知道是什么原因
2007-4-25 03:39 PM#4
查看资料  发短消息  顶部
 
yuanbo203 (yuanbo203)
注册会员
Rank: 2
初级会员


UID 67778
精华 0
积分 123
帖子 114
金钱 123 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-1-5
状态 离线
[推荐阅读] 真替火箭担心!
不过我自己写的确在这里出了问题

$result[news_text]=preg_replace($pattern,"urlencode(\\0)",$result[news_text]);
这个"urlencode(\\0)"无法正确执行
居然把原来的链接替换成了:
http://urlencode(www.xxxx.con/source/用水情况.doc)
2007-4-25 03:42 PM#5
查看资料  发短消息  顶部
 
sports98 (sports98)
新手上路
Rank: 1
一般会员



UID 8263
精华 0
积分 38
帖子 37
金钱 38 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2001-5-17
状态 离线
[推荐阅读] 请问可以在phpmyadmin中调整表中属性的顺序吗?
我看了一下,好像是论坛的PHP代码区域把我代码中的反斜杠删除了,我贴张图片,你对比一下看看代码
2007-4-25 04:02 PM#6
查看资料  访问主页  发短消息  QQ  ICQ 状态  顶部
 
sports98 (sports98)
新手上路
Rank: 1
一般会员



UID 8263
精华 0
积分 38
帖子 37
金钱 38 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2001-5-17
状态 离线
[推荐阅读] 表查询问题
我代码的图片

你看一下,和上面对比一下

 附件: 您所在的用户组无法下载或查看附件
2007-4-25 04:14 PM#7
查看资料  访问主页  发短消息  QQ  ICQ 状态  顶部
 
yuanbo203 (yuanbo203)
注册会员
Rank: 2
初级会员


UID 67778
精华 0
积分 123
帖子 114
金钱 123 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-1-5
状态 离线
[推荐阅读] 刚刚捡到钱了
谢谢你
真的很感谢
已经行了,不过在编码后,还要对斜杆进行替换,地址才能正常使用
你的实现算法,很巧妙,很值得学习

不过你的正则我还没完全弄懂,呵呵

谢谢你
2007-4-26 04:10 PM#8
查看资料  发短消息  顶部
 
era
高级会员
Rank: 4


UID 84851
精华 0
积分 567
帖子 749
金钱 567 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2006-12-15
状态 离线
[推荐阅读] PHP+MYSQL不能写入数据,求高手看看!
提供超级混乱超低效率双重回调嵌套代码一句,呵呵

$str = preg_replace("/(<a\s+href=)(\"|'|)(.+?)(?:\\2)((?:\s|>))/ies",
                                        "\"\\1\\2\".
                                        preg_replace(\"/([^:\/\w\d\.]+)/ie\",\"urlencode('\\\$1')\",\"\\3\").
                                        \"\\2\\4\"",$str);




怀念我的家乡-火星
2007-4-26 06:03 PM#9
查看资料  发短消息  顶部
 
yuanbo203 (yuanbo203)
注册会员
Rank: 2
初级会员


UID 67778
精华 0
积分 123
帖子 114
金钱 123 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-1-5
状态 离线
[推荐阅读] Web软件开发工程师(PHP+MySQL)(猎头职位)
朋友,你的这个能执行吗?

preg_replace(\"/([^:\/\w\d\.]+)/ie\",\"urlencode('\\\$1')\",\"\\3\").
我上面也写了一个你这样的,怎么无法执行啊?
2007-4-27 04:16 PM#10
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.031170 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP