货币问答:php详解

贾华

PHP是如何执行代码解析过程的

就PHP语言来说,它也是一组符合一定规则的约定的指令。 在编程人员将自己的想法以php语言实现后,通过PHP的虚拟机(确切的来说应该是PHP的语言引擎Zend)将这些PHP指令转变成C语言 (可以理解为更底层的一种指令集)指令,而c语言又会转变成汇编语言, 最后汇编语言将根据处理器的规则转变成机器码执行。这是一个更高层次抽象的不断具体化,不断细化的过程。

推荐
不推荐
展开
收起
华凌

php中类的指向(->)详解

第一个->跟第二个是一个意思第一个$this是一个类实例第二个是$this->mysqli也是一个类实例,query方法是$this->mysqli这个类的内置方法。

推荐
不推荐
展开
收起
解布辽

如何在PHP中开启GD库支持详解

开启GD库是php中一个重要的参数,常用来处理图像,像图片的任何处理都需要GD库的支持,下面我来介绍各种系统中GD库的开启方法与命令,大家可参考。Windows下开启PHP的GD库支持找到php.ini,打开内容,找到:;extension=php_gd2.dll把最前面的分号“;”去掉,再保存即可,如果本来就没有分号,那就是已经开启了。Linux下开启PHP的GD库支持#开启GD库支持有以下几种方法##检测GD库是否安装命令php5 -m | grep -i gd或者php -i | grep -i --color gd##如未安装GD库,则为服务器安装,方法如下### 如果是源码安装,则加入参数--with-gd### 如果是debian系的linux系统,用apt-get安装,如下apt-get install php5-gd你看过后很简单吧以后不会可以向我一样经常到后盾人找找相关教材看看就会了,希望能帮到你,给个采纳吧谢谢(*´ω`*)

推荐
不推荐
展开
收起
万蹄踏尘

详解PHP中cookie和session的区别及cookie和session用法小结

一、区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能

考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、所以个人建议:

将登陆信息等重要信息存放为SESSION

其他信息如果需要保留,可以放在COOKIE中

二、用法小结:

1、cookie:

1)如何创建 cookie?

setcookie() 函数用于设置 cookie。setcookie(name, value, expire, path, domain);     //setcookie("user", "Alex Porter", time()+3600);

注释:setcookie() 函数必须位于 <html> 标签之前。

2)如何取回 Cookie 的值?

$_COOKIE 变量用于取回 cookie 的值。

使用 isset() 函数来确认是否已设置了 cookie:

3)如何删除 cookie?

当删除 cookie 时,您应当使过期日期变更为过去的时间点。//setcookie("user", "", time()-3600);

2、session:

1)如何创建 session?

session_start() 函数启动会话。

2)存储 Session 变量

$_SESSION 变量赋值

isset() 函数检测是否已设置

3)终结 Session

如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。注释:session_destroy() 将重置 session,您将失去所有已存储的 session 数据。

推荐
不推荐
展开
收起
司马隽

如何用C语言编写PHP扩展的详解

1:预定义在home目录,也可以其他任意目录,写一个文件,例如caleng_module.def内容是你希望定义的函数名以及参数:int a(int x,int y)string b(string str,int n)2:到php源码目录的ext目录#cd /usr/local/php-5.4.0/ext/执行命令,生成对应扩展目录#./ext_skel --extname=caleng_module --proto=/home/hm/caleng_module.def3:修改config.m4去掉dnl的注释

PHP_ARG_ENABLE(caleng_module, whether to enable caleng_module support,Make sure that the comment is aligned:[  --enable-caleng_module           Enable caleng_module support])4:修改caleng_module.c

代码如下:

/* {{{ proto int a(int x, int y)    */PHP_FUNCTION(a){ int argc = ZEND_NUM_ARGS(); int x; int y;    int z; if (zend_parse_parameters(argc TSRMLS_CC, "ll", &x, &y) == FAILURE)  return;z=x+y;  RETURN_LONG(z);}/* }}} *//* {{{ proto string b(string str, int n)    */PHP_FUNCTION(b){ char *str = NULL;    int argc = ZEND_NUM_ARGS();    int str_len;    long n;    char *result;    char *ptr;    int result_length;    if (zend_parse_parameters(argc TSRMLS_CC, "sl", &str, &str_len, &n) == FAILURE)        return;    result_length = str_len * n;    result = (char *) emalloc(result_length + 1);    ptr = result;    while (n--) {        memcpy(ptr, str, str_len);        ptr += str_len;    }    *ptr = '\0';    RETURN_STRINGL(result, result_length, 0);}/* }}} */

5:生成扩展库#cd ./caleng_module#/usr/local/php/bin/phpize#./configure --with-php-config=/usr/local/php/bin/php-config#make#make install

