手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2024年11月的文章

PHP获取当前网址/替换网址query中的值

这是一篇来自虫少侠的文章,事实上我也写过类似的。不过我当初是用在模版里,写在模版里为smarty中的。。。用法大致为{$url|urlreplace:"abc=def"},也就是把url里abc的键值换为Def,这样就避免在参数过多的时候,我一一输入了。。适合用在搜索后,一些Tag标签的切换等。。。。

下面就是虫少侠的内容了:

项目中用到的两个函数,自己写了下,放这做为备份吧。

一是PHP获取当前页面的网址:

PHP代码
  1. //获得当前的脚本网址【我稍整理了一下。。。鄙视不整理代码的人】  
  2. function GetCurUrl(){  
  3.     if(!emptyempty($_SERVER["REQUEST_URI"])){  
  4.         $scriptName = $_SERVER["REQUEST_URI"];  
  5.         $nowurl = $scriptName;  
  6.     }else{  
  7.         $scriptName = $_SERVER["PHP_SELF"];  
  8.         if(emptyempty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName;  
  9.         else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];  
  10.     }  
  11.     return $nowurl;  
  12. }  

另一个是PHP替换网址中query部分的某变量的值比如 ,我们要设$url中的key=321;

其实有几种情况:

$url=’www.sina.com/a.php?key=330′;

或$url=’www.sina.com/a.php;

或$url=’www.sina.com/a.php?cat=2′;

等等。虽然情况很多,但PHP处理起来非常简单,如下:

PHP代码
  1. /* 将URL中的某参数设为某值*/ //【这一段就挺好啊】  
  2. function url_set_value($url,$key,$value)  
  3. {  
  4.     $a=explode('?',$url);  
  5.     $url_f=$a[0];  
  6.     $query=$a[1];  
  7.     parse_str($query,$arr);  
  8.     $arr[$key]=$value;  
  9.     return $url_f.'?'.http_build_query($arr);  
  10. }  

原文来自:http://roln.cn/2009/07/30/lamp/some-php-url-function/

不过我的替换是这样写的。。当然也很烂 。。

PHP代码
  1. <?php  
  2. /** 
  3.  *使用例程:可用于分页类或页面中的替换等 
  4.     $url = "add_jd.php?pid=4&tb=gm_jd&page=1"; 
  5.     echo( "原始的URL:" . $url ); 
  6.     echo( '<br/>' ); 
  7.     echo( "字符串参数:" . url::replace( $url , "pid=10,page=2") ); 
  8.     echo( '<br/>' ); 
  9.     echo( "数组型参数:" . url::replace( $url , array('pid'=>10,'page'=>5)) ); 
  10.     //echo( urlReplace( $url , array('pid'=>10,'page'=>5)) ); 
  11. */  
  12. /** 
  13.  * url replace 
  14.  * @param string $url 需要替换的URL字符串,一般为aaa.php?abc=def,也可以带上路径,象http://xxx.com/abc/def.php?aa=bb 
  15.  * @param mixed $options 需要替换的变量,可以是字符串或数组,如果是字符串,格式为"aa=bb,cc=dd",有多个,用","隔开 
  16.  * @return string $url 替换后的URL 
  17.  */  
  18. class url   
  19. {  
  20.     static function replace ( $url , $options)  
  21.     {  
  22.         $options = self::optInit( $options );  
  23.         $Query = parse_url$url , PHP_URL_QUERY );  
  24.         if($Query){  
  25.             parse_str$Query , $GET );  
  26.             if ( $GET ){  
  27.                 //foreach ( $GET as $_k => $_v ){  
  28.                 //  //if( array_key_exists( $_k , $options)){  
  29.                 //      $GET[$_k] = $options[$_k];  
  30.                 //  //}  
  31.                 //}  
  32.                 $GET = array_merge($GET,$options);  
  33.             }  
  34.             return str_replace$Query , http_build_query( $GET ), $url );            
  35.         }  
  36.         if( !$Query && $options ){  
  37.             return $url . "?" . http_build_query($options);  
  38.         }  
  39.         return $url;  
  40.     }  
  41.   
  42.     static private function optInit ( $options )  
  43.     {  
  44.         ifis_string$options )){  
  45.             $optlists = Power::Normalize( $options );  
  46.             foreach$optlists as $val){  
  47.                 list($tmpKey,$tmpVal) = Power::Normalize( $val , "=");  
  48.                 $opts[$tmpKey] = $tmpVal;  
  49.             }  
  50.         }else{  
  51.             $opts = $options;  
  52.         }  
  53.         //unset( $options );  
  54.         return $opts;  
  55.     }  
  56. }  
......虽然考虑了一些东西,但也仅仅是个很一般的解决方法

 

Tags: parse_str, parse_url

一点点的小意外

或许有朋友已经发现了。从上个月的21日左右,我的RSS就不再输出了?其实不是这样的,如果你订阅的是feed.neatcn.com的RSS,那是真的没有输出了

