分类: |

php输出字符串方法集

代码开关如下, 

<?php
$str = "http://www.zeroplace.cn'."\n";

1. echo
echo $str;

2. printf
printf($str);

3 php://output
file_put_contents('php://output', $str); $fp = fopen("php://output", 'w'); fwrite($fp, $str); fclose($fp);

查看更多...

Tags: php

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 49873

Sublime的构建系统

 sublime是一个非常好用的web开发工具,在我们之前的文章中也有提到过。大家可以参考一下。

sublime的下载: http://chaojiahuo.cn/

Sublime Text 3 Package Control安装

sublime text3 最新注册码

查看更多...

Tags: sublime php

分类:web前端 | 固定链接 | 评论: 0 | 查看次数: 9879

粗用laravel5代码的感觉

 最近在网上看到大家对laravel的讨论比较多,所以我就下了一个laravel5.1(下面就简称为laravel5啦)的源码回来看了一下(大家用的比较多的应该不是5吧)。大致上看了一下结构什么的,没怎么往细了看。最后看了一下laravel5的官方文档,尝试性的写了一些代码。

结构

laravel5里面比较核心的应该有两个大的模块,一个是Application,一个是Kernel。

其实Application就是一个容器,加上一些对应用的配置,回调什么的。主要功能就是一个容器。他的这个思路有点类似于Java里面的Spring的容器。

查看更多...

Tags: php laravel

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 9002

php闭包绑定

在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指针,第三个是闭包的新的作用域。

查看更多...

Tags: php 闭包

分类:PHPCMS | 固定链接 | 评论: 0 | 查看次数: 8741

百度链接提交主动推送ASP/PHP代码

链接推送是最为快速的提交提交链接的方式,百度建议您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。

这里给出两段代码,分别用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;

查看更多...

Tags: asp php seo

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 11133

php error_reporting参数的二进制表

 

常量 二进制
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教程 | 固定链接 | 评论: 0 | 查看次数: 6282

PHP对数组进行排序

在用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 新加

 

查看更多...

Tags: php 排序

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 6500

php中==与===的使用不慎导致安全问题

  php是一门动态类型的语言,他的变量的类型不需要我们显式的指出,他会自动选择合适的类型。所以在php中有两种相等比较符,==与===。 在使用==进行比较时,将会进行类型转换后的比较。当使用===将会先比较变量的类型,如果类型不一致,会直接被判定为不相等。

 
由此使用"=="会引入一些安全问题。

查看更多...

Tags: php 安全

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 6782

php包自动加载工具Composer

 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了。

查看更多...

Tags: php composer

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 7338

php中new static和new self的区别

在读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

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 13589

swoole:谁说PHP不支持异步操作?

 之前一直不知道有这么一个PHP的扩展的存在,今天逛了逛github才偶然发现。就是他: swoole

这是一个号称要重新定义PHP的扩展。纯C语言实现,高性能,支持百万并发。提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。

更值得一提的是,他还支持websocket。

这个扩展提供了一个只能运行在cli环境下的Server类,和一个可以运行在任何环境下的Client类。Server和Client可以很方便的进行异步通信。这样一些异步任务可以很方便的放到Server上执行。

查看更多...

Tags: php 异步

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 14537

PHP获取POST的原始内容

 我们使用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

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 16761

PHP5.5+启用OPCache

 APC在PHP5.4及以下版本是性能最好的代码缓存。

不过PHP升级到5.5及以上后,APC不再有效。需要使用Zend的OpCache扩展。

要启用Opcache扩展,有两步:

1. 安装opcache

编译安装PHP5.5的时候加上–enable-opcache

 

查看更多...

Tags: php

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 13865

Zend Studio开启Xdebug调试

XDEBUG下载地址: http://xdebug.org/download.php

php.ini配置

[Xdebug]

zend_extension="C:/APMServ5.2.6/PHP/ext/php_xdebug-2.2.5-5.4-vc9.dll"

查看更多...

Tags: debug xdebug php

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 11839

沧海遗著SPL之SplSubject和SplObserver

 想写一些关于SPL的东西,不知道怎么开始,就挑了个最简单的,写写SplSubject和SplObserver的使用。

提纲

1. 什么时观察者模式。

2.观察者模式用到的接口

查看更多...

Tags: spl php

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 6260

 公司之前一直用没加密的smtp服务,上周突然要求全部换成ssl的连接方式,强制停止了不使用ssl的smtp服务,导致了原本很多使用smtp的程序不能正常工作。

有一个程序原来是用PHPMailer来发邮件的,好在PHPMailer支持ssl的smtp,我以为改下端口,加下SMTPSecure设置就可以了。事实当然没那么简单,加了下面这句代码后PHPMailer一直提示不能连接到主机。

查看更多...

Tags: php openssl

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 13711

管道实现PHP与Python相互通信

 之前在公司做项目的时候碰到了一个解23个系数的回归方程的问题,当时只记得在大学的时候听数学老师讲过回归计算,后来也就还回去了。在网上也只能找到一个Python解回归方程的代码,而我用的主语言是PHP,对Python也只略懂些语法,所以只能想办法让PHP启一个Python进程再用进程间通信的方法来解决了。

 
看看管道文件的打开规则。

查看更多...

Tags: php 管道

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 7309

php回调函数必需知道的几种方法

 php回调函数的几种方法

 
PHP回调函数用的场合还是挺多的,特别是一些用到模式的地方。这篇文章就小小的总结一下PHP的回调函数的几种形式。
 
先看下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 parameters

Description

mixed call_user_func_array ( callback function, array param_arr )

Call a user defined function given by function, with the parameters in param_arr

查看更多...

Tags: php 回调函数

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 11466

PHPCMSV9 乱解读 之 PHPCMS V9的MVC

现在的程序设计基本上都讲求MVC,数据与模板分离,单一入口。

这篇文章准先写一写PHPCMSV9的运行和它的MVC是怎么实现的!
 
(习惯问题我喜欢将所有的方法称之为函数,所以下面我如果提到函数的话很可能就是某个类的一个方法)
 

查看更多...

Tags: phpcms v9 php mvc

分类:PHPCMS | 固定链接 | 评论: 0 | 查看次数: 11627

php 正则表达式后缀

 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

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

查看更多...

Tags: php php正则表达式

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 5417