parse_url() 函数可以解析 URL,返回其组成部分。它的用法如下:

array parse_url ( string url )

此函数返回一个关联数组,包含现有 URL 的各种组成部分。如果缺少了其中的某一个,则不会为这个组成部分创建数组项。组成部分为:

  • scheme – 如 http
  • host
  • port
  • user
  • pass
  • path
  • query – 在问号 ? 之后
  • fragment – 在散列符号 # 之后

此函数并不意味着给定的 URL 是合法的,它只是将上方列表中的各部分分开。parse_url() 可接受不完整的 URL,并尽量将其解析正确。此函数对相对路径的 URL 不起作用。

<?php
	$url = "http://www.digdeeply.org/wp-admin/";
	$parts = parse_url($url);
print_r($parts);

?>

程序运行结果如下:

Array ( [scheme] => http [host] => www.digdeeply.org[path] => /wp-admin/ )


阅读全文

零宽断言是正则表达式中的一种方法

正则表达式在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。


阅读全文

不知道是我了解的少,还是ThinkPHP本来就不支持gzip压缩,每次流量都消耗的太大了,尤其是在 SAE上托管的这种程序来说,那一分一秒,跑得都是人民币啊。。

ThinkPHP下开启Gzip压缩很简单,不管你是哪个版本,只要在你的入口文件index.php中加入以下两行,如果你的服务器支持,那么就OK了。

define ( "GZIP_ENABLE", function_exists ( 'ob_gzhandler' ) );
ob_start ( GZIP_ENABLE ? 'ob_gzhandler' : null );

 

ThinkPHP中开启Gzip压缩 节省流量74.97%

ThinkPHP中开启Gzip压缩 节省流量74.97%


阅读全文

由于微博API要求从2011年12月26日起,所有请求必须加入请求者的IP。由于从内网发起请求,最后header中获得的IP为10打头的内网IP,导致认证失败。

修改sae的SaeTClientV2类的http()方法中检测下,如果IP是10打头的内网IP,强制转换header中的saeremoteip为一个外网IP。

$remote_addr = $_SERVER['REMOTE_ADDR'];
		if (substr($remote_addr,0,3) === '10.') {
			$remote_addr = '61.135.152.203';
			$headers[] = "SaeRemoteIP: " . $remote_addr;
		}

阅读全文

在搞一个新浪微博小应用,在本地搞的开发环境,win7 旗舰版 64位。

当使用php_curl curl_init() curl_exec()时候,发现当访问接口文件 https://api.weibo.com/oauth2/access_token 要进行登陆认证时,返回结果为false,没有抓取到内容。但是访问http的内容时是正常的,但是openssl也是打开的啊,应该是可以的。

找了半天问题,后来仔细想了一下,认为可能是打开ssl内容时的证书验证问题,于是, 在curl里加入了如下参数,取消证书检验:

$ch = curl_init();
    curl_setopt($ch,CURLOPT_TIMEOUT,$second);

    curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($ch,CURLOPT_URL,$url);
   
     //取消证书检验
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    
    curl_setopt($ch,CURLOPT_POST, 1);

    curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);
    
    $data = curl_exec($ch);

    curl_close($ch);


阅读全文

如今,每家公司都似乎成了科技公司。从软件创业公司到投机性投资公司、制药巨头和媒体巨头,它们都越来越多地加入到软件业务行列。

代码质量不仅成为了一个必需品,更成为了一个竞争优势。因为众多公司围绕软件而竞争,开发软件的人——软件工程师正显得越发重要。但是,你该如何发现那种百里挑一的程序员呢?在本文中,我们简明扼要地列出了明星开发人员的10种特质。

    1. 热爱编程
    1. 完成事情
    1. 持续重构代码
    1. 使用设计模式
    1. 编写测试
    1. 善用现有代码
    1. 专注可用性
    1. 编写可维护的代码
    1. 能用任何语言编程
    1. 知晓基本的计算机科学

阅读全文

作者的图片

DigDeeply

Technology Stack: PHP/Openresty/GoLang, and so on…

Web Development Engineer

Beijing China