ใช้ simplexml_load_file() ขึ้น conversion failed ช่วยทีสิคะ

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

nupha45
PHP Jr. Member
PHP Jr. Member
Posts: 13
Joined: 13/08/2008 7:59 pm

ใช้ simplexml_load_file() ขึ้น conversion failed ช่วยทีสิคะ

Post by nupha45 » 13/08/2008 8:12 pm

คือว่า เราใช้
$xml = simplexml_load_file('ชื่อ url ของไฟล์ xml');
แล้วในไฟล์ xml เค้าใส่ <?xml version="1.0" encoding="tis-620" ?> มาด้วยค่ะ
พอรัน จะขึ้นว่า

Warning: simplexml_load_file() [function.simplexml-load-file]: input conversion failed due to input error, bytes 0x96 0x20 0xC3 0xD1 in /home/www/clickinter/fah/www/gmm/index.php on line 31

ซึ่ง ที่เราพอจะรู้ก็คือ เลขฐาน16 bytes 0x96 นี่มันคือ -(dash)

ดังนั้นเราเข้าใจว่า ในเอกสาร xml ที่เราไปอ่านมา มันมีตัวอักษรบางตัวที่เป็นแบบนี้ ... หรือ - ซึ่ง มันอ่านไม่ออก
เราเลยอยากรู้ว่าก่อนที่เราจะอ่านไฟล์นี้จะต้องทำยังไงดีให้มันสามารถอ่านตัวอักษรแบบนี้ได้คะ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22257
Joined: 22/09/2008 6:18 pm
Contact:

Re: ใช้ simplexml_load_file() ขึ้น conversion failed ช่วยทีสิคะ

Post by mindphp » 13/08/2008 8:52 pm

รูปแบบของเอกสาร XML อาจจะไม่ถูกต้อง
ลองเปิด xml file กับ browser ดูครับ ว่าแสดงผลได้หรือเปล่า
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

nupha45
PHP Jr. Member
PHP Jr. Member
Posts: 13
Joined: 13/08/2008 7:59 pm

Re: ใช้ simplexml_load_file() ขึ้น conversion failed ช่วยทีสิคะ

Post by nupha45 » 13/08/2008 9:11 pm

ลองเปิดดูทั้งใน IE และ FireFox ก็เปิดได้ค่ะ แสดงผลเป็นรูปแบบ xml ไฟล์เลย

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22257
Joined: 22/09/2008 6:18 pm
Contact:

Re: ใช้ simplexml_load_file() ขึ้น conversion failed ช่วยทีสิคะ

Post by mindphp » 13/08/2008 9:43 pm

ลอง save as ไฟล์ xml นั้นเป็น UTF-8
แล้วลองรันใหม่ดู
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

nupha45
PHP Jr. Member
PHP Jr. Member
Posts: 13
Joined: 13/08/2008 7:59 pm

Re: ใช้ simplexml_load_file() ขึ้น conversion failed ช่วยทีสิคะ

Post by nupha45 » 13/08/2008 11:05 pm

ขอบคุณมากๆนะคะ

ตอนนี้ทำได้แล้วค่ะ โดยการ copy ข้อมูลมาก่อนจากนั้นก็convertให้เป็น 'iso-8859-11' ก่อนค่ะ แล้วค่อย ใช้ simplexml ดึงมาใช้
code ยาวหน่อยแต่ก็น่าจะใช้ได้ค่ะ

จริงๆแล้วไม่มีความรู้ด้านนี้เลยค่ะ พึ่งหัดเขียนก็ดูจาก php.net เอาค่ะ
แต่ถ้าใครมีวิธีแปลงง่านกว่านี้ ก็ช่วยสอนด้วยนะคะ

ขอบคุณค่ะ

$f=fopen("url","r") or exit("ไม่สามารถเปิดไฟล์ได้ !");
$open = fopen("copy.xml","w") ;
while (!feof($f)) {
$x=fgetc($f); //อ่านข้อความจากไฟล์มาทีละบรรทัด
fwrite($open,"$x") ; //วนลูปเพื่อเขียนข้อความที่อ่านมาลงสู่ไฟล์ที่กำหนด
}
fclose($f);
fclose($open) ;

$f=fopen("copy.xml","r") or exit("ไม่สามารถเปิดไฟล์ได้ !");
$open = fopen("copy1.xml","w") ;
while (!feof($f)) {
$x=fgetc($f); //อ่านข้อความจากไฟล์มาทีละบรรทัด
$conv_str = iconv('tis-620','iso-8859-11'.'//TRANSLIT',$x);
fwrite($open,"$conv_str") ; //วนลูปเพื่อเขียนข้อความที่อ่านมาลงสู่ไฟล์ที่กำหนด
}
fclose($f);
fclose($open) ;

$xml = simplexml_load_file('copy1.xml');

Post Reply

Return to “Programming - PHP”

Who is online

Users browsing this forum: No registered users and 61 guests