php 读取 和 生成 unicode csv 文件的例子

 更新时间:2016年11月25日 15:36  点击:2211
下文给各位整理了一篇关于php 读取 和 生成 unicode csv 文件的例子,希望这个例子可以给各位带来帮助的哦.

=======先介绍下BOM==============

Bytes  Encoding Form
EF BB BF UTF-8
FF FE UTF-16 aka UCS-2, little endian
FE FF UTF-16 aka UCS-2, big endian
00 00 FF FE UTF-32 aka UCS-4, little endian.
00 00 FE FF UTF-32 aka UCS-4, big-endian.

=======================

读取 unicode csv 文件

function fopen_utf8($filename){
    $encoding='';
    $handle = fopen($filename, 'r');
    $bom = fread($handle, 2);
//    fclose($handle);
    rewind($handle);
 
    if($bom === chr(0xff).chr(0xfe)  || $bom === chr(0xfe).chr(0xff)){
            // UTF16 Byte Order Mark present
            $encoding = 'UTF-16';
    } else {
        $file_sample = fread($handle, 1000) + 'e'; //read first 1000 bytes
        // + e is a workaround for mb_string bug
        rewind($handle);
 
        $encoding = mb_detect_encoding()($file_sample , 'UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP');
    }
    if ($encoding){
        stream_filter_append($handle, 'convert.iconv.'.$encoding.'/UTF-8');
    }
    return  ($handle);
}

生成 unicode csv (此php文件一定要是无BOM的UTF-8编码文件)

?View Code PHP
$content=iconv("UTF-8","UTF-16LE",$content);
$content = "\xFF\xFE".$content; //添加BOM
header("Content-type: text/csv;charset=UTF-16LE") ;
header("Content-Disposition: attachment; filename=test.csv");
 
再介绍一个 操作 ANSI 编码 以 "," 隔开的 操作类
 
