首页 > 编程技术 > php

PHP中FCK上传图片文件名乱码

发布时间:2016-11-25 17:39

使用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 ));

}

对内容进行转码。

昨天我在使用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即可

今天在换了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即可解决。

本文章来介绍一个关于PHPExcel Allowed memory size of 内存泄漏解决办法,有碰到此类的朋友可参考参考。

我在利用PHPExcel导入一个一个大概31列、500行的文档,实行导入之后,PHP会报如下错误:

Fatal error: Allowed memory size of 209715200 bytes exhausted (tried to allocate 35 bytes)

inX:wwwClassesPHPExcelCell.php on line 711


解决办法是在 PHPExcel_Worksheet 类中增加方法:

 代码如下 复制代码

 public function Destroy() {
     foreach($this->_cellCollection as $index => $dummy) {
         $this->_cellCollection[$index] = null;
     }
 }

并在 PHPExcel 类中增加方法:

 public function Destroy() {
     foreach($this->_workSheetCollection as $index => $dummy) {
         $this->_workSheetCollection[$index]->Destroy();
         $this->_workSheetCollection[$index] = null;
     }
 }

还有一种办法就是修改你php内存配置,在中加入

在php文件增进一条语句

 代码如下 复制代码

ini_set('memory_limit', '-1');         

ini_set('memory_limit','265M')

修改php.ini(保举)

 代码如下 复制代码

memory_limit = 12M


.htaccess文件,添加如下内容

 代码如下 复制代码

php_value memory_limit 12M

标签:[!--infotagslink--]

您可能感兴趣的文章: