预览模式: 普通 | 列表

Sublime Text 3 Package Control安装

Sublime的包管理器可以方便我们安装其它的插件,所以基本上安装好Sublime之后的第一件事就是安装包管理器( Package Control)。其实这个包管理器它自己就是一个插件。

 首先是按Ctrl+`调出控制台,然后输入以下命令即可,Sublime2和Sublime3有些不同。

Sublime2

import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')

Sublime3

import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

查看更多...

Tags: sublime

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

粗用laravel5代码的感觉

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

结构

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

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

查看更多...

Tags: php laravel

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

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 | 查看次数: 6823

百度链接提交主动推送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 | 查看次数: 7817

yii2 rbac权限管理

Yii2是一个好的web开发框架, 其中也提供了对RBAC权限管理的支持。RBAC就是Role-Based Access Control(基于角色的访问控制)的简写,具体请看百度百科,http://baike.baidu.com/view/73432.htm

核心思想就是我把一系列的许可组合在一起,成为一个角色。第一个用户可以扮演多个角色,只要这多个角色中的其中一个角色可以做的事,此用户就可以做。

在Yii2中,RBAC模型如下图所示。

yii2 权限管理模型

查看更多...

Tags: yii rbac 权限

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

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 | 查看次数: 4696

常用开源协议的比较

 我们在WEB应用开发的过程中经常需要用到一些开源的库或软件,在享受开源带来的好处的同时,我们也要注意尊重原作者的劳动成果。在这过程中我们就需要了解一些常用的开源协议。常用的开源协议有GPL,LGPL,BSD,AL2.0,MIT等。我们来比较一下这些开源协议的区别。

1. GPL协议

第一点,这个协议说,我是开源的,免费的。第二点,这个协议跟我们说,不管你是用了我的代码还是用了我的二进制库,你就是跟我一样的了,也发尊守GPL协议。也就是说,如果你用了GPL协议开源的库或软件,你的软件也必需要开源,免费,不能作商业用途。

2. LGPL协议

查看更多...

Tags: 开源

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

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 | 查看次数: 4673

【福利】阿里云服务器购买优惠码

新得一枚阿里云的优惠码,可以在原有的价格的基础上打9折

1、推荐码使用规则?
适用订单:首次购买包年包月云服务器ECS和云数据库RDS的订单
优惠折扣:享受原价9折优惠。
有效期: 推荐码限量限时,请尽快使用。
(其中分销商关联账号、已打折订单、企业子账户不在使用范围。)

2、如何使用?
选好产品->立即购买->确认订单环节->点击「我有推荐码」->输入推荐码->立享9折!

优惠码使用方法

优惠码:ERIF3P

分类:智慧人生 | 固定链接 | 评论: 0 | 查看次数: 4432

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

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

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

查看更多...

Tags: php 安全

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

win7不用助手 手动升级到win10

 

 昨天用360的助手把公司的电脑升级到win10了,体验还可以。就想把家里的电脑也升级到win10,但是因为家里的电脑是未激活的win8.1,所以又折腾了一下,把win8.1降到了win7,激活,准备再用360来升级的。

但是今天360告诉我,由于系统繁忙我的升级被到8.5号了。无奈呀。只能琢磨自己升级了。另外吐槽一下腾讯,说好的升级助手呢?

ed2k://|file|cn_windows_10_multiple_editions_x64_dvd_6848463.iso|4303300608|94FD861E82458005A9CA8E617379856A|/

我是用了这么个镜像,下载回来。用daemon tools虚拟到光驱,直接点里面的setup.exe就可以开始升级了。

另外还有一些版本,提供给大家。

查看更多...

Tags: win7 win10

分类:win7技术 | 固定链接 | 评论: 0 | 查看次数: 6201

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 | 查看次数: 5482

Packagist / Composer 中国全量镜像

 备注一下,一个网站

http://pkg.phpcomposer.com/

在composer.json中添加如下配置

{
    "repositories": [
        {"type": "composer", "url": "http://packagist.phpcomposer.com"},
        {"packagist": false}
    ]
}

 

Tags: composer

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

 一、MySQL 获得当前日期时间 函数

1.1 获得当前日期+时间(date + time)函数:now()
mysql> select now();
 
+---------------------+
| now() |
+---------------------+
| 2008-08-08 22:20:46 |
+---------------------+
 
除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:
current_timestamp()
,current_timestamp
,localtime()
,localtime
,localtimestamp -- (v4.0.6)
,localtimestamp() -- (v4.0.6)
 
这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。

查看更多...

Tags: mysql 数据库

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

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 | 查看次数: 11990

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

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

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

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

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

查看更多...

Tags: php 异步

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

Pepper Flash Player是一个由google推出的,更稳定,更安全的flash player, 所以在ubuntu14.04以后,google就不支持Netscape Plugin API了。所以我们只要安装Pepper Flash Player就可以了。

如何安装Pepper Flash Player

Ctrl+Alt+T打开终端,执行以下命令即可。

sudo apt-get install pepperflashplugin-nonfree
sudo update-pepperflashplugin-nonfree --install

Tags: ubuntu

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

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 | 查看次数: 14805

    Web应用程序开发是一个很宽泛的话题。本文仅讨论Web应用开发者应当避免的安全错误。这些错误涉及到任何开发者都不应当忽视的基本安全原则。

Web应用开发人员最易犯的九个安全错误

查看更多...

Tags: web开发 安全

分类:网络安全 | 固定链接 | 评论: 0 | 查看次数: 25020

 抢了一下午票,老出现下面的提示,说我在使用第三方插件。

刚刷出来的票又没了。

看了一段12306抢票的前端代码,写出这么段代码来无视这个提示,直接进入选择乘客和输入验证码的页面。

var Ori_ajax = $.ajax;

$.ajax = function(o, n){
	if (o.url == "/otn/leftTicket/submitOrderRequest") {
		var hisSuccess = o.success;
		o.success = function(p){
			otsRedirect("post", ctx + "confirmPassenger/initDc", {});
			return;
		}
	}
	return ori_ajax.apply(this, [].slice.call(arguments, 0));
};
//@ sourceURL=fakeajax.js

查看更多...

分类:智慧人生 | 固定链接 | 评论: 0 | 查看次数: 31802
博主QQ: 友情链接请找我
QQ群: 灰色档案
返回顶部 关闭