<?php
// Unicode BOM is U+FEFF, but after encoded, it will look like this.
define ('UTF32_BIG_ENDIAN_BOM'   , chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF));
define ('UTF32_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00));
define ('UTF16_BIG_ENDIAN_BOM'   , chr(0xFE) . chr(0xFF));
define ('UTF16_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE));
define ('UTF8_BOM'               , chr(0xEF) . chr(0xBB) . chr(0xBF));
 
 function detect_utf_encoding($filename) {
 
     $text = file_get_contents($filename);
     $first2 = substr($text, 0, 2);
     $first3 = substr($text, 0, 3);
     $first4 = substr($text, 0, 3);
 
     if ($first3 == UTF8_BOM) return 'UTF-8';
     elseif ($first4 == UTF32_BIG_ENDIAN_BOM) return 'UTF-32BE';
     elseif ($first4 == UTF32_LITTLE_ENDIAN_BOM) return 'UTF-32LE';
     elseif ($first2 == UTF16_BIG_ENDIAN_BOM) return 'UTF-16BE';
     elseif ($first2 == UTF16_LITTLE_ENDIAN_BOM) return 'UTF-16LE';
 }
?>

去年年底小编做了一个调用淘宝api返回用户ip所在城市并给出相对应的域名了,今天我整理了一篇常用的IP地址查询接口及调用方法,里面集成了几乎所有的ip地址接口了,具体如下.

腾讯IP地址查询接口:http://fw.qq.com/ipaddress
新浪IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js
搜狐IP地址查询接口:http://pv.sohu.com/cityjson
谷歌IP地址查询接口:http://j.maxmind.com/app/geoip.js
有道IP地址查询接口:http://www.youdao.com/smartresult-xml/search.s
1616 IP地址查询接口:http://w.1616.net/chaxun/iptolocal.php
126 http://ip.ws.126.net/ipquery
hao123 http://app.hao123.com/ipquery/getcity.php?rtype=2
淘宝 http://ip.taobao.com/service/getIpInfo.php?ip=117.89.35.58
太平洋电脑网 http://whois.pconline.com.cn/
设计蜂巢接口调用方法

API请求地址 : http://www.hujuntao.com/api/ip/ip.php?参数

参数说明:

IP : IP地址 可选
format : 输出格式 json 可选 默认为JS
JSON调用示例:
请求地址:http://www.hujuntao.com/api/ip/ip.php?callback=jQuery17107324279078748077_1327024991339&format=json&_=1327024991363

{
“ip”: “117.89.35.58″,
“province”: “u6c5fu82cf”,
“city”: “u5357u4eac”
}
腾讯接口调用方法

<script type="text/javascript" src="http://fw.qq.com/ipaddress"></script><script type="text/javascript">// < ![CDATA[

// < ![CDATA[

//反回格式如下: //var IPData = new Array("117.89.35.98","","江苏省","南京市"); console.log(IPData[0]+','+IPData[2]+','+IPData[3]) //117.89.35.98,江苏省,南京市

// ]]></script>


该方法已经不可用,访问http://fw.qq.com/ipaddre显示“The page you are looking for is temporarily unavailable.
Please try again later.”。腾讯对Referer做了判断,虽然可以通过PHP伪造Referer,但是实际测试中获得的是服务器的IP地址而不是客户端的IP地址。我们一起鄙视一下腾讯。?∩?(︶︿︶)?∩?

新浪接口调用方法

<script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></script><script type="text/javascript">// < ![CDATA[

// < ![CDATA[

//format参数设置返回格式 js/json //ip 要查询IP 可选 //反回格式如下: //var remote_ip_info = {"ret":1,"start":"117.89.35.0","end":"117.89.35.255","country":"u4e2du56fd","province":"u6c5fu82cf","city":"u5357u4eac","district":"u767du4e0b","isp":"u7535u4fe1","type":"","desc":""}; console.log(remote_ip_info["country"]+','+remote_ip_info["province"]+"省"+','+remote_ip_info["city"]+"市")//中国,江苏省,南京市

// ]]></script>


搜狐接口调用方法

<script type="text/javascript" src="http://pv.sohu.com/cityjson?ie=utf-8"></script><script type="text/javascript">// < ![CDATA[

// < ![CDATA[

//默认为GBK可通过ie参数设置编码 console.log(returnCitySN["cip"]+','+returnCitySN["cname"])//117.89.35.98,江苏省南京市

// ]]></script>


谷歌接口调用方法

据说是谷歌的,不知道是不是真的。

<script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script><script type="text/javascript">// < ![CDATA[

// < ![CDATA[

console.log(geoip_country_name()+','+geoip_region_name()+','+geoip_city())//China,Jiangsu,Nanjing

// ]]></script>


有道接口调用方法

调用接口示例:http://www.youdao.com/smartresult-xml/search.s?type=ip&q=123.233.157.9

返回XML数据

<?xml version=”1.0″ encoding=”gbk”?>
<smartresult>
<product type=”ip”>
<ip>123.233.157.9</ip>
<location>山东省济南市 网通</location>
</product>
</smartresult>
或者

http://www.youdao.com/smartresult-xml/search.s?jsFlag=true&keyfrom=163.com&event=fYodaoCallBack&type=ip&q=192.168.1.1

返回JSON数据

fYodaoCallBack(1, {‘product’:'ip’,'ip’:’192.168.1.1′,’location’:'局域网 对方和您在同一内部网’} , ”);
IP地址查询接口及调用方法设计蜂巢 | 2011-12-29 | javascript
设计蜂巢IP地址查询接口:http://www.hujuntao.com/api/ip/ip.php
腾讯IP地址查询接口:http://fw.qq.com/ipaddress
新浪IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js
搜狐IP地址查询接口:http://pv.sohu.com/cityjson
谷歌IP地址查询接口:http://j.maxmind.com/app/geoip.js
有道IP地址查询接口:http://www.youdao.com/smartresult-xml/search.s
1616 IP地址查询接口:http://w.1616.net/chaxun/iptolocal.php
126 http://ip.ws.126.net/ipquery
hao123 http://app.hao123.com/ipquery/getcity.php?rtype=2
淘宝 http://ip.taobao.com/service/getIpInfo.php?ip=117.89.35.58
太平洋电脑网 http://whois.pconline.com.cn/
设计蜂巢接口调用方法

API请求地址 : http://www.hujuntao.com/api/ip/ip.php?参数

参数说明:

IP : IP地址 可选
format : 输出格式 json 可选 默认为JS
JSON调用示例:
请求地址:http://www.hujuntao.com/api/ip/ip.php?callback=jQuery17107324279078748077_1327024991339&format=json&_=1327024991363

{
“ip”: “117.89.35.58″,
“province”: “u6c5fu82cf”,
“city”: “u5357u4eac”
}
腾讯接口调用方法

<script type="text/javascript" src="http://fw.qq.com/ipaddress"></script><script type="text/javascript">// < ![CDATA[

// < ![CDATA[

//反回格式如下: //var IPData = new Array("117.89.35.98","","江苏省","南京市"); console.log(IPData[0]+','+IPData[2]+','+IPData[3]) //117.89.35.98,江苏省,南京市

// ]]></script>


该方法已经不可用,访问http://fw.qq.com/ipaddre显示“The page you are looking for is temporarily unavailable.
Please try again later.”。腾讯对Referer做了判断,虽然可以通过PHP伪造Referer,但是实际测试中获得的是服务器的IP地址而不是客户端的IP地址。我们一起鄙视一下腾讯。?∩?(︶︿︶)?∩?

新浪接口调用方法

<script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></script><script type="text/javascript">// < ![CDATA[

// < ![CDATA[

//format参数设置返回格式 js/json //ip 要查询IP 可选 //反回格式如下: //var remote_ip_info = {"ret":1,"start":"117.89.35.0","end":"117.89.35.255","country":"u4e2du56fd","province":"u6c5fu82cf","city":"u5357u4eac","district":"u767du4e0b","isp":"u7535u4fe1","type":"","desc":""}; console.log(remote_ip_info["country"]+','+remote_ip_info["province"]+"省"+','+remote_ip_info["city"]+"市")//中国,江苏省,南京市

// ]]></script>


搜狐接口调用方法

<script type="text/javascript" src="http://pv.sohu.com/cityjson?ie=utf-8"></script><script type="text/javascript">// < ![CDATA[

// < ![CDATA[

//默认为GBK可通过ie参数设置编码 console.log(returnCitySN["cip"]+','+returnCitySN["cname"])//117.89.35.98,江苏省南京市

// ]]></script>


谷歌接口调用方法

据说是谷歌的,不知道是不是真的。

<script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script><script type="text/javascript">// < ![CDATA[

// < ![CDATA[

console.log(geoip_country_name()+','+geoip_region_name()+','+geoip_city())//China,Jiangsu,Nanjing

// ]]></script>


有道接口调用方法

调用接口示例:http://www.youdao.com/smartresult-xml/search.s?type=ip&q=123.233.157.9

返回XML数据

<?xml version=”1.0″ encoding=”gbk”?>
<smartresult>
<product type=”ip”>
<ip>123.233.157.9</ip>
<location>山东省济南市 网通</location>
</product>
</smartresult>
或者

http://www.youdao.com/smartresult-xml/search.s?jsFlag=true&keyfrom=163.com&event=fYodaoCallBack&type=ip&q=192.168.1.1

返回JSON数据

fYodaoCallBack(1, {‘product’:'ip’,'ip’:’192.168.1.1′,’location’:'局域网 对方和您在同一内部网’} , ”);

google 在国内打不开了很多朋友会想办法设置一个hosts指定IP了,这样还是可以正常访问的,下面我们给各位介绍一个php抓取google hosts的程序代码,希望对各位有用.

 无聊中居然又找到个php版本的抓取google hosts的文件,试了下还可以用,ping了下ip,延迟也不是很高,网页打开测试了下速度也很快,大家有兴趣的话可以试试.
php文件:


<?php
/**
 * 免翻墙上google
 * @author 自娱自乐自逍遥 <wapznw@gmail.com>
 * Date: 2015/2/6
 * Time: 11:42
*/

define('START_TAG','#google-hosts-2015');
define('END_TAG','#google-hosts-2015-end');
if(!empty($argv[1])){
 $params = array();
 parse_str($argv[1], $params);
if(isset($params['url'])){
 define('GOOGLE_HOST_URL', $params['url']);
}
if(isset($params['del'])){
define('DELETE_GOOGLE_HOST',true);
}
}
defined('GOOGLE_HOST_URL') || define('GOOGLE_HOST_URL', 'http://www.360kb.com/kb/2_150.html');

if(PHP_OS == 'WINNT'){
 define('HOSTS_FILE_PATH', 'C:WindowsSystem32driversetchosts');
}else if(in_array(PHP_OS, array('Linux','Darwin','FreeBSD','OpenBSD','WIN32','Windows','Unix'))){
 define('HOSTS_FILE_PATH', '/etc/hosts');
}else{
 die('Unsupported system!'.PHP_EOL);
}

if(!is_writable(HOSTS_FILE_PATH)){
 die('Without permission, please use the root user to perform!'.PHP_EOL);
}

$hosts = file_get_contents(HOSTS_FILE_PATH);

$startPos = strpos($hosts, START_TAG);
if(!defined('DELETE_GOOGLE_HOST')){
 $gs = get_google_hosts();
 echo GOOGLE_HOST_URL.PHP_EOL;
 echo $gs.PHP_EOL;
}else{
 $gs = '';
 echo 'reset hosts'.PHP_EOL;
}

if($startPos){
 $_tmp = substr($hosts, $startPos, strpos($hosts, END_TAG) - $startPos + strlen(END_TAG));
 $hosts = str_replace($_tmp,$gs,$hosts);
}else{
 $hosts.= PHP_EOL.$gs;
}

$old_file_size = filesize(HOSTS_FILE_PATH);

if(file_put_contents(HOSTS_FILE_PATH, $hosts)){
 die('success. '.PHP_EOL);
}else{
die('fail'.PHP_EOL);
}

function get_google_hosts(){
 $html = file_get_contents(GOOGLE_HOST_URL);
 $html = strip_tags($html);
 $startPos = strpos($html, START_TAG);
 $html = substr($html, $startPos, strpos($html,END_TAG) - $startPos);
 $html = str_replace('&nbsp;',' ',$html);
 return $html.PHP_EOL.END_TAG;
}

php中DOMDocument对于xml操作我们只要是英文是没有问题了,但如果是中文字体就会有乱码问题了,下面我们就此问题给各位介绍一些解决办法吧.

PHP的DOM内部是utf8机制的。在loadHTML时,是通过检查字符中meta的charset来设置编码的。如果没有charset,就当iso8859进行处理了。而这种情况下进行saveXML时,输出来的却是utf8,所以就看到乱码了。

这么说是不是还不太理解,举个例子:

$xml = new DOMDocument();
@$xml->loadHTML('<div>我就是测试看看 - http://www.111cn.net</div>');
 
$dom = new DOMXPath($xml);
echo $dom->query('//div')->item(0)->saveXML();

打开网页执行,你会发现输出乱码了。那如何解决这个问题呢?有两种方式。

第一种:在loadHTML的时候指定编码,下面这段代码引用自php.net官方文档中的回复

$doc = new DOMDocument();
$doc->loadHTML('<?xml encoding="UTF-8">' . $html);
 
// dirty fix
foreach ($doc->childNodes as $item)
    if ($item->nodeType == XML_PI_NODE)
        $doc->removeChild($item); // remove hack
$doc->encoding = 'UTF-8'; // insert proper

第二种方法,通过iconv对输出的字符重新转换,代码如下:

echo iconv("UTF-8", "GB18030//TRANSLIT", $dom->saveXML($n) );

autoload在php中其实是一个魔术方法了,我们可以指定类目录及规则可以自动加载类文件从而可以省去我们使用include来加载文件了,下面一直来看看关于autoload方法一些例子.

我们在写web应用程序时通常对每个类都建立一个 PHP 源文件。为了使用这些源文件,我们就需要在每个脚本开头写大量的的包含语句(include,require)。在 PHP 5 中,不再需要这样了。我们可__autoload()函数和spl_autoload_register函数实现实现自己的加载源文件的机制,它们会在试图使用尚未被定义的类时自动调用。通过调用这些函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。本文的主要目标是讲述如何在扩展中用C语言实现自动加载源文件的机制,但是在这之前我们先熟悉一下在PHP脚本中实现自动加载的方法。

在脚本中实现自动加载

在 PHP 5 中我们可以定义一个 __autoload() 函数,它会在试图使用尚未被定义的类时自动调用,这样我们就可以定义一些自己的加载规则了。

<?php
function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MyClass1();
$obj2 = new MyClass2();
?>

使用spl_autoload_register我们可以一次注册多个加载函数,PHP会在试图使用尚未被定义的类时按注册顺序调用。

<?php
function autoload_services($class_name)
{
    $file = 'services/' . $class_name. '.php';
    if (file_exists($file))
    {
        require_once($file);
    }
}
function autoload_vos($class_name)
{
    $file = 'vos/' . $class_name. '.php';
    if (file_exists($file))
    {
        require_once($file);
    }
}
spl_autoload_register('autoload_services');
spl_autoload_register('autoload_vos');
?>

在php扩展中实现自动加载

最近在写一个php扩展,其中一个功能就是实现类的自动加载,其实也是通过在内核中调用spl_autoload_register函数来实现。使用zend API调用spl_autoload_register函数还是相对简单的,下面我们主要讲一下如何在内核中实现inclue/require/include_once/require_once等指令的功能。其实inclue/require/include_once/require_once等指令主要是读入文件编译并执行,下面的方法就是完成了这些操作,代码中有详细的注释。

/*
*  loader_import首先将PHP源文件编译成op_array,然后依次执行op_array中的opcode
*/
int loader_import(char *path, int len TSRMLS_DC) {
    zend_file_handle file_handle;
    zend_op_array   *op_array;
    char realpath[MAXPATHLEN];

    if (!VCWD_REALPATH(path, realpath)) {
        return 0;
    }

    file_handle.filename = path;
    file_handle.free_filename = 0;
    file_handle.type = ZEND_HANDLE_FILENAME;
    file_handle.opened_path = NULL;
    file_handle.handle.fp = NULL;
   
    //调用zend API编译源文件
    op_array = zend_compile_file(&file_handle, ZEND_INCLUDE TSRMLS_CC);

    if (op_array && file_handle.handle.stream.handle) {
        int dummy = 1;

        if (!file_handle.opened_path) {
            file_handle.opened_path = path;
        }
       
        //将源文件注册到执行期间的全局变量(EG)的include_files列表中,这样就标记了源文件已经包含过了
        zend_hash_add(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1, (void *)&dummy,
                sizeof(int), NULL);
    }
    zend_destroy_file_handle(&file_handle TSRMLS_CC);

    //开始执行op_array
    if (op_array) {
        zval *result = NULL;
        //保存原来的执行环境,包括active_op_array,opline_ptr等
        zval ** __old_return_value_pp   =  EG(return_value_ptr_ptr);
        zend_op ** __old_opline_ptr     = EG(opline_ptr);
        zend_op_array * __old_op_array  = EG(active_op_array);
        //保存环境完成后,初始化本次执行环境,替换op_array
        EG(return_value_ptr_ptr) = &result;
        EG(active_op_array)      = op_array;

#if ((PHP_MAJOR_VERSION == 5) && (PHP_MINOR_VERSION > 2)) || (PHP_MAJOR_VERSION > 5)
        if (!EG(active_symbol_table)) {
            zend_rebuild_symbol_table(TSRMLS_C);
        }
#endif
        //调用zend API执行源文件的op_array
        zend_execute(op_array TSRMLS_CC);
        //op_array执行完成后销毁,要不然就要内存泄露了,哈哈
        destroy_op_array(op_array TSRMLS_CC);
        efree(op_array);
        //通过检查执行期间的全局变量(EG)的exception是否被标记来确定是否有异常
        if (!EG(exception)) {
            if (EG(return_value_ptr_ptr) && *EG(return_value_ptr_ptr)) {
                zval_ptr_dtor(EG(return_value_ptr_ptr));
            }
        }
        //ok,执行到这里说明源文件的op_array已经执行完成了,我们要恢复原来的执行环境了
        EG(return_value_ptr_ptr) = __old_return_value_pp;
        EG(opline_ptr)           = __old_opline_ptr;
        EG(active_op_array)      = __old_op_array;

        return 1;
    }
    return 0;
}

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • php把读取xml 文档并转换成json数据代码

    在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • AI源文件转photoshop图像变模糊问题解决教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
  • C++万能库头文件在vs中的安装步骤(图文)

    这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • C#路径,文件,目录及IO常见操作汇总

    这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • C#使用StreamWriter写入文件的方法

    这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
  • ant design中upload组件上传大文件,显示进度条进度的实例

    这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29
  • php实现文件下载实例分享

    举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07