我这样保存用户网址

王志勇 发表于 2009年03月18日 11:25

例如用户发送的网址是http://www.auiou.com/,将它转化为www.auiou.com,去掉http://,以及最后的/。以PHP为例,可以这样做:

<?$url=stripslashes($_POST["url"]);
$j=str_replace("/", "", $url);
$i=strlen($url);
if ($i-strlen($j)==3 && substr($url, $i-1)=="/") $url=substr($url, 0, $i-1);
if (strtolower(substr($url, 0, 7))=="http://") $url=substr($url, 7);?>

运行结果:

  1. 如果$url为http://www.auiou.com/,或者http://www.auiou.com,或者www.auiou.com,运行结果都是www.auiou.com。
  2. 如果$url为http://www.auiou.com/abc,运行结果是www.auiou.com/abc。
  3. 如果$url为http://www.auiou.com/abc/,运行结果是www.auiou.com/abc/。

说明:

  1. 第2行的$j变量,将"/"全部替换删除掉,第4行的strlen($j),可以统计出删除"/"后,如果strlen($url)与strlen($j)正好相差3个"/",并且网址的最后是以"/"结尾,则去掉http://www.auiou.com/最后的一个斜杠。
  2. 最后一行,去掉http://这7个字符。
  3. 如果用户的网址是https://的形式,将不做任何替换。
  4. 如果是如http://www.auiou.com/blog或http://www.auiou.com/blog/的形式,只去掉http://这7个字符。

5条评论:
1   Goberl 2009-03-21 08:38
很规范啊,学习了。
2   幻想曲 2009-03-22 12:55
用Parse_url可能会更好一点。
<?php
$urls=array("http://www.aaa.com/","http://www.auiou.com","http://www.auiou.com/abc/");
foreach($urls as $item)
{
$array = parse_url($item);
$url = $array['host'];
if($array['path']!="/") $url.=$array['path'];
echo $url.'<br />';
}
?>
输出:
www.aaa.com
www.auiou.com
www.auiou.com/abc/
3   自由勇 2009-03-22 13:39
谢谢!很好。:)
<?$url="http://www.auiou.com/abc/";
$ur2=parse_url($url);
$ur3=$ur2['host'];
$ur4=$ur2['path'];
if ($ur4!="/") $ur3.=$ur4;?>
<?=$ur3?>

同样的输出结果:
www.aaa.com
www.auiou.com
www.auiou.com/abc/

4   自由勇 2009-03-22 13:57
有query的网址:
<?$url="http://www.auiou.com/abc/?id=450";
$ur2=parse_url($url);
$ur3=$ur2['host'];
$ur4=$ur2['path'];
$ur5=$ur2['query'];
if ($ur4!="/") $ur3.=$ur4;
if ($ur5) $ur3.="?".$ur5;?>
<?=$ur3?>

输出结果:
www.auiou.com/abc/?id=450

5   自由勇 2009-10-12 21:54
Trackback来自 《博客防spam/陌生人恶意留言另一方案

这里在$url左右两边各加了一个“|”的符号,就可以准确判断。其它列表的建立和判断方法,都是一样的。

发表评论:
名字: (*必填)
博客: (可省,仅限于Blog地址)
验证码: p48u58r68e78 (*必填)

正文:

  记住信息?

直接发送Trackback到此文章

说明:本评论系统不支持HTML代码。(您的留言需要审核,审核规则请见这里。)

文章分类 Category:
真相与UFO Truth and UFO
编程 Program
PHP
Blog的发展 Development
为什么写博客 W-do we Blog
互联网 Internet
BBS社区研究 Community
QQ研究 QQ Research

置顶的文章:
程序开发的门槛儿
为什么不能夸孩子调皮?
我的3种博客写作方法
最大的公益事业是UFO
再谈四维空间
开发文档和程序注释
Arsue Blog程序的扩展
独立微博开发之设想

