作者 主題: php iconv的問題  (閱讀 9677 次)

0 會員 與 1 訪客 正在閱讀本文。

olderboy

  • 憂鬱的高中生
  • ***
  • 文章數: 100
    • 檢視個人資料
php iconv的問題
« 於: 2008-06-27 10:42 »
 ???

我現在遇到一個很奇怪的問題

我寫了一行程式如下:
引用
#!/usr/local/bin/php -q
<?php
$string="Hello!! world";
print iconv("UTF-8","BIG5//TRANSLIT",$string);
?>

我如在 linux下,直接下command: php test.php
竟是出現空白,iconv的功能完全不見了

但如我改用 lynx test.php ,就是用browser來跑的話!!竟就沒有這個問題,是可以執行的
我也有去看過我的phpinfo,但裡面也是有包含iconv這個founction的

我的php version:5.2.5
     linux version:centos 4.6


不知大家有遇到過這樣的怪問題嗎??
用google找了一段時間了,一直沒有找到相同的問題
還請大家指點一下了  Thanks

Nick

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5396
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
回覆: php iconv的問題
« 回覆 #1 於: 2008-06-27 10:58 »
CLI 與 Apache module 的設定不同吧. 你看到 phpinfo, 是透過 browser 看的吧?
php -m 看看有那些 module 吧.

CentOS 官方的版本是共用 php.ini 的, 不過... php 5.2.5 並不是 CentOS 4 裡頭的版本. 應該是你自己裝的.... 那就自己慢慢找問題吧.

如果找不到問題, 就在前頭加上 extension_loaded() 或 function_exists() 去檢查看看有沒有載入該模組, 如果沒有, 就用 dl() 去載入再去呼叫該函式吧.

olderboy

  • 憂鬱的高中生
  • ***
  • 文章數: 100
    • 檢視個人資料
回覆: php iconv的問題
« 回覆 #2 於: 2008-06-27 12:07 »
CLI 與 Apache module 的設定不同吧. 你看到 phpinfo, 是透過 browser 看的吧?
php -m 看看有那些 module 吧.

CentOS 官方的版本是共用 php.ini 的, 不過... php 5.2.5 並不是 CentOS 4 裡頭的版本. 應該是你自己裝的.... 那就自己慢慢找問題吧.

如果找不到問題, 就在前頭加上 extension_loaded() 或 function_exists() 去檢查看看有沒有載入該模組, 如果沒有, 就用 dl() 去載入再去呼叫該函式吧.

Dear twu2

謝謝你的回覆,我有用php -m 去檢查過了,是有iconv這個module的
之後我也有用 function_exists()去檢查,程式如下:
引用
<?php
if (function_exists('iconv')) {
   echo "iconv functions are available.<br/>\n";
} else {
   echo "iconv functions are not available.<br/>\n";
}
?>
在去跑了以後,也是出現iconv functions are available
但我要跑上面的程式就是不行,真的是太奇怪了

我php config的參數如下:
引用
'./configure'  '--prefix=/usr/local' '--exec-prefix=/usr/local' '--bindir=/usr/local/bin' '--sbindir=/usr/local/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/local/include' '--libdir=/usr/local/lib' '--libexecdir=/usr/libexec' '--with-apxs2=/usr/local/bin/apxs' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-config-file-path=/etc' '--enable-force-cgi-redirect' '--with-pic' '--disable-rpath' '--disable-short-tags' '--enable-inline-optimization' '--with-db4=/usr' '--with-curl=/usr' '--with-exec-dir=/usr/bin' '--with-gd=/usr/local' '--enable-gd-native-ttf' '--with-ttf' '--with-gdbm' '--with-gettext' '--with-iconv' '--with-jpeg-dir=/usr/local' '--with-zlib=/usr' '--with-layout=GNU' '--enable-ftp' '--enable-magic-quotes' '--enable-safe-mode' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-discard-path' '--without-oci8' '--with-pear=/usr/share/pear' '--enable-mbstring' '--enable-mbregex' '--with-kerberos=/usr/kerberos' '--with-mysql' '--enable-bcmath' '--enable-shmop' '--enable-calendar' '--with-mime-magic' '--enable-exif' '--with-oci8=instantclient,/usr/lib/oracle/10.2.0.3/client/lib' '--with-mysqli' '--enable-sqlite-utf8' '--enable-soap' '--enable-wddx' '--with-libxml-dir=/usr' '--with-freetype-dir=/usr/local' '--with-mssql=/usr/local/freetds' '--enable-pcntl'

