php输出字符串方法集
作者:admin 日期:2015-10-01
Sublime的构建系统
作者:admin 日期:2015-09-07
sublime是一个非常好用的web开发工具,在我们之前的文章中也有提到过。大家可以参考一下。
sublime的下载: http://chaojiahuo.cn/
粗用laravel5代码的感觉
作者:admin 日期:2015-08-21
最近在网上看到大家对laravel的讨论比较多,所以我就下了一个laravel5.1(下面就简称为laravel5啦)的源码回来看了一下(大家用的比较多的应该不是5吧)。大致上看了一下结构什么的,没怎么往细了看。最后看了一下laravel5的官方文档,尝试性的写了一些代码。
结构
laravel5里面比较核心的应该有两个大的模块,一个是Application,一个是Kernel。
其实Application就是一个容器,加上一些对应用的配置,回调什么的。主要功能就是一个容器。他的这个思路有点类似于Java里面的Spring的容器。
php闭包绑定
作者:admin 日期:2015-08-21
在PHP5.3中引入了匿名函数,当在PHP中定义一个匿名函数的时候会产生一个Closure对象,也就是闭包。在PHP5.4起这个对象加入了一些方法,用来对这个闭包对象进行更多的控制。主要是Closure的bind静态方法(Closure也有一个bindTo非静态方法,但功能基本上和bind方法一样)。
网上对PHP闭包的绑定的介绍比较少,我之前也没有怎么用过,只是自己查了一下手册,写了一些测试性质的代码,大致知道了闭包的绑定是怎么用的。
函数原型
public static Closure Closure::bind ( Closure $closure , object $newthis [, mixed $newscope = "static' ] )
第一个参数$closure就是一个闭包对象,第二个参数是这个闭包绑定的$this指针,第三个是闭包的新的作用域。
百度链接提交主动推送ASP/PHP代码
作者:admin 日期:2015-08-18
链接推送是最为快速的提交提交链接的方式,百度建议您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
这里给出两段代码,分别用asp和php将您网站上新产生的链接推送给百度。
asp代码
sub noticeBaidu(article_url) dim http, url, body, responseText body = article_url url = "http://data.zz.baidu.com/urls?site=这里修改为你自己的网址&token=这里修改为你自己的推送KEY" set http=server.createobject("MSXML2.XMLHTTP") http.open "POST", url, false http.setRequestHeader "User-Agent", "request" http.setRequestHeader "Content-Type", "text/plain" http.send(body) " response.write(http.readystate) responseText = http.responseText response.write("notice response: " & responseText) set http = nothing end sub
php代码
<?php $urls = array( "http://www.zeroplace.cn/article.asp?id=960', 'http://www.zeroplace.cn/article.asp?id=961', ); $api = 'http://data.zz.baidu.com/urls site=这里修改为你自己的网站&token=这里修改为你自己的推送KEY'; $ch = curl_init(); $options = array( CURLOPT_URL => $api, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => implode("\n", $urls), CURLOPT_HTTPHEADER => array('Content-Type: text/plain'), ); curl_setopt_array($ch, $options); $result = curl_exec($ch); echo $result;
php error_reporting参数的二进制表
作者:admin 日期:2015-08-15
值 | 常量 | 二进制 |
---|---|---|
1 | E_ERROR | 0000000000001 |
2 | E_WARNING | 0000000000010 |
4 | E_PARSE | 0000000000100 |
8 | E_NOTICE | 0000000001000 |
16 | E_CORE_ERROR | 0000000010000 |
32 | E_CORE_WARNING | 0000000100000 |
64 | E_COMPILE_ERROR | 0000001000000 |
128 | E_COMPILE_WARNING | 0000010000000 |
256 | E_USER_ERROR | 0000100000000 |
512 | E_USER_WARNING | 0001000000000 |
1024 | E_USER_NOTICE | 0010000000000 |
2048 | E_STRICT | 0100000000000 |
4096 | E_RECOVERABLE_ERROR | 1000000000000 |
8191 | E_ALL | 1111111111111 |
Tags: php
PHP对数组进行排序
作者:admin 日期:2015-08-12
在用PHP进行WEB应用开发中我们经常需要对数组进行排序,强大的PHP也内置了很多方便我们排序的函数。让我们来看一下。
对值数组进行排序sort/rsort
这两个函数基本上是一样的,只是一个是正序,一个是反序。下面其它的也是成对的,就不再说明了。
这组函数只对数组的值进行排序,所有的KEY都会被丢弃掉。所以这组函数适合对值数组进行排序。
关于sort_flags这个参数,这里说明一下。下面如果出现sort_flag也是一样的用法。
- SORT_REGULAR - 正常比较单元(不改变类型)
- SORT_NUMERIC - 单元被作为数字来比较
- SORT_STRING - 单元被作为字符串来比较
- SORT_LOCALE_STRING - 根据当前的 locale 设置来把单元当作字符串比较。PHP 4.4.0 和 5.0.2 新加
php中==与===的使用不慎导致安全问题
作者:admin 日期:2015-08-05
php包自动加载工具Composer
作者:admin 日期:2015-07-29
java有Maven,Gradle, node.js有npm, python也有如easy_install等的包管理工具,现在PHP也有了一个自动的包管理工具Composer(https://getcomposer.org/)。在这之前,如果你需要为PHP添加一个包,你需要去网上下载,放到合适的位置,如果这个包又依赖了其它包,又要去找,非常麻烦。现在,因为有了composer,一切都好了。
你只需要写一个简单的文件,composer.json, composer就会自动帮你从网上下载合适的包,并且帮你把依赖搞定。
{ "require": { "foo/bar": "1.0.0" } }
Composer的安装
curl -sS https://getcomposer.org/installer | php
php -r "readfile("https://getcomposer.org/installer');" | php
执行这两条中的任何一条语句,就可以安装composer了。
php中new static和new self的区别
作者:admin 日期:2015-07-07
在读Yii2的代码的时候看到的他用了个new static,之前没有用过,所以写了一点代码试了下。差异应该在于new self是实例化当前代码所在类。new static是调用的的那个类,就下面这个例子来说,MyTest继承了Test类, 那么当在MyTest中使用static的时候,这个static代表的就是MyTest,self代表的就是Test。
<?php class Test { private $_user; protected function __construct($user) { $this->_user = $user; } public function showUser(){ echo "{$this->_user}\n"; } public static function of($user) { return new static($user); } } class MyTest extends Test{ protected function __construct($user) { parent::__construct("from MyTest: '.$user); } } class Test2 { private $_user; protected function __construct($user) { $this->_user = $user; } public function showUser(){ echo "{$this->_user}\n"; } public static function of($user) { return new self($user); } } class MyTest2 extends Test2{ protected function __construct($user) { parent::__construct('from MyTest: '.$user); } } MyTest::of("hello world")->showUser(); MyTest2::of("hello world")->showUser();
Tags: php
swoole:谁说PHP不支持异步操作?
作者:admin 日期:2015-07-06
之前一直不知道有这么一个PHP的扩展的存在,今天逛了逛github才偶然发现。就是他: swoole
这是一个号称要重新定义PHP的扩展。纯C语言实现,高性能,支持百万并发。提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。
更值得一提的是,他还支持websocket。
这个扩展提供了一个只能运行在cli环境下的Server类,和一个可以运行在任何环境下的Client类。Server和Client可以很方便的进行异步通信。这样一些异步任务可以很方便的放到Server上执行。
PHP获取POST的原始内容
作者:admin 日期:2015-06-29
我们使用PHP的时候,经常会用$_POST这个全局变量来获取用户POST过来的数据。但这其实隐含了一个事情,就是用户提交过来的HTTP请求的头部有有一个字段为Content-Type:application/x-www-form-urlencoded或multipart/form-data
如果用户提交过来的数据是JSON格式的呢?
这个时候PHP就没有办法再帮我们做这件事情了,此时$_POST将会是一个空的数组,我们需要自己来处理用户提交的数据。其实非常简单, 代码如下:
<?php $postStr = file_get_contents("php://input");
$postStr这个变量中已然保存了用户放到POST中的数据。
Tags: php
PHP5.5+启用OPCache
作者:admin 日期:2014-11-24
Zend Studio开启Xdebug调试
作者:admin 日期:2014-11-11
沧海遗著SPL之SplSubject和SplObserver
作者:admin 日期:2014-06-10
PHPMailer配置ssl连接smtp服务器失败的解决方案
作者:admin 日期:2014-06-05
管道实现PHP与Python相互通信
作者:admin 日期:2014-06-03
php回调函数必需知道的几种方法
作者:admin 日期:2014-06-01
php回调函数的几种方法
call_user_func_array(PHP 4 >= 4.0.4, PHP 5) call_user_func_array -- Call a user function given with an array of parametersDescriptionmixed call_user_func_array ( callback function, array param_arr )Call a user defined function given by function, with the parameters in param_arr |
PHPCMSV9 乱解读 之 PHPCMS V9的MVC
作者:admin 日期:2013-07-07
php 正则表达式后缀
作者:admin 日期:2012-06-01
Perl风格的正则表达式允许把单个字符选项(标志)放在正则表达式模式后面来修改匹配的解释或行为。例如,要进行不区分大小写的匹配,可以简单地使用i标志:
preg_match('/cat/i', 'Stop, Catherine!'); // returns true返回true
表4-12显示了在Perl兼容正则表达式中支持的来自Perl的修饰符:
表4-12:Perl标志
修饰符 |
意 义 |
/regexp/i |
不区分大小写的匹配 |
/regexp/s |
使句点(.)匹配任何字符,包括换行符(\n) |
/regexp/x |
从模式中删除空白符和注释 |
/regexp/m |
使^匹配换行符 (\n)之后的内容,美元符号($)匹配换行符 (\n)之前的内容 |
/regexp/e |
如果替换字符串是PHP代码,使用eval()执行该代码来得到实际的替换字符串。 |
PHP的Perl兼容正则表达式函数也支持在Perl中不支持的其他修饰符,如表4-13所示:
表4-13:其他的PHP标志
修饰符 |
意 义 |
/regexp/U |
颠倒子模式的贪婪性;*和+尽可能少地匹配而不是尽可能多。 |
/regexp/u |
把模式字符串当作UTF-8编码对待 |
/regexp/X |
如果一个反斜杠之后跟着没有特殊意义的字符,将产生一个错误 |
/regexp/A |
把锚定位在字符串的开头就像模式中有^一样 |
/regexp/D |
使$字符仅匹配一行的末尾 |
/regexp/S |
使表达式解析器更加小心地检查模式的结构,使得第二次运行时(如在一个循环中)加快速度 |