解决php5.6的curl扩展开启失败的问题

最近在一个项目中需要用到php下的curl扩展,但是在实际运行时遭遇到了curl函数无法执行的问题,页面错误为:

Call to undefined function curl_init();

按照常规步骤检查

  1. 用phpinfo()找到php.ini文件路径
  2. extension_dir是否配置正确
  3. extension=php_curl.dll是否打开

结果一切正常,但是phpinfo()的结果里没有curl模块。将php.ini中的;extension=php_curl.dll的注释去掉后,重启apache后仍然报Call to undefined function curl_init()的错误。百度多次,尝试很多方法,也不能成功的将curl成功开启。

解决方法

最后在官方说明文档中的http://php.NET/manual/zh/curl.installation.php这个页面得到了提示,只要将php安装目录下的libssh2.dll复制到apache的bin目录,并重新启动apache,于是乎curl成功开启。
注意:我的刚开始已经完成上述步骤,但是是在windows命令行工具下用的httpd -k restart重启的apache,结果仍然报Call to undefined function curl_init()的错误。之后无意中在windows服务窗口中右键apache服务,重启后成功。

测试环境

- 阅读剩余部分 -

PHP non-thread-safe和thread-safe这两个版本的区别

1.non-thread-safe 
非线程安全 下载文件中带有 NTS 与IIS 搭配环境使用
2.thread-safe  
线程安全  与apache 搭配的环境使用

php还有 VC6 VC9版本 区分,VC6支持apache,VC9支持IIS ,VC9 用在apache上也没问题。

PHP常用函数总结

PHP的一些常用函数

usleep() 函数延迟代码执行若干微秒。
unpack() 函数从二进制字符串对数据进行解包。
uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。
time_sleep_until() 函数延迟代码执行直到指定的时间。
time_nanosleep() 函数延迟代码执行若干秒和纳秒。
sleep() 函数延迟代码执行若干秒。
show_source() 函数对文件进行语法高亮显示。
strip_whitespace() 函数返回已删除 PHP 注释以及空白字符的源代码文件。
pack() 函数把数据装入一个二进制字符串。
ignore_user_abort() 函数设置与客户机断开是否会终止脚本的执行。
highlight_string() 函数对字符串进行语法高亮显示。
highlight_file() 函数对文件进行语法高亮显示。
get_browser() 函数返回用户浏览器的性能。
exit() 函数输出一条消息,并退出当前脚本。
eval() 函数把字符串按照 PHP 代码来计算。
die() 函数输出一条消息,并退出当前脚本。
defined() 函数检查某常量是否存在。
define() 函数定义一个常量。
constant() 函数返回常量的值。
connection_status() 函数返回当前的连接状态。
connection_aborted() 函数检查是否断开客户机。
zip_read() 函数读取打开的 zip 档案中的下一个文件。
zip_open() 函数打开 ZIP 文件以供读取。
zip_entry_read() 函数从打开的 zip 档案项目中获取内容。
zip_entry_open() 函数打开一个 ZIP 档案项目以供读取。
zip_entry_name() 函数返回 zip 档案项目的名称。
zip_entry_filesize() 函数返回 zip 档案项目的原始大小(在压缩之前)。
zip_entry_compressionmethod() 函数返回 zip 档案项目的压缩方法。
zip_entry_compressedsize() 函数返回 zip 档案项目的压缩文件尺寸。
zip_entry_close() 函数关闭由 zip_entry_open() 函数打开的 zip 档案文件。

zip_close() 函数关闭由 zip_open() 函数打开的 zip 档案文件。

- 阅读剩余部分 -

URL中“#” “?” &“”号的作用

1. #

    10年9月,twitter改版。一个显著变化,就是URL加入了"#!"符号。比如,改版前的用户主页网址为http://twitter.com/username改版后,就变成了http://twitter.com/#!/username
这是主流网站第一次将"#"大规模用于重要URL中。这表明井号(Hash)的作用正在被重新认识。本文根据HttpWatch的文章,整理与井号有关的所有重要知识点。


一、#的涵义
#代表网页中的一个位置。其右面的字符,就是该位置的标识符。比如,http://www.example.com/index.html#print就代表网页index.html的print位置。浏览器读取这个URL后,会自动将print位置滚动至可视区域。
为网页位置指定标识符,有两个方法。一是使用锚点,比如<a name="print"></a>,二是使用id属性,比如<div id="print">。

- 阅读剩余部分 -

Javascript获取URL参数值和当前页面URL信息

在开发中我们通常会遇到需求需要获取当前URL的参数信息和URL等信息,这时候需要配合javascript系统的方法和正则表达式来实现代码,


1.获取URL参数值方法

function GetRequest() {
    var url = location.search; //获取url中"?"符后的字串
    var theRequest = new Object();
    if (url.indexOf("?") != -1) {
        var str = url.substr(1);
        if (str.indexOf("&") != -1) {
            strs = str.split("&");
            for (var i = 0; i < strs.length; i++) {
                theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
            }
        } else {
            theRequest[str.split("=")[0]] = unescape(str.split("=")[1]);
        }
    }
    return theRequest;
}

- 阅读剩余部分 -

php获取当前时间戳方法

1、获取当前时间方法date()

很简单,这就是获取时间的方法,格式为:date($format, $timestamp),format为格式、timestamp为时间戳--可填参数。
2、获取时间戳方法time()、strtotime()
这两个方法,都可以获取php中unix时间戳,time()为直接获取得到,strtotime($time, $now)为将时间格式转为时间戳,$time为必填。清楚了这个,想了解更多,请继续往下看。

- 阅读剩余部分 -

css中字体的单位px和em,rem有什么区别区别

国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢?

PX特点

1. IE无法调整那些使用px作为单位的字体大小;

2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位;

3. Firefox能够调整px和em,rem,但是96%以上的中国网民使用IE浏览器(或内核)。

 

- 阅读剩余部分 -

微信应用号将推出,梳理下手机app开发案例

最近微信应用号即将推出的消息又在业内传得沸沸扬扬,webapp也越来越受到大家的关注。很多人一听说微信应用号,多少会有点一头雾水。但实际上,微信早已经存在应用号了。在目前微信钱包中的第三方服务中,就能看到一些微信应用号的雏形。至于此次提出的应用号,则是可能把入口从微信钱包转移到公众号中来。

事实上,微信应用号也就是现在的微信钱包里面的应用即webapp,也就是通过H5技术开发出来的

说到传统的手机App,也许很多人都非常了解。但说到WebApp,大家都不明所以。WebApp是什么?和传统的手机App有什么不同?WebApp适用于哪些手机应用场景?

- 阅读剩余部分 -

phpwind 9.0 安装问题汇总解决

1. 解决pw9安装时出现的Internal Server Error 500错误 


这个问题可能很多同学又遇到在apache环境下,莫名其妙地传好程序之后却没有办法正常安装. 
其实原因在于apache中的rewrite模块没有打开,但是p9默认使用的url方式需要rewrite才出现了这样的异常 

解决方法很简单. 
找到httpd.conf文件中的 

复制代码

;LoadModule rewrite_module modules/mod_rewrite.so
去掉前面的 ; (分号注释) 
保存之后重启apache一切就正常了.


2. 安装时配置页面无法安装数据

可能是PHP环境使用配置的不是一般情况 如apache端口为8080,MySQL端口不是3306,而是3307.

解决: localhost:3307