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 |
使表达式解析器更加小心地检查模式的结构,使得第二次运行时(如在一个循环中)加快速度 |
