Windows 下的 PHP 扩展编程

 更新时间:2016年11月25日 16:12  点击:2053
PHP 尽管提供了大量有用的函数,但是在特殊情况下还可能需要进行扩展编程,比如大量的 PECL(PHP Extension Community Library)就是以扩展的形式提供的(动态链接库dll文件),它们比 PEAR 的运行效率要高很多。
    PHP 扩展是用 C 或 C++ 编写的,需要编译成动态连接库 dll 文件后在 PHP 环境下注册后才能使用。
    编写 PHP 扩展的软件要求:
      VC++6.0 或 VC++.NET 环境。
      PHP 的源代码,需要编译。
    如果不愿意编译 PHP 的源代码,可以再下载 PHP 的已经编译成功的二进制代码(就是我们部署 PHP 运行环境的那些文件包)。注意分别下载的源文件包和已编译包,它们的版本必须一致。

    过程:

    1,安装 VC++6.0,并选择把其可执行文件路径加入环境变量中,使在命令行环境任意路径下可以运行编译器。
    2,安装 PHP 运行环境,并与 IIS 正确集成在一起。假设使用的 PHP 版本为 5.2.5,下载 php-5.2.5-Win32.zip 二进制包和 php-5.2.5.tar.gz 源代码包。安装环境为 C:php-5.2.5-Win32。分别把源代码包和二进制包解压到该文件夹下。从 php.ini-recommended 拷贝生成一个 php.ini 文件。
    3,建立 C:php-5.2.5-Win32Release_TS 文件夹,拷贝 C:php-5.2.5-Win32devphp5ts.lib 文件到这里。
    4,进入 C:php-5.2.5-Win32ext 文件夹,运行命令:
      C:php-5.2.5-Win32ext>..php.exe ext_skel_win32.php --extname=myphpext
      Creating directory myphpext
      Creating basic files: config.m4 config.w32 .cvsignore myphpext.c php_myphpext.h
      CREDITS EXPERIMENTAL tests/001.phpt myphpext.php [done].

      To use your new extension, you will have to execute the following steps:

      1.  $ cd ..
      2.  $ vi ext/myphpext/config.m4
      3.  $ ./buildconf
      4.  $ ./configure --[with|enable]-myphpext
      5.  $ make
      6.  $ ./php -f ext/myphpext/myphpext.php
      7.  $ vi ext/myphpext/myphpext.c
      8.  $ make

      Repeat steps 3-6 until you are satisfied with ext/myphpext/config.m4 and
      step 6 confirms that your module is compiled into PHP. Then, start writing
      code and repeat the last two steps as often as necessary.

htmlspecialchars

将特殊字符转成 HTML 格式。

语法: string htmlspecialchars(string string);

返回值: 字符串

函数种类: 资料处理

 

 
内容说明

本函数将特殊字符转成 HTML 的字符串格式 ( &....; )。最常用到的场合可能就是处理客户留言的留言版了。

 

  • & (和) 转成 &
  • " (双引号) 转成 "
  • < (小于) 转成 &lt;
  • > (大于) 转成 &gt;

此函数只转换上面的特殊字符,并不会全部转换成 HTML 所定的 ASCII 转换。

 

 
使用范例

这是 aulbach@unter.franken.de (27-Jan-1999) 所提供的范例

<FORM ACTION=bla>
<H2>Restaurant Description<H2>
Name of restaurant:
<INPUT TYPE=text NAME="restname" VALUE="<?
     