原因在于,上个月的时候,迁移机房 ,在更换DNS解析的时候。刷刷刷的就全部删除了。而忘了我的feed.neatcn.com是指到feedsky的。所以,凡是用这个域名订阅的朋友都收不到俺的RSS输出啦。。

不过http://www.feedsky.com/neatcn/还是可以正常访问的,本来我还不知道。今天yhustc告诉我不能访问,我才想起来。。。于是立马去DNS解析那里添加了feed.neatcn.com的解析。。

不好意思了各位。。疏忽疏忽。虽然我上面原创的东西也不咋地。。。

感谢你们的订阅

明年的粪斗目标

粪斗目标总还是需要的。年终总结也应该是要有的。否则人就没有进步了。。

今年的目标除了手机换了啥都没有实现,手机是换成HTC的G2了。使用下来感觉还行,基本达到了我的理想状态【可惜不会java,无法为其做开发。think in java买是买了,可惜翻到现在都没有翻超过100页。。。】

明年也有一些粪斗目标啦。。
1、MBP 13或者15,既可以用来IB又能用来开发,当然itunes听说比windows的要好
2、iPod Touch,不过因为有iPod Classic,估计被允许的机会较小
3、迷你电脑,比较想的还是这个,lifebook之类的,也是在考虑之内,可惜不便宜啊。。

不一定能实现的才能被用来当作粪斗目标。所以上面就是我明年在电子产品方面的目标。
努力啊。

恐怖的图片程序 。。。

在网上看到介绍说Lifebox是一套快速,轻量级采用php/MySQL开发的照片与视频管理系统。设计用于管理大数据量多 媒体文件。支持直接在系统中播放视频,不需要下载到本地播放。支持用户注册按权限查看/评论你共享的照片与视频。此外Lifebox还拥有基于Ajax技 术实现的漂亮用户界面。

兴冲冲的去官网看了一下,结果吓的不敢装:
1、
mediainfo v0.7.9 or greater

2、imagemagick 6.3.7.9 or greater

3、ufraw 0.13-1build2 or greater 

看到这些我就晕了。当然还有一些其他的。。。不敢装了。【我认为恐怖的原因是一个小小的图片程序,居然需要外加这么多的插件,当然你可以说是为了效果,但总觉得不舒服,我安装了这些插件,我还得为服务器上的其他用户一一配置权限,让他们无法使用这些插件,因为他们可能会很占CPU,所以这个程序可能比较适合那些有独立服务器人来使用,或许会很爽吧。。】

更多的需求在这里:http://www.getlifebox.org/2009/03/install-lifebox-on-ubuntu-810-intrepid-ibex/

恐怖啊。不过看上去效果不错:

大小: 84.82 K
尺寸: 217 x 376
浏览: 1406 次
点击打开新窗口浏览全图

NB一些常见问题以及解决方法

NB不是牛B的意思,而是开发工具netbeans的简称,当然你要说他牛B也可能,前提是你得会开发nb的插件,你才能让他更NB。
闲话不说,我所贴的内容是来自于ZendStudio.Net的博客中介绍的一些常见问题和解决方法

1、解决netbeans界面字体太小的问题

打开netbeans的安装目录,修改etc/netbeans.conf,在最后加上:netbeans_default_options=”–fontsize 12″

2、完美去除netbeans的文本限制线

网络上的方法是在颜色中将文本限制线改为白色,这个方法不算完美,因为在光标行的时候能够看到白色竖线,我的方法(移植自linux,哈哈)是定位到C:\Documents and Settings\Administrator\.netbeans\6.8\config\Editors\Preferences(请酌情修改此路径),打开文件org-netbeans-modules-editor-settings-CustomPreferences.xml,在editor-preferences树下添加一个节点,内容是:

<entry javaType="java.lang.Boolean" name="text-limit-line-visible" xml:space="preserve">
<value><![CDATA[false]]></value>
</entry>

这样就完美的去除了netbeans的文本限制线,也就是默认的那条右侧的难看的粉红色的竖线。

【备注】来自评论,由娃他爸提供
  1. 刚刚实践的时候死活找不到那个文件,后来发现需要先在nb里面做一些自定义的设置,保存,这个文件才会出来。特补充一下。呵呵!  

3、安装xdebug时候注意一下参数设置,不然可能会调试不正常

关于xdebug的详细安装,你可以参考zend studio视频教程系列的在zend studio for eclipse中使用xdebug调试php程序,具体要注意的设置是在php.ini中

[Zend]
zend_extension_ts=D:/xdebug/php_xdebug-2.0.5-5.2.dll
xdebug.remote_enable=on
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000

--EOF--

以上内容均来自:http://www.zendstudio.net/archives/netbeans-introduction/ ,事实上,第二条我认为并无必要。文本限制线在很多编辑器里都会存在,好象是为了照顾一些显示屏比较小的开发人员,而对编码人员的一个提醒,让你知道,代码不要写的太长,免得别人不停的拖动滚动条。我个人是限制在120左右。代码长度超过120,就提醒自己想办法换行了。。

netbeans的字体其实真的很恶心,习惯于用CourierNew,但如果我们设定成这个字体,却看不到中文。
实在没办法,就改成了dialogInput了。。。