1. Extract函数用法
如:
<?php
/* 假定 $var_array 是 wddx_deserialize 返回的数组*/
$size = “large”;
$var_array = array(”color” => “blue”,
“size” => “medium”,
“shape” => “sphere”);
extract($var_array, EXTR_PREFIX_SAME, “wddx”);
echo “$color, $size, $shape, $wddx_size\n”;
?>
上例将输出:
blue, large, sphere, medium
$size 没有被覆盖,因为指定了 EXTR_PREFIX_SAME,这使得 $wddx_size 被建立。如果指定了 EXTR_SKIP,则$wddx_size 也不会被建立。EXTR_OVERWRITE 将使 $size 的值为“medium”,EXTR_PREFIX_ALL 将建立新变量$wddx_color,$wddx_size 和 $wddx_shape。
如果不指定EXTR_PREFIX_SAME,那么则最新通过extract拆解的size将替换之前的变量,如:
<?php$a = 'Original';$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");extract($my_array);echo "\$a = $a; \$b = $b; \$c = $c";?>输出:
$a = Cat; $b = Dog; $c = Horse
2. Require错误
Warning: require(service/service.php) [function.require]: failed to open stream: No such file or directory in D:\php_project\recommand\view\recommand_goods.phpon line 2
Fatal error: require() [function.require]: Failed opening required 'service/service.php' (include_path='.;C:\php5\pear') inD:\php_project\recommand\view\recommand_goods.php on line
这是由于require相对路径引起找不到文件的,改为绝对路径,或者能够让其找到文件的相对路径也可以
3. Php 全局变量函数内引用
在php中声明了全局变量,然后再函数中引用,首先用global
去声明全局变量后,然后再函数内调用即可,例:
<?php
$product_url="http://xxxxx/product/";
function generate_current_goods($current_goods){
global $product_url,$aaa;
echo $product_url;
}
4. Php array key value 用法
$test=array();
//写值
$test[“a”]=”aa”;
//取值
echo $test[“a”];
5. php redis
$redis=new Redis();
$redis->connect('127.0.0.1', 6379);
//key是redis 的key 获取redis的字符串信息
$redis->get(key);
//获取hash值
$goods_array=$redis->hGetAll(key);
//从goods_array从redis中获取一个array,然后获取其key值
echo $goods_array[key];
注:
如果为hash方式通过字符串获取会出问题,会报key值不存在,这点需要注意
6. Php 格式化数字
Php 格式化数字
echo number_format("1000000",2);
约束该数字后小数点2位
7. Php 判断array 是否存在
Php判断array 是否存在用null判断
If($a == NULL)
echo “test”
8. php读数据库乱码解决方法
iconv('GB2312','UTF-8',$data)
9. php redis 用hMset设置array缓存注意事项
$goods=array("wid"=>$goods_id,"wname"=>$row["Wname"],"wimageurl"=>$row["ImageUrl"],"wmaprice"=>$row["WMaprice"],"goods_current_price"=>$goods_current_price);
$redis->hMset("d_$goods_id", $goods) ;
Redis如果要用redis hMset注入array缓存,那么需要用array(“xx”=>xxx)这样的方式,不能用
$a=array();
$a[‘a’]=”aa”;
这样的方式
10. Php redis不能用r_xx做Key
Redis不能用r_xxx做key ,r_可能是redis的关键字
11. 安装php报 iconv错误解决方法
Make php 时报出如下错误:
ext/iconv/.libs/iconv.o(.text+0x1738): In function `zif_iconv_mime_encode':
/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1017: undefined reference to `libiconv_open'
ext/iconv/.libs/iconv.o(.text+0x1756):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1031: undefined reference to `libiconv_open'
ext/iconv/.libs/iconv.o(.text+0x1993):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1290: undefined reference to `libiconv_close'
ext/iconv/.libs/iconv.o(.text+0x19ad):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1293: undefined reference to `libiconv_close'
ext/iconv/.libs/iconv.o(.text+0x1b01):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1102: undefined reference to `libiconv'
ext/iconv/.libs/iconv.o(.text+0x1b33):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1134: undefined reference to `libiconv'
ext/iconv/.libs/iconv.o(.text+0x1b5e):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1150: undefined reference to `libiconv'
ext/iconv/.libs/iconv.o(.text+0x1e10):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1202: undefined reference to `libiconv'
ext/iconv/.libs/iconv.o(.text+0x1e3c):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1233: undefined reference to `libiconv'
ext/iconv/.libs/iconv.o(.text+0x207f):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1277: more undefined references to `libiconv' follow
解决方法:
#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
#tar -zxvf libiconv-1.13.1.tar.gz
#cd libiconv-1.13.1
# ./configure --prefix=/usr/local/libiconv
# make
# make install
然后将php 的configure --with-iconv=/usr/local/libicon配置上iconv路径就可以了
12. Php实现iterator
class myIterator implements Iterator
{
//索引游标
private $position = 0;
private $array = array(
"第1个元素",
"第2个元素",
"最后1个元素",
);
public function __construct()
{
$this->position = 0;
}
function rewind()
{
echo "调用rewind方法\n";
$this->position = 0;
}
function current()
{
echo "调用current方法\n";
return $this->array[$this->position];
}
function key()
{
echo "调用key方法\n";
return $this->position;
}
function next()
{
echo "调用next方法\n";
++$this->position;
}
function valid()
{
echo "调用valid方法\n";
return isset($this->array[$this->position]);
}
}
$it = new myIterator;
$times = 0;
foreach ($it as $key => $value) {
$times ++;
echo "键名:{$key} 值:{$value}\n";
echo "----------第{$times}遍历完成--------->\n";
}
执行结果:
调用rewind方法
调用valid方法
调用current方法
调用key方法
键名:0 值:第1个元素
----------第1遍历完成--------->
调用next方法
调用valid方法
调用current方法
调用key方法
键名:1 值:第2个元素
----------第2遍历完成--------->
调用next方法
调用valid方法
调用current方法
调用key方法
键名:2 值:最后1个元素
----------第3遍历完成--------->
调用next方法
调用valid方法
Iterator调用顺序:
首次调用:
调用rewind方法
调用valid方法
如果为空则不继续调用,如果不为空继续调用
调用current方法
调用key方法
调用next方法
调用valid方法
13. 安装php报mysql错误
checking for mysql_close in -lmysqlclient... no
checking for mysql_error in -lmysqlclient... no
configure: error: mysql configure failed. Please check config.log for more information
这是因为在./configure时
'--with-mysql=/export/tools/mysql-5.1.54-linux-x86_64-glibc23'这种写法是错误的,
'--with-mysql-dir=/export/tools/mysql-5.1.54-linux-x86_64-glibc23'
需要用这种写法--with-mysql-dir切记
14. Php 编译错误lltdl错误解决方法
/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [sapi/fpm/php-fpm] Error 1
如果报了上述错误,那么进入到xxx/libmcrypt-2.5.8/libltdl下
然后执行
./configure -enable-ltdl-install
make
Make install
然后再编译php就没有问题了
15. Gd2总结
imagesx ( $img ) 获取图像宽度
imagesy ( $img ) 获取图像高度
这2个函数需要联合使用
imagealphablending ( $img, false );
imagesavealpha ( $img, true );
16. Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /export/data/www/xxxx/web/test_gd2_1.php on line 2
当php报这个错误时:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /export/data/www/xxxx/web/test_gd2_1.php on line 2
说明第二行有语法问题
17. iconv_substr函数
iconv_substr函数utf-8不支持中文,gbk支持中文
18. 正则/x7f-/xff
[a-zA-Z_/x7f-/xff]
上面表示是字母、下划线、和127-255之间的特殊字符
/x是16进制
/x7f-/xff对应的就是ascii 码表的127-255的特殊字符
19. Php 可选参数
<?php
function test($a,$b="2",$c="3"){
echo $a."|".$b."|".$c;
}
test("1");
?>
如果要用php 可选参数,需要在函数后面加入初值
20. Fatal error: Cannot access empty property 解决方法
当抛出这个额问题时:
Fatal error: Cannot access empty property in /export/data/www/test/read_source/infertype_test.php on line 7
查找到第7行
echo $c_test->$a."\n";
完全代码:
class Test{
public $a=11;
static $b=2;
}
$c_test=new Test();
echo $c_test->a."\n";
这里调用
$c_test->$a,所以会出错误,把$去掉即可如:echo $c_test->a."\n";(红色为正确的)
21. Redis 扩展和使用方法
Redis 扩展安装方法:
首先解压phpredis.tar.gz
$PHP_HOME:php安装目录如:/expert/servers/ php-5.3.5
在解压后的phpredis目录下执行:
$PHP_HOME/bin/phpize
生成redis 扩展的configure文件
然后执行
./configure --enable-redis --with-php-config=$PHP_HOME/bin/php-config
执行该命令后,生成redis 的扩展在php安装目录下,如:
$PHP_HOME /lib/php/extensions/no-debug-non-zts-20090626/redis.so
生成好redis.so后,在$PHP_HOME/etc/php.ini 下添加
extension=redis.so
这样redis扩展就添加到php中了
Redis php 使用方法:
http://www.cnblogs.com/weafer/archive/2011/09/21/2184059.html
http://seared2008.blog.51cto.com/2786540/841332
22. 解决php的It is not safe to rely on the system's timezone settings…
解决办法,在php.ini里加上
date.timezone = "Asia/Shanghai"
详细参见:
http://www.2cto.com/os/201210/158970.html
23. soap demo no-wsdl
一、服务端-soapserver.php
<?php
function add($a, $b)
{
return $a+$b;
}
function test($str)
{
return $str;
}
$server = new SoapServer(null, array('uri' => 'http://localhost/'));
//$server->addFunction("add");
//$server->addFunction("test");
$server->addFunction(array('add', 'test'));
$server->addFunction(SOAP_FUNCTIONS_ALL);
$server->handle();
?>
二、客户端-soapclient.php
<?php
$arr_options = array('uri' => 'http://localhost/', 'location' => 'http://localhost/myprojects/soapserver.php', 'trace' => true);
$soap = new SoapClient(null, $arr_options);
echo $soap->add(20, 30);
echo $soap->test('caleng');
参照:
http://blog.csdn.net/caleng/article/details/5427048
24. Fatal error: Call to undefined function getName()错误解决方法
Fatal error: Call to undefined function getName() in /export/data/www/test/test_ext/soap/test_wsdl_class_client.php on line 9
造成这样的问题,有这么几种:
1. getName()本身不存在,所以调用出错
2. getName()存在,但是调用方式出了问题,如:$a->getName()正确,但是却写成了$a.getName()或者中间的调用出现了其他的错误,所以需要检查,正确的为->
25. eclise 设计wsdl
File->other->web service
然后选择wsdl ,点击next
选择存放位置和名称,点击next
Target namespace是web service 的uri,这里需要填写好;
然后点击finish
创建后生成如下内容:
图1:这里是完整的web service的地址,如:
http://192.168.12.63:8082/soap/test_wsdl_server.php
图2:这里的add是方法,input的是传入的参数;output是返回值;然后左边的是名称,右侧是类型
绘制内容:
1. 添加service
右键空白处,点击add service,service 相当于类
Service样式:
2. 添加binding
右键空白处,点击add Binding
点击后生成
生成binding 的operation代码,右键binding ,然后点击Generate Binding Content则生成bingding中的operation的代码:
生成代码如:
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="add">
<soap:operation soapAction="http://192.168.12.63:8082/soap/add"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
……..
</wsdl:binding>
当创建新的operation需要生成operation才可以创建
3. 添加porttype
右键空白处,选择Add porttype
然后生成portType,如:
这就是一个portType,一个portType 相当于一个方法集合
4. 添加operation
Operation相当于函数或者方法,右键
5. 添加part
一个part相当于一个参数或者变量,可以定义参数的名称和返回的类型
右键一个portType
6. 添加fault
右键一个portType
点击add fault
7. 添加和设置message
右键一个portType
一个message相当于input和output这样的,点击set message可以进行new message和选择exsiting message
代码结构:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://192.168.12.63:8082/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="test" targetNamespace="http://192.168.12.63:8082/soap/">
<wsdl:types>
<xsd:schema targetNamespace="http://192.168.12.63:8082/soap/">
<xsd:element name="add">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="addResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="out" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<!—这里的message的名字可以设定,这里的message相当于input和output,其中包括了参数和其返回值-->
<wsdl:message name="addRequest">
<!—part 就是参数,name是参数名称 type是类型,一个message中可以包含多个part-- >
<wsdl:part name="a" type="xsd:int"/>
<wsdl:part name="b" type="xsd:int"></wsdl:part>
</wsdl:message>
<wsdl:message name="addResponse">
<wsdl:part name="returnadd" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="test_input1">
<wsdl:part name="str" type="xsd:string"></wsdl:part>
</wsdl:message>
<wsdl:message name="test_out_1">
<wsdl:part name="returnstr" type="xsd:string"></wsdl:part>
</wsdl:message>
<!—这个是portType的标识-->
<wsdl:portType name="test">
<!—这里是operation的声明块,名字是方法名称,然后其中的input是输入,也就是传入的参数,message是上面声明好的message,然后output是返回值,引用上面声明好的message-->
<wsdl:operation name="add">
<wsdl:input message="tns:addRequest"/>
<wsdl:output message="tns:addResponse"/>
</wsdl:operation>
<wsdl:operation name="test">
<wsdl:input message="tns:test_input1"></wsdl:input>
<wsdl:output message="tns:test_out_1"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<!—这里声明的是binding的内容 type是portType-- >
<wsdl:binding name="testSOAP" type="tns:test">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<!—这里是binding中的方法(operation) -- >
<wsdl:operation name="add">
<soap:operation soapAction="http://192.168.12.63:8082/soap/add"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="test">
<soap:operation soapAction="http://192.168.12.63:8082/soap/test"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<!—这里定义的是service 的内容-->
<wsdl:service name="test">
<wsdl:port binding="tns:testSOAP" name="testSOAP">
<soap:address location="http://192.168.12.63:8082/soap/test_wsdl_server.php"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
26. Soap demo wsdl 模式
Function soap实现:
Server:
<?php
//wsdl不缓存
ini_set("soap.wsdl_cache_enabled", "0");
//实现方法
function add($a, $b)
{
return $a+$b;
}
function test($str)
{
return $str;
}
//加载模板
$server = new SoapServer('test.wsdl');
//将函数添加到server中
$server->addFunction(array('add', 'test'));
//添加handle
$server->handle();
//遍历server中的方法进行读取
$functions = $server->getFunctions();
foreach($functions as $func) {
echo $func . "\n";
}
?>
Client:
<?php
ini_set("soap.wsdl_cache_enabled", "0");
//创建soapClient对象,加载wsdl
$soap = new SoapClient('http://192.168.12.63:8082/soap/test.wsdl');
//读取soap中的存在的方法
print_r($soap->__getFunctions());
//调用方法
echo $soap->add(13,22);
echo $soap->test("aaa");
?>
Soap类实现:
Server:
<?php
ini_set("soap.wsdl_cache_enabled", "0");
class test_class{
function getName($name){
return $name;
}
function __construct()
{
echo "aaaaaaaaaaaaa";
}
}
$server = new SoapServer('test_class.wsdl');
//与function的区别就在于,声明好的类,这里设置上类名即可
$server->setClass("test_class");
$server->handle();
$functions = $server->getFunctions();
foreach($functions as $func) {
echo $func . "\n";
}
?>
Client:
<?php
ini_set("soap.wsdl_cache_enabled", "0");
$soap = new SoapClient('http://192.168.12.63:8082/soap/test_class.wsdl');
print_r($soap->__getFunctions());
/*server中的类的函数直接加载进来了,一般来说soap中的一个wsdl就是一个类的概念
所以这里创建client后,然后直接调用方法即可
*/
echo $soap->getName("testName");
?>
27. 设置wsdl缓存
ini_set("soap.wsdl_cache_enabled", "0");
28. phpinfo 无法显示问题解决
配置php.ini文件
disable_functions = passthru, exec, phpinfo, system, ini_alter, readlink, symlink, leak, proc_open, popepassthru, chroot, scandir, chgrp, chown, escapeshellcmd, escapeshellarg, shell_exec, proc_get_status
这一句中去掉phpinfo
去掉phpinfo后就可以显示phpinfo了
29. call_user_func_array()
例子:
<?php
function foobar($arg, $arg2) {
echo __FUNCTION__, " got $arg and $arg2\n";
}
class foo {
function bar($arg, $arg2) {
echo __METHOD__, " got $arg and $arg2\n";
}
}
// Call the foobar() function with 2 arguments
call_user_func_array("foobar", array("one", "two"));
// Call the $foo->bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
?>
call_user_func_array详解
第一参数是函数名或array(对象,方法)
第二个参数是参数集合
30. 安装mssql 扩展
./configure --with-php-config=/export/servers/php-5.3.5/bin/php-config --with-mssql=/export/servers/freetds
然后make –j 16
报了如下错误:
In file included from /export/software/php/php-5.3.5/ext/mssql/php_mssql.c:33:
/export/software/php/php-5.3.5/ext/mssql/php_mssql.h:67: error: redefinition of typedef 'LPBYTE'
/export/servers/freetds/include/sqlfront.h:35: note: previous declaration of 'LPBYTE' was here
/export/software/php/php-5.3.5/ext/mssql/php_mssql.c: In function 'php_mssql_do_connect':
/export/software/php/php-5.3.5/ext/mssql/php_mssql.c:760: warning: cast from pointer to integer of different size
/export/software/php/php-5.3.5/ext/mssql/php_mssql.c: In function 'php_mssql_get_column_content_without_type':
/export/software/php/php-5.3.5/ext/mssql/php_mssql.c:1113: warning: passing argument 1 of 'spprintf' from incompatible pointer type
/export/servers/php-5.3.5/include/php/main/spprintf.h:40: note: expected 'char **' but argument is of type 'unsigned char **'
Php 扩展和freetds都定义了LPBYTE类型
Freetds是在sqlfront.h:35定义的
Php_ext是在php_mssql.h:67定义的
所以php_ext中重复定义了
我们注释掉php_mssql.h:67行的LPBYTE类型即可
然后再编译就没有问题了
Make
Make install
编译完成后,我们在php.ini中加入mssql.so即可
31. 获取的php不加转义符
magic_quotes_gpc=Off
magic_quotes_runtime=Off
magic_quotes_sybase=Off
在php.ini中配置,如果不配置,会出现转义符/
32. Php 关闭安全模式
当php报了如下错误时:
Warning: require() [function.require]: SAFE MODE Restriction in effect. The script whose uid is 502 is not allowed to access /export/data/www/club_ice_lib/Ice.php owned by uid 506 in/export/data/www/test/thinkphp_test/ThinkPHP_3.0_Full/Examples/Hello/Lib/Action/IndexAction.class.php on line 10
Php 默认开启安全模式
去php.ini中将
safe_mode = Off
设置为关闭,重启即可
或者给提示无法访问的目录分配用户权限也可以
33. Unset销毁对象
Php中的unset函数是用于销毁对象的;
例:
$a=new A();
Unset($a);
$a=null;
也会销毁对象
也就是销毁对象有2种:null和unset
34. Php文件操作
$f1=fopen("logs/test_file.log","a");
if(!$f1){
echo "file don't exists";
exit;
}
fwrite($f1,"test!");
fclose($f1);
参考:
http://blog.sina.com.cn/s/blog_55f6ef710100l3jl.html
35. 获取引用的所有文件
print_r(get_included_files());
36. create_function 用法(匿名函数)
$newfunc = create_function('$a,$b,$c', 'return $a.$b.$c;');
echo "New anonymous function: $newfunc\n";
echo $newfunc(2, 3,"aaa") . "\n";
create_function(传入参数,执行代码)
传入参数如:
$a,$b,$c,这个就是类似function a($a,$b,$c)
执行代码:
'return $a.$b.$c;',这里也可以任意写为’echo aaa;’
然后创建好匿名函数后,赋值给$newfunc
在下面通过$newfunc(2,3,”aaa”)这样调用,括号内是传入参数,有别于普通的函数普通函数前不需要加$,这里执行的匿名函数是赋值给了 一个变量,这里需要注意
create_function 伪造主函数内容
create_function实现过程:
<?php
function __lambda_func(替换参数位置){
替换语句位置
}
如果create_function 如下实现:
create_function('', '} echo "hi"; if (0) {');
参数为空:
那么替换参数位置不需要替换;
然后替换语句位置替换为:} echo "hi"; if (0) {
最终拼接后的语句为:
<?php
function __lambda_func(){
}
echo "hi";
if(0){
}
这样其实echo “hi”;就形成了一个伪造主函数;
Hhvm中需要通过:
invokeFunc(&retval, unit->getMain(), Array::Create());
调用一次主函数进行调用(目前存在泄露)
正常替换过程为:
(1) 替换参数
(2) 替换内容
(3) 替换__lambda_func为对象名
37. Warning: Cannot modify header information - headers already sent by (output
当PHP报如下错误时:
Warning: Cannot modify header information - headers already sent by (output started at /export/data/www/test/test_ext/iconv/test_iconv.php:1) in /export/data/www/test/test_ext/iconv/test_iconv.php on line 3
设置php.ini
output_buffering=on
重启php即可
38. Php json使用
<?php
class myClass {
public $item1 = 1;
public $item2 = 'aa';
}
$c = new myClass();
echo json_encode($c);
?>
39. Array加入栈
$a=array();
array_push($a,”aaa”);
40. ldap 扩展安装
cd php-5.3.5/ext/ldap
./configure --with-php-config=/export/servers/php-5.3.5/bin/php-config
报了如下错误;
configure: error: Cannot find ldap libraries in /usr/lib.
这是由于默认是查找的/usr/lib 而ldap的包是在/usr/lib64下
./configure --with-php-config=/export/servers/php-5.3.5/bin/php-config --with-ldap --with-libdir=lib64/
通过--with-ldap --with-libdir=lib64 指定到lib64下即可(因为默认前面已经加上了/usr/….)
然后运行configure成功
相关推荐
B2C电商项目总结与开发过程
总结,PHP-Java-Bridge提供了一种强大而灵活的方式,让PHP开发者能够利用Java的强大功能。尽管集成和使用需要一定的学习曲线,但一旦掌握,它将成为开发工具箱中的重要一环,极大地拓展了PHP的应用领域。
标题 "php-5.5.38-Win32-VC11-x64" 提供的信息表明,这是PHP的一个特定版本,适用于Windows操作系统,基于Visual C++ 11编译器构建,并且是为64位(x64)架构优化的。PHP是一种广泛使用的开源服务器端脚本语言,特别...
总结,`php-js-ext 0.1.2`扩展为PHP 5.3.3环境提供了便捷的PHP与JavaScript交互功能,简化了开发者的工作,提高了开发效率。在实际开发中,根据项目的具体需求,灵活运用此扩展,可以显著提升前后端协作的效率和用户...
总结来说,"php-7.4.7-Win32-vc15-x64.zip"提供了在Windows上运行PHP7.4.7所需的组件,支持64位系统和线程安全,包含OpenSSL、SQLite3等关键库,以及PHP调试工具。通过与Apache等Web服务器配合,可以构建高效稳定的...
标题 "php-5.5.10-Win32-VC11-x64.zip" 指的是一个针对Windows 64位系统的PHP版本,具体是PHP 5.5.10。这个版本是由Visual C++ 11编译器(VC11)构建的,这意味着它依赖于VC11的运行时库来正常运行。这个版本的PHP...
总结来说,这个PHP伪原创程序是一款实用的工具,它利用同义词替换技术帮助用户生成独特的内容,适用于需要频繁更新原创内容的网站。配合强大的同义词库和后台管理系统,以及SEO相关的文件,能够有效地支持网站的SEO...
标题“php-7.1.10-Win32-VC14-x64”指的是PHP的一个特定版本,这是PHP的7.1.10稳定版,为Windows 64位系统编译,使用Visual C++ 14(即Visual Studio 2015)进行编译。这个版本是专门为在Windows环境下运行而设计的...
总结来说,"php-7.0.28-Win32-VC14-x64"是一个针对Windows系统的PHP 7.0.28版本,包括了PHP核心、线程安全支持、OpenSSL库、Unicode处理库以及调试工具。这个压缩包为开发者提供了一个完整的运行和调试环境,方便在...
- PHP:下载php-5.3.28-Win32-VC9-x86.msi和对应的zip包 - MySQL:安装mysql-installer-web-community-5.6.17.0.msi - 配置文件编辑器:推荐Notepad++ (npp.6.6.4.Installer.exe) - 开发工具:如Zend Studio、...
总结来说,"php-5.3.2-Win32-VC9-x86.rar"是一个用于Windows 32位系统的PHP版本,包含了使用VC9编译器构建的PHP 5.3.2,而"php-5.3.2-Win32-VC9-x86.msi"则是该版本的安装程序,帮助用户在Windows环境中轻松安装并...
总结来说,这个压缩包提供了一个适用于PHP 7非线程安全版本、64位系统且由VC++ 14编译的Memcache扩展DLL。对于那些希望在PHP 7环境中利用Memcache功能的开发者来说,这是一个非常有价值的资源,特别是因为兼容的...
标题“php-5.3.17-nts-Win32-VC9-x86”表明这是一款基于Windows 32位系统、采用Visual C++ 9编译器(VC9)构建的非线程安全(NTS)版本的PHP 5.3.17。在Windows环境下,PHP的线程安全选项主要关乎是否支持多线程执行...
标题 "php-5.6.14-Win32-VC11-x64.zip" 指示的是一个PHP的Windows x64版本的压缩包,基于PHP 5.6.14版本,该版本是由Visual C++ 11(VC11)编译器构建的。这个压缩包主要包含运行PHP所需的各种组件和配置文件,适用...
标题中的"ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz"是一个特定版本的 ZendGuardLoader 的软件包,专为 PHP 5.4 构建,适用于基于 Linux 的系统,且依赖于 glibc 2.3 库,支持 x86_64(64位)架构...
标题“php-5.3.28-Win32-VC9-x64”表明这是一个专为64位Windows系统设计的PHP版本,版本号为5.3.28,且是基于Visual C++ 9(VC9)编译器构建的。在IT领域,PHP是一种广泛使用的开源服务器端脚本语言,特别适用于Web...
【标题】"php-5.5.11-nts-Win32-VC11-x86.zip"指的是PHP的一个特定版本,适用于Windows 32位操作系统。此版本是5.5.11,不包含线程安全(Non-Thread Safe,简称NTS),并且是由Visual C++ 11(Visual Studio 2012)...
总结一下,"php_redis-php7.2-nts-vc15-x86"是一个专为PHP 7.2、非线程安全环境、32位Windows系统设计的Redis扩展,通过它,开发者可以充分利用Redis的强大功能,实现高效的数据存储和检索,以及快速的缓存操作。...
3. **配置PHP-FPM**:启用FastCGI进程管理器,编辑 `/etc/php/php-fpm.conf` 和 `/etc/php/fpm/pool.d/www.conf`,设置监听端口和用户组等。 4. **启动服务**:`sudo /usr/local/php/sbin/php-fpm`,并添加到开机...