标签 php 下的文章

[分享] 开源一个 PHP 框架 Awheel

项目地址: Awheel
当前版本: v1.5.0
PHP要求: >=5.4.0

介绍

基本功能: 路由/中间件/控制器/控制台/组件/配置加载/输入&输出.

框架最初是为了满足公司业务需求一步步造出来的, 但是从一开始就很独立的没有柔任何业务代码进去, 只保留了基本功能, 除此以外的功能全部需要自行扩展, 因为我觉得框架提供的功能越多学习和推广的成本就越高, 出现 Bug 的几率也就越高, 反倒不如都拆分成组件, 而且 Composer 那么好用, 扩展起来分分钟的事.

所以没有自带模板引擎, 需要使用组件功能自行扩展, 只需要继承并实现 Component 接口的 getAccessorregister 方法就可以使用, 目前我提供了 Smarty, Blade, SPA 三种模板扩展.

也没有自带 ORM 组件, 但是这里提供一个扩展 medoo-model 这是一个轻量级的数据库访问封装, 不管是名字还是功能我都非常喜欢?, 也可自行扩展 Eloquent ORMDoctrine ORM 稍后我会给出一个 Eloquent ORM的封装扩展给喜欢的人使用

- 阅读剩余部分 -

[记录]Nginx 指令 Map 应用场景之: 统一 PHP 开发环境

在统一开发环境上很多团队很多公司做过很多尝试, 比如统一使用一个集成包, 使用 vagrant 等.

大部分都是在 Windows 下开发, 但是很多优秀的扩展和特性不被 Windows 支持,
同时很多人对 *nix 操作不熟练, 并且 vagrant 有个问题(其实是 VirtualBox 的问题)就是文件锁, 有时会导致 svn 无法提交/更新.

这里尝试给出另外一个方案, 个人觉得可行性还是很大的.

本文记录的方案只是个预案, 还没在公司实际推行.
本文演示环境使用 Ubuntu Server 14.04 和 Windows7

思路

  1. 开发人员通过 Samba 共享代码
  2. 服务器分别挂载开发人员共享到服务器
  3. 服务器配置根据开发者 IP 使用不同的代码

- 阅读剩余部分 -

[分享] 用 PHP 写了一个 Transmission 的 RSS 下载

项目地址: Transmission RSS

目前支持的有 CHD/CMCT/TTG/OPENCD, 其它 PT 我没有账号无法确定适配, 因为 XML 格式可能不一样.

使用方法:

git clone https://github.com/fengqi/transmission-rss.git transmission-rss
cd transmission-rss

修改下 rss.php 里的配置

$rssLink = ''; #点击 chd 里的 [RSS下载], 把订阅地址填进去
$server = 'http://127.0.0.1'; # 默认 127.0.0.1
$port = '9091'; # 默认 9091
$rpcPath = '/transmission/rpc'; # 默认 /transmission/rpc
$user = ''; # 用户名, 如果有设置, 填进去
$password = ''; # 密码, 如果有设置, 填进去

然后运行 php rss.php 测试 ok 就可以放到 cron 里运行了,

sudo crontab -e
写入以后内容
# Transmission RSS 下载
*/10 * * * * /opt/bin/php /opt/transmission-rss/rss.php

php 的路径(使用命令: which php 获取), 和 clone 的项目路径根据自己情况修改下.

其他资源: Transmission ADD-ONS

[转载]PHP设置Cookie的HTTPonly属性

原文链接: PHP设置Cookie的HTTPonly属性

PS: 直接转载, 有时间再整理下排版, 有点挤...

httponly是微软对cookie做的扩展。这个主要是解决用户的cookie可能被盗用的问题。
大家都知道,当我们去邮箱或者论坛登陆后,服务器会写一些cookie到我们的浏览器,当下次再访问其他页面时,由于浏览器回自动传递cookie,这样就实现了一次登陆就可以看到所有需要登陆后才能看到的内容。也就是说,实质上,所有的登陆状态这些都是建立在cookie上的!假设我们登陆后的cookie被人获得,那就会有暴露个人信息的危险!当然,想想,其他人怎么可以获得客户的cookie?那必然是有不怀好意的人的程序在浏览器里运行!如果是现在满天飞的流氓软件,那没有办法,httponly也不是用来解决这种情况的,它是用来解决浏览器里javascript访问cookie的问题。试想,一个flash程序在你的浏览器里运行,就可以获得你的cookie的!

IE6的SP1里就带了对httponly的支持,所以相对还说还是些安全性。

PHP中的设置
PHP5.2以上版本已支持HttpOnly参数的设置,同样也支持全局的HttpOnly的设置,在php.ini中
-----------------------------------------------------
session.cookie_httponly =
-----------------------------------------------------
设置其值为1或者TRUE,来开启全局的Cookie的HttpOnly属性,当然也支持在代码中来开启:
-----------------------------------------------------
// or session_set_cookie_params(0, NULL, NULL, NULL, TRUE);
?>
-----------------------------------------------------
Cookie操作函数setcookie函数和setrawcookie函数也专门添加了第7个参数来做为HttpOnly的选项,开启方法为:
-------------------------------------------------------
setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
-------------------------------------------------------
对于PHP5.1以前版本以及PHP4版本的话,则需要通过header函数来变通下了:
-------------------------------------------------------------

-------------------------------------------------------------

[总结]Linux下安装php的pear和pecl

参考链接: Linux上安装php的pear

首先下载安装脚本, 使用curl下载, wget也可以, 如果没有这两个命令请自行安装:

cd /usr/local/php/bin/
curl -o go-pear.php http://pear.php.net/go-pear
curl -o go-pear.php http://pear.php.net/go-pear.phar # 如果你的php版本高于php5.3, 执行这条

安装:

php go-pear.php # 回车, 会提示选择安装的东西, 直接回车, 安装全部, 若后面有要选择y/n的, 输入y回车

- 阅读剩余部分 -

[记录]关于php读写操作中文文件的问题

今天碰见一个问题, 采集东西, 写到目录的时候, 会报错不能打开文件, 使用英文名后, rename也不行, 判断是否存在也不行...

百度, google后, 发现原因还是...字符编码问题.

我们常用的有utf-8,gbk两种编码, php内部操作哪种都无所谓, 但是如果涉及到实体文件就必须注意一点:

文件名编码要和php环境所在系统保存一致

比如我是win下用, win肯定是gbk编码了, 所以文件名转换为gbk后, 再读写操作就ok了

[记录]关于php的header

参考地址:
PHP手册: header — Send a raw HTTP header
w3school: PHP header() 函数

header() 函数向客户端发送原始的 HTTP 报头。
认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数

其实, 大部分都是用header重定向的, 但是很多人都忽略了一点, 就是header是不会停止php运行的, 所以如果用在判断然后导到不同的url去, 就要严谨点的加个exit();了
所以简单记录下吧, 免得自己忘记.