>

linux系统上支撑php的,XMLWriter类的简易示例代码

- 编辑:云顶娱乐yd2221 -

linux系统上支撑php的,XMLWriter类的简易示例代码

linux系统上支撑php的,XMLWriter类的简易示例代码_php技艺_脚本之家。1、下载libiconv函数库 2、解压缩tar -zxvf libiconv-1.9.2.tar.gz; 3、安装libiconv 复制代码 代码如下: #configure --prefix=/usr/local/iconv #make #make install 4、重新编写翻译php 扩大编写翻译参数--with-iconv=/usr/local/iconv windows下 最近在做二个小偷程序,须要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发掘独有用iconv函数把抓取过来的多寡黄金时代转码数码就能够无故的少一些。 让自家忧愁了好风姿洒脱阵子,去网络大器晚成查资料才清楚那是iconv函数的八个bug。iconv在转移字符"—"到gb2312时会出错 消逝方法超级轻巧,就是在须求转成的编码后加 "//IGNORE" 也便是iconv函数第2个参数后.如下: 以下为援引的从头到尾的经过: iconv("UTF-8","GB2312//IGNORE",$data) ignore的意趣是忽略转变时的大谬不然,若无ignore参数,全数该字符前面包车型地铁字符串都力所比不上被保存。 iconv不是php的私下认可函数,也是默许安装的模块。需求设置技巧用的。 假如是windows二零零一+php,你能够改良php.ini文件,将extension=php_iconv.dll前的";"去掉,相同的时候你要copy你的原php安装文件下的iconv.dll到您的winnt/system32下 在linux蒙受下,用静态安装的点子,在configure时增添豆蔻梢头项 --with-iconv就足以了,phpinfo看获得iconv的项。(Linux7.3+Apache4.06+php4.3.2), 下载:ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz 安装: 复制代码 代码如下: #cp libiconv-1.8.tar.gz /usr/local/src #tar zxvf lib* #./configure --prefix=/usr/local/libiconv #make #make install 编译php #./configure --prefix=/usr/local/php4.3.2 --with-iconv=/usr/local/libiconv/ 使用的简要例子: 复制代码 代码如下: < ?php header("content-Type: text/html; charset=Utf-8"); echo mb_convert_encoding("妳係笔者的友仔", "UTF-8", "GBK"); ?> 再来个GB2312 To Big5 复制代码 代码如下: < ?php header("content-Type: text/html; charset=big5"); echo mb_convert_encoding("你是本身的敌人", "big5", "GB2312"); ?> 可是要采用方面包车型大巴函数必要安装不过要求先enable mbstring 增添库。 PHP中的别的一个函数iconv也是用来调换字符串编码的,与上函数功能相符。 上面还应该有意气风发部分详细的事例: iconv — Convert string to requested character encoding (PHP 4 >= 4.0.5, PHP 5) mb_convert_encoding — Convert character encoding (PHP 4 >= 4.0.6, PHP 5) 用法: string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] ) 需要先enable mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉 mb_convert_encoding 能够钦定多样输入编码,它会依附内容自动识别,但是实践作用比iconv差太多; string iconv ( string in_charset, string out_charset, string str ) 注意:第贰个参数,除了能够钦定要转正到的编码以外,还能追加四个后缀://TRANSLIT 和 //IGNORE,在那之中 //TRANSLIT 会自动将不能够直接转接的字符形成三个或四个八九不离十的字符,//IGNORE 会忽视掉不能够转变的字符,而暗许效果是从第三个非法字符截断。 Returns the converted string or FALSE on failure. 使用: 发掘iconv在调换字符”—”到gb2312时会出错,如果未有ignore参数,全体该字符前面包车型客车字符串都没有办法儿被保存。不管怎么着,那么些”—”都不能转变到功,不恐怕输出。 其它mb_convert_encoding未有这一个bug. 日常情况下用 iconv,独有当蒙受无法明确原编码是何种编码,只怕iconv转变后无法日常突显时才用mb_convert_encoding 函数. from_encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. If it is not specified, the internal encoding will be used. /* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */ $str = mb_convert_encoding($str, "UCS-2LE”, "JIS, eucjp-win, sjis-win”); /* "auto” is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS” */ $str = mb_convert_encoding($str, "EUC-JP”, "auto”); 例子: 复制代码 代码如下: $content = iconv(”GBK”, "UTF-8", $content); $content = mb_convert_encoding($content, "UTF-8", "GBK”);

