首页 > 编程技术 > php

Zend系列产品的php.ini配置

发布时间:2016-11-25 16:07

[Zend]
; zend optimizer & zend debugger 冲突,不能同时共存

;;;;;;;;;;;;;;; zend optimizer ;;;;;;;;;;;;;;;;;
;zend_extension_manager.optimizer_ts="d:Program FilesZendZendOptimizer-3.2.6libOptimizer-3.2.6"
;zend_extension_ts="d:Program FilesZendZendOptimizer-3.2.6libZendExtensionManager.dll"
;zend_optimizer.enable_loader = 0
;zend_optimizer.optimization_level=15
;zend_optimizer.license_path =

;;;;;;;;;;;;;;;; zend debugger ;;;;;;;;;;;;;;;;;;;;;
zend_extension_ts="D:Program FilesZendZendStudio-5.5.0binphp55.2.xZendDebugger.dll"
zend_debugger.allow_hosts=127.0.0.1/32
zend_debugger.expose_remotely=always

[Xdebug]
; Xdebug 和 zend debugger 冲突, 不能同时以 zend_extension_ts 方式配置, 但是 extension= 引入是可以到
;;zend_extension_ts="D:Program FilesZendZendStudio-5.5.0binphp5xdebugphp_xdebug-2.0.2-5.2.5.dll"
;extension=php_xdebug-2.0.2-5.2.5.dll
;xdebug.profiler_enable=on
;xdebug.trace_output_dir="D:Program FilesZendZendStudio-5.5.0binphp5xdebug"
;xdebug.profiler_output_dir="D:Program FilesZendZendStudio-5.5.0binphp5xdebug"

;xdebug.default_enable = On
;xdebug.show_exception_trace = On
;xdebug.show_local_vars = 1
;xdebug.max_nesting_level = 50
;xdebug.var_display_max_depth = 6

;xdebug.dump_once = On
;xdebug.dump_globals = On
;xdebug.dump_undefined = On
;xdebug.dump.REQUEST = *
;xdebug.dump.SERVER = REQUEST_METHOD,REQUEST_URI,HTTP_USER_AGENT

另外:

zend optimizer 不支持 Apache2.2.x版本, 不知道谁有没有办法.

<

********************************************************************************
**1.产品版本信息
********************************************************************************
Apache     2.2.3
php        5.2.0
phpMyAdmin 2.11.3
mysql      5.0.18

********************************************************************************
**2.安装目录
********************************************************************************
apache:E:webapache
php:   E:webphp
mysql: E:webmysql


********************************************************************************
**3.配置PHP
********************************************************************************
 a.修改apache配置文件httpd.conf,在其中搜索到LoadModule部分,在后面增加:
  LoadModule php5_module "e:/web/php/php5apache2_2.dll"
  AddType application/x-httpd-php .php
  PHPIniDir "E:/web/php"
 b.在E:webphp中根据php.ini-recommended创建php.ini,内容一样,作为php的配置文件。
   将php.ini拷贝到windows目录下,千万注意php目录下的php.ini与windows目录下的该文件保持同步。到此,php安装完成。
 

********************************************************************************
**4.测试PHP的配置
********************************************************************************
 在apache的web根目录(默认为htdocs)编写测试脚本phpinfo.php,内容如下
 <?php
 phpinfo();
 ?>
 在浏览器中访问该文件http://localhost/phpinfo.php
 如果能够正确显示php相关的基本信息,则安装正常。                --检验php安装是否正确
 

********************************************************************************
**5.安装mysql
********************************************************************************
  a.将mysql直接安装到目录E:webmysql下,root用户密码为root(自己设定,记住就可以了)


********************************************************************************
**6.配置php与mysql的连接
**************

彻底解决PHPMyAdmin中文UTF-8乱码问题

PHPMyAdmin的中文乱码问题很常见,而且也很烦人。以前用PHPMyAdmin比较少,最近装上以后感觉非常的方便,但是同样也遇到了中文乱码的问题,主要是UTF-8和GB2312编码不能同时正确显示。从网上找到了一些资料,但是都不是很直接,现在结合自己的操作重新整理一下。
1. 因为MySQL的默认编码是latin1,所以首先我们需要修改一下PHPMyAdmin的编码转换。修改libraries目录下面的select_lang.lib.php文件,将


   1. ''utf-8'' => ''utf8'',
   2. 修改成
   3. ''utf-8'' => ''latin1'',





2. 接下来还要修改一下页面的编码显示,将


   1. ''zh-gb2312'' => array(''zh|chinese simplified'', ''chinese_simplified-gb2312'', ''zh''),
   2. 修改成
   3. ''zh-gb2312-utf-8'' => array(''zh|chinese simplified'', ''chinese_simplified-gb2312'', ''zh''),



也就是在zh-gb2312后面增加-utf-8,这样页面编码就支持UTF-8了。