近期的主题:
2017.7第2篇
auiou.com今天换上了KVM
CentOS, Debian, Ubuntu三种VPS系统的LAMP属性小结
Debian 6.0和Ubuntu 14.04新装机的参数记录
Linux VPS的速度优化
Nginx与.htaccess
CentOS 6新装机的参数记录
auiou.com的VPS的内存占用测试
2016年8月第一帖
不喜欢锻炼身体的朋友
看《第五空间》
看《爱情公寓》的一点感想
生命的意义在于每一天都是人生的开始
安卓机顶盒收到小记
人生中最可怕的事情是拖延
不能贪吃/不能贪喝/不能贪凉
“世面”和人生意义
计划推出一个重要的“网络存档”(网络记事本)快速小程序
最近几个月博客更新减缓的原因
汽车越来越多
编写完成了清爽的贴吧浏览程序/贴吧占用内存测试
猫/无线路由器/瑞银无线网卡 最简单有效的散热方法
最近录制的歌
家用无线路由器选购的一些建议
网络电视机顶盒选购的一些建议
无线路由器当作无线交换机实例
2013-08-08:人生的意义&谨言慎行
怎样对治重症的拖沓的毛病?
磊科NW336无线网卡使用感受
腾达311R无线路由器频繁掉线解决一例(其它品牌和型号可能也适用)
网络电视杰科T1使用感受(杰科T1/T2/T3怎么样?)
人为什么会无聊?无聊的时候该做什么?
2013-07-14:看不见的全息摄像机
想法:2013-07-12
有趣的植物3:景天科多肉植物
有趣的植物2:米邦塔食用仙人掌
最有趣的植物
想法:2013-06-30
好好地修心
中国现代和未来的黑人问题/广州黑人
KVM主机竟然死机
想法:2013-06-13
行人的过错
为什么不能夸孩子调皮?/怎样教出一个好孩子?
打招呼的一瞬间
欢迎哥们儿们加我的QQ
好心一定会有好报
拜金女的下场都是不好的
最近很忙,写作的思路断了
狂做好事,消除烦恼
最大的公益事业是UFO/怎样做UFO研究?
  

王志勇:程序设计者。
1980-09-26 (37周岁)

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏 | Arsue官方Blog
Gratitude | Time | Auciou
matnue | aucist | Taimt | Caimt | ac315 | Arsue | IC Search | TDNote | HKANS | aroat | Vaimt Panel | txfor | 网树 | cdfor | aufirm | Emxel | ixnes | AnyDiary | Tuarm | Tovate | Urtal | coumit | cersta | tratom54.234.190.237 2018-01-18_04:56

Blog存档 Archives

2013年08月(9)
2013年07月(6)
2013年06月(7)
2013年05月(22)
2013年04月(17)
2013年03月(20)
2013年02月(21)
2013年01月(6)
2012年12月(3)
2012年08月(8)
2012年07月(4)
2012年06月(4)
2012年05月(6)
2012年04月(13)
2012年03月(11)
2012年01月(7)
2011年10月(8)
2011年09月(4)
2011年08月(2)
2011年06月(2)
2011年05月(6)
2011年04月(10)
2011年03月(16)
2011年02月(16)
2011年01月(15)
2010年12月(12)
2010年11月(9)
2010年10月(3)
2010年05月(4)
2010年01月(7)
2009年12月(10)
2009年11月(4)
2009年10月(8)
2009年09月(24)
2009年08月(20)
2009年07月(6)
2009年06月(11)
2009年05月(16)
2009年04月(20)
2009年03月(29)
2009年02月(18)
2009年01月(15)
2008年12月(17)
2008年11月(10)
2008年10月(13)
2008年09月(8)
2008年08月(4)
2008年07月(5)
2008年06月(9)
2008年05月(12)
2008年04月(15)
2008年03月(26)
2008年02月(22)
2008年01月(29)
2007年12月(30)
2007年11月(28)
2007年10月(30)
2007年09月(8)
2007年08月(8)
2007年07月(21)
2007年06月(23)
2007年05月(31)
2007年04月(34)
2007年03月(29)
2007年02月(18)
2007年01月(41)
2006年12月(23)
2006年11月(10)
2006年10月(10)
2006年09月(29)
2006年08月(33)
2006年07月(17)
2006年06月(30)
2006年05月(4)
2006年01月(3)
2005年09月(4)


Copyright © 2006-2018 auiou.com All rights reserved.
此Blog程序由王志勇编写 已经发布在Arsue