echo HTMLSpecialChars($restname); ?>"> 
<!-- 变量 $restname 是酱子的 $restname=""The Whit
1、WSF/PHP【WSO2 Web Services Framework for PHP】 是WSO2.ORG提供的专门针对PHP调用Web Service的一个优秀框架,使用非常简单;但是WSO2不仅仅提供针对PHP的ws框架,而且还对其他很多中语言提供开发框架,比如基于Spring、Perl、Ruby……,除此之外还提供很多其他框架和培训服务,具体可查询wso2.org和wso2.com;
2、WSF/PHP模块的安装需要很多其他的支持包,在windows下面体现为一些dll文件,主要包括Libxml2、iconv、Openssl、zlib,而不仅仅是Libxml2【GNOME XML Library】;安装过程中需要将这些依赖dll全部都集中到wsf_c/lib/目录中;这些依赖包可以到http://www.zlatkovic.com/pub/libxml/下载,下载完成之后对各压缩包解压,dll文件一般位于/bin/目录中;
3、WSF所依赖的这些dll文件一定需要copy到/windows/system32/中才行,否则加载模块不成功;这点和官方文档中说的直接将wsf_c/lib/加入到path中即可是不一致的;当然这点可能有其他方式可以解决,因为我不精通PHP,但是和一些同事沟通过,但没结果;
4、验证是否正常加载了WSF模块,只用php -m命令查看列表是不够的,即时WSF模块没有加载成功,但是php.ini中设置了WSF模块,那php -m的列表中也会包括WSF;最保险的做法是查看服务器日志比如Apache;
5、在申明WSSecurityToken实例的时候,参数receiverCertificate是用来加密Soap消息的,而不是用来验证服务端返回的签名信息的,所以若只是需要签名,那该参数无需设置;WSF/PHP目前还没有提供验证服务端返回的签名信息功能的;
6、WSF/PHP调用WS时默认使用SOAP 1.2协议,这可能会对某些服务端ws调用时出错,若需要设置使用SOAP版本,则可以在申请WSClient实例时设置参数"useSOAP" => "1.1"实现;


所需软件:
Apache2.2.8    PHP 5.2.5    Mysql 5.0

************************

1. 安装 Apache
(安装包格式)
在 Network Domain 和 Server Name 里填入 127.0.0.1,右下角可以控制 Apache 服务器的启动与关闭。安装好后,在浏览器里输入 http://localhost/,如果出现 It works!" 字样,则说明安装成功了!

2. 安装 PHP
(解压包格式)
解压文件到 C:PHP 下

3. 安装 Mysql
(解压包格式)
解压文件到 C:mysql 下,从命令提示符里进入到 bin 目录下,执行 "mysql-nt -install" 进行安装,安装成功后,会显示 "Service successfully installed." 然后启动服务 "net start mysql",最后更改管理密码 "mysqladmin -u root -p password <new password>",会提示输入旧密码,由于原来没有设置过密码,所以直接回车。
其它相关命令:
mysqld-nt -remove    卸载服务
net stop mysql    停止服务

4. 软件配置
首先停止 Apache 服务,然后用记事本打开 C:pacheconfhttpd.conf 文件,找到 "#LoadModule ssl_module modules/mod_ssl.so",在它下面添加 "LoadModule php5_module c:/php/php5apache2_2.dll"。然后找到 "AddType application/x-gzip .gz .tgz",在下面添加 "AddType application/x-httpd-php .php"。

在 C:php 目录下找到 php.ini-dist 和 php5ts.dll 文件,把 php.ini-dist 复制到 Windows 目录下,并且重命名为 php.ini,用记事本打开找到 "extension=php_mysql.dll",去掉前面的分号。把 php5ts.dll 复制到 system32 目录里,并且把 C:phpext 目录下的 php_mysql.dll 文件复制到 Windows 文件夹下。

5. 配置网站
再次修改 httpd.conf,找到 "DocumentRoot "C:/Apache/htdocs" "、"<Directory "C:/Apache/htdocs">"、"DirectoryIndex Index.hrml",然后做相应修改即可!

6. 搭建完毕
启动 Apache 服务,配置完成!

<?php
得到PHP中最后一个字符

$str = " JhlIsHero ";
$var = trim($str);
$len = strlen($var)-1;
echo $var{$len};
?>

得到PHP一个字符串的最后一个字符


SyntaxHighlighter.highlight();

[!--infotagslink--]

