小技巧:php的include()中使用GET数据

有时基于某些特殊需求,需要在PHP中使用include()方法调用项目中某个独立提供服务的文件,如果被调用文件使用GET方式传入数据,则需要用到一些小技巧。

举例:假设在 index.php 中需要调用 inc.php?para=3 ,

inc.php

<?php
    echo $_GET['para'];
?>

下面的写法是无法得到正确结果的:

index.php

<?php
    include dirname(__FILE__).'/inc.php?para=3';
?>

稍微变通一下,把$_GET变量在include之前定义,则可以正常运行:

index.php

<?php
    $_GET['para'] = 3
    include dirname(__FILE__).'/inc.php;
?>

如果php.ini中开启了allow_url_include功能,则可以使用include url的方式:

index.php

<?php
    include 'http://www.yoururl.com/inc.php?para=3';
?>

设置方法:php.ini中,找到如下行,改为On:

; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
allow_url_include = On

不过为了保证安全性,大部分的服务器都将allow_url_include 功能关闭,那样就只能视情况而定了。

幼学笔记原创内容,根据CC协议发布,欢迎具名转载。

PHP Document 注释标记及规范

注释标记

@access
使用范围:class,function,var,define,module
该标记用于指明关键字的存取权限:private、public或proteced

@author
指明作者

@copyright
使用范围:class,function,var,define,module,use
指明版权信息
阅读全文 »

在Ubuntu的XAMPP上安装Memcached

XAMPP是一个方便的Apache+PHP+MySQL+FTP开发包,可以免去大量安装配置的麻烦。有时开发者需要安装memcached模块,Linux中安装非常方便,但在XAMPP中安装会遇到一点问题。结合网络上的教程和同事帮助,摸索出了下面的安装方法:

1.安装memcached和php的扩展

sudo apt-get install  memcached php-pecl-memcache

2.启动memcached(每次启动系统要运行这个命令)

memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211

3.修改XAMPP的php配置文件:

sudo gedit /opt/lampp/etc/php.ini

在末尾加入一行:

extension=memcache.so

4.重启XAMPP,此时会提示路径错误,大体是说,在这样一个目录中未找到memcache.so:
/opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/

现在我们只要把系统中的memcache.so复制到要求的文件夹中就OK了:

sudo cp /usr/lib/php5/20060613+lfs/memcache.so /opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/

可能你的memcache.so文件不在上面那个目录里,可以搜索得到路径:

sudo updatedb
locate memcache.so

注意:memcached会依附在ubuntu预装的Apache里作为server deamon运行,可能会与XAMPP的Apache产生冲突,所以此时最好把系统中的原生Apache卸载掉:

sudo apt-get remove apache2.2-common
sudo apt-get autoremove

OK,现在可以测试一下你的memcached是否正常运行:

<?php
$memcache = new Memcache;
?>

不报错应该就没问题了~

幼学笔记原创内容,根据CC协议发布,欢迎具名转载。

Google Maps经纬度编码算法的JavaScript及PHP实现

Google Maps API 的 GPolyline和GPolygon类提供了工厂方法fromEncoded,可以将大量的经纬度信息编码为简短的字符串,方便网络传输和存储。

这里是Google对此算法的说明:http://code.google.com/intl/zh-CN/apis/maps/documentation/polylinealgorithm.html

这里是Google在线编码程序英文版(中文版目前出错不可用):http://code.google.com/apis/maps/documentation/polylineutility.html

由于我们在实际开发中会经常对经纬度信息进行编码,在服务端使用PHP编码发送,在客户端使用JavaScript编码提交,今天对这两种语言的编码程序进行了整理,发出来共享,有需要的可以下载。

另外本人正在编写一系列PHP+Google Maps API的网站开发教程,欢迎关注,教程地址:oncoding.net

点击下载

幼学笔记原创内容,根据CC协议发布,欢迎具名转载。

网站开发系列教程

投身web开发以来,阅读甚广,中间屡有所得所思,但疏于笔端,懒得记录,终致流失。

昨与友人闲谈,心血来潮,欲将自身知识与思想,溶于一系列教程,一为飨读者,二为完自身。遂策划得名为“前端开发实战教程—基于PHP、GoogleMapApi的网站项目开发”,昨得其第一篇,发布于网端。网络诸友,若有好之者,欢迎传阅之,批评之,改进之。

第一篇网络地址:http://oncoding.net/javascript/source/article200903/apus-01.htm

项目代码地址:http://apus.googlecode.com

项目演示地址:http://apus.net.cn

PHP中常见的几种设计模式

设计模式只是为 Java架构师准备的 — 至少您可能一直这样认为。实际上,设计模式对于每个人都非常有用。如果这些工具不是 “架构太空人” 的专利,那么它们又是什么?为什么说它们在 PHP 应用程序中非常有用?本文解释了这些问题。

阅读全文 »