复制代码 代码如下: class mysql { private $db; // datebase connect private $result; // mysql result static private $mysql; // mysql object private function __construct() { // The work before Create an object $this->db = mysql_connect('localhost','root',''); mysql_select_db; } public static function getObject() { //if have a object,return that object,Not create if(! self::$mysql instanceof self) self::$mysql = new self; return self::$mysql; } public function query { $this->result = mysql_query; return $this->result; } public function fetch() { if( isset return mysql_fetch_assoc; } public function error() { return 'error:'.mysql_error(); } public function num() // for sql select result { return mysql_num_rows; } public function close() { // return true or false return mysql_close; } } 那样做看起来就只对可移植有用,别的的魔法还心得不到

复制代码 代码如下: include 'mysql.php'; $mysql= mysql::getObject(); $mysql->query; $xml = new XMLWriter(); $xml->openUri; // or 'php://output' $xml->setIndentString; $xml->setIndent; // start $xml->startDocument; // $xml->startElement; $xml->writeAttribute; // $xml->startElement; // title $xml->startElement; $xml->text; $xml->endElement(); // link $xml->startElement; $xml->text(''); $xml->endElement(); // description $xml->startElement; $xml->text; $xml->endElement(); // language $xml->startElement; $xml->text; $xml->endElement(); // category $xml->startElement; $xml->text; $xml->endElement(); // copyright $xml->startElement; $xml->text('copyright 2011 jb51.net'); $xml->endElement(); // for item while( $row = $mysql->fetch { $xml->startElement; // title $xml->startElement; $xml->text; $xml->endElement(); // link $xml->startElement; $xml->text( ''); $xml->endElement(); // description $xml->startElement; $xml->text; $xml->endElement(); // pubDate $xml->startElement; $xml->text( date('D, d M Y H:i:s T', $row['time']) ); $xml->endElement(); // category tag author need to write .over $xml->endElement(); // item } $xml->endElement(); // channel $xml->endElement(); // rss $xml->endDocument; 前面包车型地铁mysql.php 是包装的mysql数据库功用,单例格局,所以取对象是静态方法 mysql::getObject 方法的参数可以是三个文件,那么xml数据就写入到这么些文件 可能 php://output 输出到缓冲区,然后 flush方法输出到页面

php代码

json_encode 只帮衬utf-8格式那一个就十分少说了 复制代码 代码如下: $array = array ( [0] => array ( [sale_unit_detail_id] => 13 [price] => 740000 [geometric_lat] => 51.50348620 [geometric_lng] =>-0.01710900 ) [1] => Array ( [sale_unit_detail_id] => 27 [price] => 740000 [geometric_lat] => 51.50348620 [geometric_lng] => -0.01710900 ) ); 上面的php数组json_encode 之后平时会转变php数组会转变为形如[[...][...]] 的格式,然则明日遇到四个怪难点,当自家的数董事长度达到142的时候 给本身转载为了形如 {'0' :{..},'1':{...}......}的格式很奇异,json_encode 三个奇妙的函数 php中json_encode转数组为json字符串时的超离奇难点。 比较之下两段代码: 复制代码 代码如下: $menu[0][0] = "title1"; $menu[0][1] = "bar1"; $menu[0][2] = "bar2"; $menu[1][0] = 'title2'; $menu[2][0] = 'title3'; echo '&$menu='.json_encode.'&'; 这么些会输出:&$menu=[["title1","bar1","bar2"],["title2"],["title3"]]& 复制代码 代码如下: $menu[0]["title"] = "title1"; $menu[0]["bar1"] = "bar1"; $menu[0]["bar2"] = "bar2"; $menu[1][0] = 'title2'; $menu[2][0] = 'title3'; echo '&$menu='.json_encode.'&'; 而那些仍旧输出:&$menu=[{"title":"title1","bar1":"bar1","bar2":"bar2"},["title2"],["title3"]]& 什么意思?难题就在于{}和[],{}是对象,[]是数组!!!!在非php的事态下遍历的时候方法就不黄金年代致了!json_encode这些事物太玄妙了,奇妙起来令人有一点点苦恼!

本文由云顶娱乐yd2221发布,转载请注明来源:linux系统上支撑php的,XMLWriter类的简易示例代码