相关文章

  • PHP添加MongoDB扩展实例教程

    由于要使用mikoomi mongodb plugin插件,所以需要php对mongodb的扩展支持,默认通过源安装的php并没有mongodb的扩展支持,具体可以通过php -m|grep mongo 验证 。这里就结...2016-11-25
  • Windows VPN服务器配置图文教程 超详细版

    VPN可以虚拟出一个专用网络,让远处的计算机和你相当于处在同一个局域网中,而中间的数据也可以实现加密传输,用处很大,特别是在一些大公司,分公司处在不同的区域。...2016-01-27
  • Linux下PHP安装curl扩展支持https例子

    安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
  • Windows批量搜索并复制/剪切文件的批处理程序实例

    这篇文章主要介绍了Windows批量搜索并复制/剪切文件的批处理程序实例,需要的朋友可以参考下...2020-06-30
  • C#创建简单windows窗体应用(加法器)

    这篇文章主要为大家详细介绍了C#创建一个简单windows窗体应用的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • c# socket网络编程接收发送数据示例代码

    这篇文章主要介绍了c# socket网络编程,server端接收,client端发送数据,大家参考使用吧...2020-06-25
  • Powershell 查询 Windows 日志的方法

    这篇文章主要介绍了Powershell 查询 Windows 日志的方法,需要的朋友可以参考下...2020-06-30
  • 浅谈node.js中async异步编程

    1.什么是异步编程? 异步编程是指由于异步I/O等因素,无法同步获得执行结果时, 在回调函数中进行下一步操作的代码编写风格,常见的如setTimeout函数、ajax请求等等。示例: for (var i = 1; i <= 3; i++) {setTimeout(functi...2015-10-23
  • PHP扩展开发教程(总结)

    PHP是一种解释型的语言,对于用户而言,我们精心的控制内存意味着easier prototyping和更少的崩溃!当我们深入到内核之后,所有的安全防线都已经被越过,最终还是要依赖于真正有责任心的软件工程师来保证系统的稳定运行。1、线...2015-11-08
  • 浅谈Vue开发人员的7个最好的VSCode扩展

    这篇文章主要介绍了浅谈Vue开发人员的7个最好的VSCode扩展,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20
  • C#实现windows form限制文本框输入的方法

    这篇文章主要介绍了C#实现windows form限制文本框输入的方法,涉及C#限制文本框输入的技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • C#编程总结(六)详解异步编程

    本篇文章主要介绍了C#异步编程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。...2020-06-25
  • JS实现不使用图片仿Windows右键菜单效果代码

    本文实例讲述了JS实现不使用图片仿Windows右键菜单效果代码。分享给大家供大家参考,具体如下:这里演示JS不使用图片仿Windows右键菜单效果,这款代码灵活使用了文鼎字,配合CSS和JS做出了这个和系统右键菜单很相似的东东。...2015-10-23
  • 详解Windows下安装Nodejs步骤

    本篇文章主要介绍了详解Windows下安装Nodejs步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...2017-05-22
  • C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法

    这篇文章主要介绍了C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法,结合实例形式分析了GetDesktopWindow函数用于获取窗口句柄的具体使用方法与相关注意事项,需要的朋友可以参考下...2020-06-25
  • Linux与Windows喜结连理

    作为一个新生事物,Linux吸引了不少眼球,但是它能否快捷、方便地与Windows资源共享,是一个很重要的问题。大家知道,Windows之间可以利用“网络邻居”来实现资源共享,而Linux...2016-11-25
  • 利用C#修改Windows操作系统时间

    这篇文章主要介绍了利用C#修改Windows操作系统时间,帮助大家更好的利用c#操作系统,感兴趣的朋友可以了解下...2020-12-08
  • PHP安装threads多线程扩展基础教程

    一、下载pthreads扩展下载地址:http://windows.php.net/downloads/pecl/releases/pthreads二、判断PHP是ts还是nts版通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说...2015-11-24
  • 理解javascript异步编程

    这篇文章主要为大家介绍了javascript异步编程,从浅入深的学习javascript异步编程,对javascript异步编程感兴趣的小伙伴们可以参考一下...2016-01-29
  • C#3.0使用EventLog类写Windows事件日志的方法

    这篇文章主要介绍了C#3.0使用EventLog类写Windows事件日志的方法,以简单实例形式分析了C#写windows事件日志的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25