3. 首先选择zh-gb2312-utf-8进入PHPMyAdmin,这个时候浏览GB2312编码的数据正常,但是浏览UTF-8的数据是乱码。如果浏览UTF-8的数据的话,进入首页,然后在Language里面选择zh-utf-8就可以了。


几点说明:

1. 默认的语言编码很长,你可以将其他编码用/**/注释掉,只保留zh-gb2312-utf-8和zh-utf-8两个编码。

2. 目前PHPMyAdmin最新的版本是2.8.0-r



1.什么是引用?引用的优缺点,还有关于函数返回引用的问题.

2.有一道php的题是让我完成一个类的接口,我不明白什么是接口,希望高手指点.

3.遇到了一些关于类的问题, public static的用途什么的,希望大家给个相关教程看看.

4.下面着段代码
<?php
// 注意在 4.0.0-RC2 之前不存在 !== 运算符

if ($handle = opendir(''/path/to/files'')) {
    echo "Directory handle: $handlen";
    echo "Files:n";

    /* 这是正确地遍历目录方法 */
    while (false !== ($file = readdir($handle))) {
        echo "$filen";
    }

    closedir($handle);
}
?>


为什么false !==这里用!==而不用!=  ?


5.今天让我完成的那个类文件最后没有?>,   这样有什么意义么?

 

我的回复如下:

做为资深面试官解答如下:
1.通常在大型程序中,对引用的深入理解与处理影响到相关代码的执行效率问题,不正确处理引用会使程序效率低 35%以上,如关联程序过多,会更慢.那么什么是引用呢?要明白引用首先你得先明白什么是变量?$name="jiania",这里的$name就是变量,如果$username=&$name,那么我们就说变量$username与变量$name指向同一个对象,就是jiania,也就是说他们指向同一个地方.在function或是OO中,又有点需要注意的
举例:
环境:php5.1.6起
$powman=new jiania();
注意new jiania()前面并没有&,如果加了会出现错误,因为在高版本中,这里的引用交给Zend 引擎来处理,它对这个进行了限制.

b.如果在一个函数内部给一个声明为 global 的变量赋于一个引用,该引用只在函数内部可见。可以通过使用 $GLOBALS 数组避免这一点。
c.复杂数组最好拷贝而不是引用。
d.$this ,在一个对象的方法中,$this 永远是调用它的对象的引用。
2.其实楼主面试不知是什么层次的程序员,php有关接口在现实中很少程序员真正使用到。当然现在玩框架的人例外.我本身是一名JAVA程序员,从05开发PHP框架起,在接口上有一些理解。现讲解一下。
如果你要明白接口,首先你得明白什么叫对象,那什么是对象呢?万物皆对象,把所有的东西当成对象,比如我的名字叫洪建家,我孩子的名字叫小家家,这里的名字就是对象,洪建家与小家家都是人,这就是类,OK,明白了什么是类与对象,接下来我跟你讲讲什么是抽像类,现实中我们常会描述一些对象,但却没有具体的实现方法,这样的类就是抽象类,比如
abstract class CallMe{
        abstract function showMe();
              
}
class Callson extends CallMe {
    function showMe{
        print "Callson::showMe()n";
    }
}
这里的CallMe就是抽像类,抽像类只能通过子类来具体实现。OK,明白了什么叫抽像类,我们下面再来讲解什么是接口。
对于初学者,你可以理解接口(interface)是抽象类的变体。可能会有一些刚接触OO的人会问,那为何还需要区别什么是接口,什么是抽像类,答接口是用于实现多重继承。以下是一个接口的简单演示,注意实现任何接口必需用implements关键字

<

控制 php 类的实例化次数!为了保证服务器资源的有效利用,而且一个类比方说模板啊,数据库什么的,在一个页面内只需要实例化一次!也就是在内存中只运行一个实例!那么为了避免重复实例化,那么控制 php 类的实例化次数,是很有必要的!方法其实很简单:就是给类一个外部接口,私有化(private)构造函数,抛弃可以在类外部使用new实例化该类的方法!以下,就是我给出的一个例子,相信大家一看就明白了!( PHP5 以上版本! )

<?php
class test{
   const name = ''test'';
   public static $havenew = false;
   public $name = ''我被限制为只能实例化一次了!'';
   private function __construct(){
  
   }
   function __destruct(){
    self::$havenew = false;
   }
   public function inter(){
    if(self::$havenew){
     echo ''类 ''.self::name.'' 已被实例化!'';
     return NULL;
    }else{
     self::$havenew = true;
     return new self;
    }
   }
}
$class1 = test::inter();
var_dump($class1);
echo ''<br />'';
$class2 = test::inter();
var_dump($class2);
?>

这里都是实例通过test里inter()这个方法实例化对象的!因为构造本身不可以直接访问,所以也不存在可以使用new 来实例化!

标签:[!--infotagslink--]