收藏本站

Windows7 64 位系统安装Apache2.4 PHP5.5

Apache2.4 目前apache  官网已经不提供 windows 版本。

现在大部分一键安装包多是32位的,并不支持64位,直接在64位的系统上使用会报错的,

说说windows 64位系统如何建立Apache+PHP环境的!


我这里演示用的windows7 64位简体中文版,apache,php用的是64位的版本。建立的是本地环境,所以我用的是默认设置。


1、下载PHP、Apache和Mysql软件以及VC库。

下面分别是PHP、Apache和Mysql的官网地址。

PHP:http://windows.php.net...


阅读全文>>

php fsockopen 302 跳转的问题

使用fsockopen 打开一个链接时,如果打开的链接返回一个302的重定向到登陆成功页面麻烦就来了,COOKIE可能没问题,但SESSION会导致产生一个新的会话,马上就会失效还是需要登陆的。

解决办法超级简单,把它的返回头一字不落的header出去。

$fp = fsockopen($urlInfo['host'], $port, $errno, $errstr, $timeout) or die('登陆失败:' + $errstr);
$out .= "POST {$urlInfo['path']} HTTP/1.0\r\n";
$...

阅读全文>>

php $_FILES 使用详解

文件上传表单

<form enctype="multipart/form-data" action="URL" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
<input name="myFile" type="file">
<input type="submit" value="上传文件">
</form>


$_FILES数组内容如下: ...

阅读全文>>

php 性能优化

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。

1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。

2、$row[’id’] 的速度是$row[id]的7倍。

3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。

4、在执行...

阅读全文>>

php 为什么需要单例模式

众所周知,php是解释型语言。在其解释一个页面请求过后,所有资源都会从内存中清除。似乎也就没有使用单例的必要。


单例模式的要点有三个:

一是某个类只能有一个实例;

二是它必须自行创建这个实例;

三是它必须自行向整个系统提供这个实例。

下面我们讨论下为什么要使用PHP单例模式?

多数人都是从单例模式的字面上的意思来理解它的用途, 认为这是对系统资源的节省, 可以避免重复实例化, 是一种"计划生育".   而PHP每次执行完页面都是会从内存中清理掉所有的资源. 因而PHP中的单例实际每次运行都是需要重新实例化的, 这样就失去了单例重复实例化的意义了. 单...

阅读全文>>

php 单列模式

单列模式是设计模式中常见的模式之一。

php 中单列模式实现方式有以下两种:

方式一、

<?php
class Example
{
    // 保存类实例在此属性中
    private static $instance;
    
       // 构造方法声明为private,防止直接创建对象
    private function __construct() 
    {
        echo 'I am constructed';
    }

    // singleton 方法
    public st...

阅读全文>>

php 魔术方法合集【二】

publicvoid__set ( string$name , mixed$value )
publicmixed__get ( string$name )
publicbool__isset ( string$name )
publicvoid__unset ( string$name )

在给未定义的变量赋值时,__set() 会被调用。

读取未定义的变量的值时,__get() 会被调用。

当对未定义的变量调用 isset()empty()时,__isset() 会被调用。

当对未定义的变量调用 unset()时,__unset() 会被调用。 ...

阅读全文>>

php 魔术方法合集【一】

PHP把所有以__(两个下划线)开头的类方法当成魔术方法。所以当你定义类方法时,除了上述魔术方法,建议不要以 __为前缀。

PHP中被称为"魔术方法"(Magic methods) 有

__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state()__clone()


publicarray__sleep ( void...

阅读全文>>

IIS6+FastCGI+php5.3.13+moodle2.2.3 安装

本打算用apache 可是,php 5.3.13 只提供v9版下载,只好放弃,而选用以前根本没碰过的 iis 安装。

经过近一天的奋战终于全部搞定。

fastcgi+php5.3 的安装,下面这篇文章讲的确实很详细。(http://www.2cto.com/os/201110/106895.html)

步骤摘录一下:

第一步:PHP配置

1、 解压php-5.3.2-nts-Win32-VC9-x86.zip至安装目录

2、打开php-5.3.2- nts-Win32-VC9-x86,建立php.ini文件,复制一个新的php.ini-develop...

阅读全文>>

php 引用原理详解

一个非常奇怪的问题。那就是,在一个运算中,加了一个引用之后,发现性能慢了一万倍。在我的脑海里面,引用是一个非常容易出错的问题,特别是PHP 里面的引用,有非常多的陷阱。因为,以前专门研究过这一块PHP的源代码,所以,我可以比较清晰的解析引用到底是怎么一回事,希望,读了我这篇博客的 PHP开发者,能彻底理解这个问题。如果,有任何疑问,或者有一些你想了解的问题,可以给我留言。

 

先来看一段代码:

class RefferTest
{ private $data; private $testKey;
    function __construct()
    {
        $key = "hello";
        $this->data[$key] = range(0, 10000);
        $this->te...

阅读全文>>