如還有其它可能的話,還請在指點一下了。
Thanks

Nick

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
回覆: php iconv的問題
« 回覆 #3 於: 2008-06-27 13:13 »
試試看 echo iconv()."\n"; 這樣呢?...
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

olderboy

  • 憂鬱的高中生
  • ***
  • 文章數: 100
    • 檢視個人資料
回覆: php iconv的問題
« 回覆 #4 於: 2008-06-27 14:29 »
試試看 echo iconv()."\n"; 這樣呢?...

Dear Darkhero

下面是我執行後產生的訊息
引用
Warning: iconv() expects exactly 3 parameters, 0 given in /tmp/t.php on line 2

還麻煩在指點一下了

Thanks

Nick

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
回覆: php iconv的問題
« 回覆 #5 於: 2008-06-27 14:38 »
我想我的意思是要你在原來的 iconv 後面加上 \n 不是要你丟一個空白的沒有參數的.....
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

olderboy

  • 憂鬱的高中生
  • ***
  • 文章數: 100
    • 檢視個人資料
回覆: php iconv的問題
« 回覆 #6 於: 2008-06-27 15:23 »
我想我的意思是要你在原來的 iconv 後面加上 \n 不是要你丟一個空白的沒有參數的.....

Dear Karkhero

Sorry, 我加的程式如下:
引用
<?php
$string="Hello!! world";
print iconv("UTF-8","BIG5//TRANSLIT",$string)."\n";
?>

還是出現空白,只是這次的空白是兩行,不知道還有什麼可以會造成這個原因的呢??

Thanks

Nick

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
回覆: php iconv的問題
« 回覆 #7 於: 2008-06-27 15:28 »
看樣子在我的系統是正常的勒...

或許有其他的問題產生了?...不過目前這樣也無從追起...
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5396
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
回覆: php iconv的問題
« 回覆 #8 於: 2008-06-27 15:33 »
沒權限? 用 root 跑看看?

找台機器用官方的版本跑看看吧. 不然找別人的 src.rpm 回來用看看吧.
我們公司 CentOS 4 上頭的 php 4 沒有問題. CentOS 5 上頭用 jason 版的 5.2.6 也沒有問題.

手槍鵝

  • 訪客
回覆: php iconv的問題
« 回覆 #9 於: 2008-06-27 17:44 »
代碼: [選擇]
<?
$string="Hello!! world";
print iconv("UTF-8","BIG5//TRANSLIT",$string)."\n";
?>

>> linux on FC3

[foo@fc3 www]$ php -v
PHP 4.4.8 (cli) (built: Jun  6 2008 15:05:06)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
    with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies

[foo@fc3 www]$ php tt.php
Hello!! world


>> win32 on win2003

Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\www\apache\htdocs>php -v
PHP 5.2.4 (cli) (built: Aug 30 2007 07:06:31)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

C:\www\apache\htdocs>php tt.php
Hello!! world


最大可能,手沒洗乾淨。

olderboy

  • 憂鬱的高中生
  • ***
  • 文章數: 100
    • 檢視個人資料
回覆: php iconv的問題
« 回覆 #10 於: 2008-07-01 11:06 »
這真的很奇怪,我有三台主機都是用同樣的方式去安裝,但就只有這一台會無法執行
另兩台都可以,比對了所有的設定,但就還是一樣不行

實在是被打敗了~~


梁楓

  • 俺是博士!
  • *****
  • 文章數: 6220
    • 檢視個人資料
回覆: php iconv的問題
« 回覆 #11 於: 2008-07-01 12:52 »
如果你是簡繁/繁簡切換
我個人不是用iconv,缺字有點嚴重,常常會讓文件變空白

當然,你現在這個問題並不是缺字造成的

olderboy

  • 憂鬱的高中生
  • ***
  • 文章數: 100
    • 檢視個人資料
回覆: php iconv的問題
« 回覆 #12 於: 2008-07-01 15:32 »
終於讓我解決了

我重新安裝php,但在做make 的時候,還是會出現iconv的錯誤
於是我在google上找到了一個解決方法

修改 Makefile:
加入EXTRA_LIBS = -lcrypt -lcrypt -liconv
在重新make && make install

沒想到,問題竟就解決了

感謝大家的幫忙

Nick :D

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
回覆: php iconv的問題
« 回覆 #13 於: 2008-07-01 16:45 »
所以有可能的就是當初編譯出來的 iconv 模組就是有問題的...
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/