6:到php的对应extensions目录如上图所示#cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/改目录下有生成的caleng_module.so文件7:修改php.iniphp.ini如果找不到可以从phpinfo()打出的信息看到#cd /usr/local/php/lib/php.ini增加扩展信息extension=caleng_module.so 8:重启Apache# /usr/local/apache2/bin/apachectl restart9:检查加载 /usr/local/php/bin/php -m10:PHP调用

 代码如下:

echo a(1,2);

输出 3  就说明成功了!下面是原文Linux下用C开发PHP扩展一、首先下载PHP源码包,假设源码包目录为:/software/php-5.2.13 一、首先下载PHP源码包,假设源码包目录为:/software/php-5.2.13#> cd /software/php-5.2.13/ext二、假设我们要开发一个名为caleng_module的扩展,该扩展包含两个函数:a--处理两个整型相加和b-处理字符串重复输出;1、首先编写一个函数定义文件,该文件编写函数原型后缀为def,假设为:caleng_module.defint a(int x, int y)string b(string str, int n)2、通过扩展骨架生成器,将在ext目录下自动建立扩展目录caleng_module#> ./ext_skel --extname=caleng_module --proto=caleng_module.def3、修改配置文件: #> vim /software/php-5.2.13/ext/caleng_module/config.m4,将如下行的注释标签"dnl"去掉,修改后如下所示:PHP_ARG_ENABLE(myfunctions, whether to enable myfunctions support,Make sure that the comment is aligned:[  --enable-myfunctions           Enable myfunctions support])4、完善函数a和b的功能: #> vim /software/php-5.2.13/ext/caleng_module/caleng_module.cPHP_FUNCTION(a){    int x, y, z;    int argc = ZEND_NUM_ARGS();    if (zend_parse_parameters(argc TSRMLS_CC, "ll", &x, &y) == FAILURE)        return;    z = x + y;    RETURN_LONG(z);}PHP_FUNCTION(b){    char *str = NULL;    int argc = ZEND_NUM_ARGS();    int str_len;    long n;    char *result;    char *ptr;    int result_length;    if (zend_parse_parameters(argc TSRMLS_CC, "sl", &str, &str_len, &n) == FAILURE)        return;    result_length = str_len * n;    result = (char *) emalloc(result_length + 1);    ptr = result;    while (n--) {        memcpy(ptr, str, str_len);        ptr += str_len;    }    *ptr = '\0';    RETURN_STRINGL(result, result_length, 0);}三、编译安装,假设php的安装目录为:/usr/localhost/webserver/php#> cd /software/php-5.2.13/ext/caleng_module#> /usr/localhost/webserver/php/bin/phpize#> ./configure --with-php-config=/usr/localhost/webserver/php/bin/php-config#> make#> make install现在将在/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613目录下生成caleng_module.so文件在php.ini配置文件中加入: extension=caleng_module.so.

推荐
不推荐
展开
收起
张五

谁有《php网络编程技术详解》的电子书传给我一份啊!

>>>> http://download.csdn.net/detail/ljm123ok/7572175可以下载的。自己去下载吧。

推荐
不推荐
展开
收起
凯莉

php中trait定义用法和接口的区别详解

接口的约束是前置的是定义初始就必须实现的, 他可以约束方法的实现却无法约束方法的调用, trait 是一种后置的调用, 他已经实现了方法, 关键的是, 他只对调用了自身的类产生约束(废话一句), 而对没有调用自身的类不产生影响(再一句废话), 同时他是可复用的, 而且没有破坏 Spider 类自身的实现增加, Spider 还是那个 Spider.

推荐
不推荐
展开
收起
两妻时代

用php写一个开放平台,怎么写???谁会,请详解!!!

可以用PHP来开发开放平台,PhalApi Pro就是用PHP+MySQL来实现开放平台,并对外提供API接口的。

推荐
不推荐
展开
收起
万类

详解PHP中instanceof关键字及instanceof关键字有什么作用

使用这个关键字可以确定一个对象是类的实例、类的子类,还是实现了某个特定接口,并进行相应的操作。在某些情况下,希望确定某个类是否特定的类型,或者是否实现了特定的接口。instanceof操作完成这个任务。instanceof操作符检查三件事情:实例是否某个特定的类型,实例是否从某个特定的类型继承,实例或者他的任何祖先类是否实现了特定的接口,比如:(1)判断一个对象是否是某个类的实例,(2)判断一个对象是否实现了某个接口。第一种用法:<?php$obj = new A();if ($obj instanceof A) { echo 'A';}第二种用法: <?phpinterface ExampleInterface{ public function interfaceMethod(); } class ExampleClass implements ExampleInterface{ public function interfaceMethod() { return 'Hello World!'; } }$exampleInstance = new ExampleClass(); if($exampleInstance instanceof ExampleInterface){ echo 'Yes, it is'; }else{ echo 'No, it is not';}

推荐
不推荐
展开
收起
查看更多答案
收起