php使用curl函数提示Call to undefined function curl_init()

 更新时间:2016年11月25日 17:39  点击:2022
昨天我在使用curl来写一个api接口时发现运行curl函数时提示Call to undefined function curl_init()错误,从错误来看就是没有定义curl_init()函数了,后来才知道此函数必须开启php中的一个文件,具体方法如下。

程序代码我是这样写的

 代码如下 复制代码

??php
// 初始化一个 cURL 对象
$curl = curl_init();

// 设置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, 'http://www.111cn.net');

// 设置header
curl_setopt($curl, CURLOPT_HEADER, 1);

// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

// 运行cURL,请求网页
$data = curl_exec($curl);

// 关闭URL请求
curl_close($curl);

// 显示获得的数据
var_dump($data);

结果提示了:Call to undefined function curl_init(),后来百度了一些解决办法,大家可参考。


windows+apache下修改配置:

1.修改php.ini,将;extension=php_curl.dll前面的分号去掉
2.拷贝libeay32.dll、ssleay32.dll(C:AppServphp5)两个文件到system32目录
3.重启Apache(services.msc)即可


linux+apache解决:

需要安装curl软件包。若使用ubuntu,则打开新立得软件包管理器搜索curl,安装curl即可

可以使用session的朋友有经常会碰到Warning: session_start() [function.session-start]错误提示了,这个问题其实就是在session之前有数据输入了,解决办法很简单下面我来给大家总结。

我的电脑中的错误提示

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:APMServ-v5.2.6APMServ5.2.6wwwhtdocsKingNerOAuserUserKqManage.php:1) in D:APMServ-v5.2.6APMServ5.2.6wwwhtdocsKingNerOAusercheckaccess.php on line 2

原因就是前面有输出

解决办法:

修改php.ini中的session.auto_start = 0 为 session.auto_start = 1
output_buffering =改为on或者任何数字。

linux中解决办法

解决办法:

方法1、注释掉/etc/php.ini中
session.save_path = “/var/lib/php/session”
方法2、查看apache用户和组,然后将该用户加到session文件夹所处的组中。
方法3,在session_start() 前不要有任何输出!


错误提示2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at E:phpcodeadmin.php:1) in E:phpcodelogolistadminlogo.php on line 2

就是 session变量需要系统的临时空间

session.save_path = "设置一个有效文件夹的绝对路径"

(比如 session.save_path = "C:WINDOWStemp" )

session.save_path =前面的 ' ; '  号去掉

另外编辑该文件夹的权限 添加EVERYONE 有写入修改权限即可 !

使用fck的朋友可能会碰这样一个情况就是如果上你的文件名为英文字母是没有任何问题,如果上传的是中文汉字就会出现中文名乱码了,下面我来给大家分析与介绍解决方法。

主要原因是fck中的编(utf-8)码和本地的编码(gbk)环紧不一致导致的,修改如下5个文件可以解决

更改FileUpLoad函数 ckeditor/" target="_blank">fckeditoreditorfilemanagerconnectorsphpcommands.php

在文件中找到以下代码:

 代码如下 复制代码

// Get the extension.  
$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;  
$sExtension = strtolower( $sExtension ) ; 

在其后加上一句:

 代码如下 复制代码

$sFileName = strtotime('now').'.'.$sExtension; 

这样文件名就是 当前时间戳+后缀名了。既解决了中文乱码,也解决了文件重名

另一种解决办法,保留中文名

文件4:fckeditoreditorfilemanagerconnectorsphpcommands.php

找到

 代码如下 复制代码

function FileUpload( $resourceType, $currentFolder, $sCommand ){

。。。

      找到

      //move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;

move_uploaded_file( $oFile['tmp_name'], iconv("utf-8","gbk",$sFilePath));

}

对文件名$sFilePath转码。

 

文件5:fckeditoreditorfilemanagerconnectorsphputil.php

找到

 代码如下 复制代码

function ConvertToXmlAttribute( $value ){

       。。。

       找到

      //return ( utf8_encode( htmlspecialchars( $value ) ) ) ;

       return iconv("GBK", "UTF-8", htmlspecialchars( $value ));

}

对内容进行转码。

今天在换了Php环境后我们发现有Deprecated: Function session_register() is deprecated错误提示了,下面我来给各位朋友介绍介绍。

我们先来看代码

 代码如下 复制代码

<?php
// Fix for removed Session functions
function fix_session_register(){
    function session_register(){
        $args = func_get_args();
        foreach ($args as $key){
            $_SESSION[$key]=$GLOBALS[$key];
        }
    }
    function session_is_registered($key){
        return isset($_SESSION[$key]);
    }
    function session_unregister($key){
        unset($_SESSION[$key]);
    }
}
if (!function_exists('session_register')) fix_session_register();
?>

查了一下出现这个问题的地方不多,找到了另外一个方法,直接

 代码如下 复制代码

session_register( “abc” ) ;

改成

$_SESSION['abc'] = null;

即可

总结

从上面的过程来说我们说明了明这个函数在PHP5.3版本中被删除了。也就是这个函数不再可用了,大家直接使用下面的方法即可了。

昨天网站用着用着就提示了Fatal error: Out of memory (allocated 262144),后来百度搜索了一些解决方法,下面我分享给各位朋友。

从上面的Out of memory (allocated 262144)看出是超过了256MB了吧,这个我们只要调整一下php.ini中的一个参考即可

解决方法是修改php.ini,加大memory_limit

修改php.ini

如下的区域

 代码如下 复制代码

memory_limit = 64M    

重启apache即可解决。

[!--infotagslink--]

相关文章