页面“Os.walk()与os.path.walk()”与“PHP intl扩展库安装”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
(导入1个版本)
 
docker>Evan
(创建页面,内容为“==Install ICU from source== <pre> 首先卸载: yum remove php-intl yum -y install php-devel php-pear wget http://download.icu-project.org/files/icu4c/56.1/icu4c-...”)
 
第1行: 第1行:
 
+
==Install ICU from source==
==os.walk()==
 
 
<pre>
 
<pre>
函数声明:walk(top,topdown=True,onerror=None)
+
首先卸载:
该函数返回一个元组,该元组有3个元素,这3个元素分别表示每次遍历的路径名,目录列表和文件列表
+
yum remove php-intl
 
+
yum -y install php-devel php-pear
一般是路径名 和文件列表比较有用
 
 
 
os.walk()实例:
 
evan@evanpc:~/test$ cat  visit.py
 
#-*- coding:utf-8 -*-
 
import os,os.path,sys,shutil
 
def visitdir(path):
 
    for root,dirs,files in os.walk(path):
 
        for filespath in files:
 
#            print filespath
 
            print os.path.join(root,filespath)
 
 
 
           
 
if __name__=="__main__":
 
    path="/home/evan/test"
 
    visitdir(path)
 
 
 
 
 
#删除某个文件夹(当然可以通过os.listdir的递归调用删除)
 
#!/usr/bin/env python
 
#coding=utf-8
 
import os
 
 
 
def Remove_dir(top_dir):
 
    if os.path.exists(top_dir)==False:
 
        print "not exists"
 
        return
 
    if os.path.isdir(top_dir)==False:
 
        print "not a dir"
 
        return
 
    for dir_path,subpaths,files in os.walk(top_dir,False):
 
        for file in files:
 
            file_path=os.path.join(dir_path,file)
 
            print "delete file:%s"  %file_path
 
            os.remove(file_path)
 
        print "delete dir:%s" %dir_path
 
        os.rmdir(dir_path)
 
 
 
#调用
 
Remove_dir(r"/home/evan/test")
 
  
 +
wget http://download.icu-project.org/files/icu4c/56.1/icu4c-56_1-src.tgz
 +
tar -xzvf icu4c-56_1-src.tgz
 +
cd icu/source
 +
./configure --prefix=/usr/local/icu
 +
make -j2  && make install
 +
</pre>
  
 +
==Install intl for php==
 +
===pecl 方式安装===
 +
<pre>
 +
/usr/local/php/bin/pecl install intl-3.0.0
 +
安装过程中会让您指定ICU库的位置,我的位置是  /usr/local/icu ,安装完成后将  extension=intl.so  加入到php.ini文件中,然后执行  /etc/init.d/php-fpm restart  使php.ini配置生效。
 +
最后用 # php -m | grep intl  或  phpinfo() 查看intl扩展是否安装成功
 
</pre>
 
</pre>
  
==os.path.walk()==
+
===INTL编译安装===
 
<pre>
 
<pre>
evan@evanpc:~/test$ cat visitpa.py
+
wget http://pecl.php.net/get/intl-3.0.0.tgz
#-*- coding:utf-8 -*-
+
tar -xzf intl-3.0.0.tgz && cd intl-3.0.0
#功能其实和上面的代码是一样的
+
phpize
import os.path,sys,shutil
+
./configure --enable-intl --with-icu-dir=/usr/local/icu --with-php-config=/data/apps/php/bin/php-config
def visitdir(arg,dirname,names):
+
make -j2  && make install
    for filespath in names:
 
#        print filespath
 
#        print dirname
 
        print os.path.join(dirname,filespath)
 
  
           
+
安装完成后将 extension=intl.so  加入到php.ini文件中,然后执行 /etc/init.d/php-fpm restart  使php.ini配置生效。
if __name__=="__main__":
+
用 # php -m | grep intl  或 phpinfo() 查看intl扩展是否安装成功
    path="/home/evan/test"
 
    os.path.walk(path,visitdir,())
 
 
</pre>
 
</pre>
==os.path.jon==
 
<pre>
 
evan@evanpc:~/test$ cat path.join.py
 
import os
 
path='/home/evan/test/pytest'
 
for root, dirs, files in os.walk(path):
 
    for name in dirs:
 
        print os.path.join(root,name)
 
    for file in files:
 
        pass
 
#        print os.path.join(root,name,file)
 
evan@evanpc:~/test$ python path.join.py
 
/home/evan/test/pytest/RemoteSystemsTempFiles
 
evan@evanpc:~/test$ ls pytest/
 
multi.py  mu.py  RemoteSystemsTempFiles
 
  
 +
=参考=
 +
 +
[http://www.linuxeye.com/Linux/2375.html PHP intl扩展库安装]
  
 +
[http://digest.sunxuming.com/internet/21.html Centos编译安装icu和intl]
  
evan@evanpc:~/test$ cat path.join.py
+
=trouble=
import os
 
path='/home/evan/test/pytest'
 
for root, dirs, files in os.walk(path):
 
    for name in dirs:
 
        pass
 
#        print os.path.join(root,name)
 
    for file in files:
 
        print os.path.join(root,name,file)
 
evan@evanpc:~/test$ python path.join.py
 
/home/evan/test/pytest/RemoteSystemsTempFiles/multi.py
 
/home/evan/test/pytest/RemoteSystemsTempFiles/mu.py
 
/home/evan/test/pytest/RemoteSystemsTempFiles/RemoteSystemsTempFiles/.project
 
</pre>
 
==总的 删除目录,shutil.rmtree==
 
 
<pre>
 
<pre>
evan@evanpc:~/test$ cat walk.py
+
是不是不可以用在php7 呢
#-*- coding:utf-8 -*-
+
In file included from /root/icu/source/intl-3.0.0/php_intl.h:34:0,
#删除指定目录的 test.txt 文件 和svn目录
+
                from /root/icu/source/intl-3.0.0/php_intl.c:25:
import os.path,sys,shutil
+
/root/icu/source/intl-3.0.0/intl_error.h:24:40: 致命错误:ext/standard/php_smart_str.h:没有那个文件或目录
path ='/home/evan/test/pytest'
+
#include <ext/standard/php_smart_str.h>
for root, dirs, files in os.walk(path):
+
                                        ^
 +
编译中断。
 +
make: *** [php_intl.lo] 错误 1
  
    for name in files:
 
        if name=='test.txt':
 
            os.remove(os.path.join(root,name))
 
 
    for name in dirs:
 
        if name == 'svn':
 
            print name
 
            shutil.rmtree(os.path.join(root,name))
 
 
</pre>
 
</pre>
   
 
   
 
==参考==
 
[[Python移动指定后缀名的文件]]
 
 
[http://www.cnblogs.com/sudawei/p/3346055.html  python-os.walk目录递归] 
 
  
[https://my.oschina.net/duhaizhang/blog/68202 Python之os.walk和os.path.walk]
 
  
[[category:python]]
+
[[category:php]]

2017年11月11日 (六) 06:28的版本

Install ICU from source

首先卸载:
yum remove php-intl
yum -y install php-devel php-pear

wget http://download.icu-project.org/files/icu4c/56.1/icu4c-56_1-src.tgz
tar -xzvf icu4c-56_1-src.tgz
cd icu/source
./configure --prefix=/usr/local/icu
make -j2  && make install

Install intl for php

pecl 方式安装

/usr/local/php/bin/pecl install intl-3.0.0
安装过程中会让您指定ICU库的位置,我的位置是  /usr/local/icu ,安装完成后将  extension=intl.so  加入到php.ini文件中,然后执行  /etc/init.d/php-fpm restart  使php.ini配置生效。
最后用 # php -m | grep intl  或   phpinfo() 查看intl扩展是否安装成功

INTL编译安装

wget http://pecl.php.net/get/intl-3.0.0.tgz
tar -xzf intl-3.0.0.tgz && cd intl-3.0.0
phpize 
./configure --enable-intl --with-icu-dir=/usr/local/icu --with-php-config=/data/apps/php/bin/php-config
make -j2  && make install

安装完成后将 extension=intl.so   加入到php.ini文件中,然后执行 /etc/init.d/php-fpm restart   使php.ini配置生效。
用 # php -m | grep intl   或 phpinfo()  查看intl扩展是否安装成功

参考

PHP intl扩展库安装

Centos编译安装icu和intl

trouble

是不是不可以用在php7 呢
In file included from /root/icu/source/intl-3.0.0/php_intl.h:34:0,
                 from /root/icu/source/intl-3.0.0/php_intl.c:25:
/root/icu/source/intl-3.0.0/intl_error.h:24:40: 致命错误:ext/standard/php_smart_str.h:没有那个文件或目录
 #include <ext/standard/php_smart_str.h>
                                        ^
编译中断。
make: *** [php_intl.lo] 错误 1