标签归档:php

解决运行php composer出现SSL报错的问题

c:\>php -f %phprc%\composer install
Loading composer repositories with package information

  [Composer\Downloader\TransportException]
  The "https://packagist.org/packages.json" file could not be downloaded: SSL
   operation failed with code 1. OpenSSL Error messages:
  error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify
  failed
  Failed to enable crypto
  failed to open stream: operation failed

install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-p
lugins] [--no-custom-installers] [--no-scripts] [--no-progress] [-v|vv|vvv|--ver
bose] [-o|--optimize-autoloader]

没有安装CA证书导致的,CA证书下载地址:

http://curl.haxx.se/docs/caextract.html

然后修改php.ini文件

openssl.cafile= D:/xampp/php/verify/cacert.pem

问题解决。

PHP 连接 SQLServer2005/2008/2012/2014(For Win)

PHP连接SQLServer2005/2008或以后版本数据库与以往的连接SQLServer2000是不一样的,需要自己添加PHP对SQLServer连接的驱动扩展。

(php.ini中的extension=php_mssql.dll扩展只适用连接于SQLServer2000)

1、微软官网下载一个SQLServer Driver for PHP的扩展包。下载地址
2、安装解压缩,解压出来一堆DLL文件,全部放到php\ext目录下
3、在php.ini的Dynamic Extensions中添加如下两条扩展:

    extension=php_sqlsrv_56_ts.dll
    extension=php_pdo_sqlsrv_56_ts.dll

4、重启apache
5、测试代码

<?php
  $servern="SFKFK27EL8FJ\SQLTRY";
  $coninfo=array("Database"=>"db address","UID"=>"sa","PWD"=>"123456");
  $conn=sqlsrv_connect($servern,$coninfo) or die ("连接失败!");
  $val=sqlsrv_query($conn,"select * from usertable");
  while($row=sqlsrv_fetch_array($val)){
    echo $row[1]."<br />";
  }
  sqlsrv_close($conn);
?>

Mac OS X 上用 Homebrew 安装 Nginx + PHP-FPM + MySQL + MsSQL + phpMyAdmin

Mac OS X 是一个非常不错的PHP开发环境,如果还在上面跑虚机做PHP,那么就太可惜了。
以前没用homebrew安装,一直磕磕碰碰,直到遇见它,一切变得如此的简单。对于我这些有洁癖的完美主义者来说,实在是一个福音。
(本文适用于Mac OS X 10.9 Mavericks 和 10.10 Yosemite)

1. Xcode

首先从app store下载,并安装xcode。

xcode-select --install

继续阅读

左右值无限分类实现算法

一、引言

产品分类,多级的树状结构的论坛,邮件列表等许多地方我们都会遇到这样的问题:如何存储多级结构的数据?在PHP的应用中,提供后台数据存储的通常是关系型数据库,它能够保存大量的数据,提供高效的数据检索和更新服务。然而关系型数据的基本形式是纵横交错的表,是一个平面的结构,如果要将多级树状结构存储在关系型数据库里就需要进行合理的翻译工作。接下来我会将自己的所见所闻和一些实用的经验和大家探讨一下:
层级结构的数据保存在平面的数据库中基本上有两种常用设计方法:

  • 毗邻目录模式(adjacency list model)
  • 预排序遍历树算法(modified preorder tree traversal algorithm)

继续阅读

CentOS PHP 5.2.x 链接Oracle数据库

1、下载Oracle即时客户端程序包 — Basic: 运行 OCI、OCCI 和 JDBC-OCI 应用程序所需的所有文件

①、打开以下网址(本文以32位版为例):
http://www.oracle.com/technetwork/topics/linuxsoft-082809.html

②、下载以下几个文件:
oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm
oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm
oracle-instantclient11.2-sqlplus-11.2.0.2.0.i386.rpm

2、安装Oracle即时客户端程序包

rpm -ivh oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm oracle-instantclient11.2-sqlplus-11.2.0.2.0.i386.rpm
echo "/usr/lib/oracle/11.1/client/lib/" > /etc/ld.so.conf.d/oracle_client.conf
/sbin/ldconfig

3、安装OCI8 PHP扩展(使用PHP自带的OCI8,假设PHP程序安装在/usr/local/webserver/php/)

yum install libaio
wget http://pecl.php.net/get/oci8-1.4.4.tgz
cd oci8-1.4.4/
/usr/local/webserver/php/bin/phpize CFLAGS="-I/usr/include/oracle/11.2/client/" CXXFLAGS="-I/usr/include/oracle/11.2/client/"
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-oci8=/usr/lib/oracle/11.2/client/
make
make install

make oci8出错的话,用这个编译试试

./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-oci8=instantclient,/usr/lib/oracle/11.2/client/lib/

4、修改PHP配置文件(/usr/local/webserver/php/etc/php.ini)
在extension_dir = “/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/”后增加一行:

extension = "oci8.so"

5、重启PHP

6、创建一个phpinfo.php文件(内容如下)并通过Web访问,如果有“oci8”这一项,则表明安装成功。

<?php
phpinfo();
?>