1. วันนี้ (1 ก.พ.59) อ.ตุ้ย แจ้งว่าเครื่องบริการเครื่องหนึ่ง
ลง appserv 2.5.10 ที่มีรุ่นของ php เป็น 5.2.6
ซึ่งเป็น appserv รุ่นล่าสุด ที่มี php รุ่น 5
แต่รุ่นถัดมาคือ appserv 8.0 ใช้ php รุ่น 5.6.17 กับ 7.0.2
ซึ่งผมไม่เลือกการลง appserv รุ่นใหม่ เพราะ php ใหม่เกินไป
https://www.appservnetwork.com/en/
2. จุดเริ่มต้น เกิดจากคุณเปรม พบปัญหาในการพัฒนาระบบ
ต้องการส่งอีเมลเป็นภาษาจีนพร้อมภาษาไทย พบปัญหา
โดยฟังก์ชัน mail ส่งข้อมูลไปแล้ว
มีปัญหาไม่แสดงผลภาษาจีนร่วมกับภาษาไทยใน gmail คือ ภาษาจีนหายไปเฉย ๆ
วิธีหนึ่งที่แก้ไขได้คือแปลภาษาจีนที่เป็น unicode เป็น html entities
http://unicode.online-toolz.com/tools/unicode-html-entities-convertor.php
3. การแปลง unicode เป็น html entities ใช้ฟังก์ชันง่าย ๆ ได้เลย
โดยใช้ preg_replace_callback แล้วสร้างฟังก์ชันภายในฟังก์ชัน
แต่ php 5.2 ไม่ยอมรับฟังก์ชันแบบนี้
http://stackoverflow.com/questions/13280200/convert-unicode-to-html-entities-hex
คุณซันก็แนะนำ create_function ซึ่งก็น่าสนใจ
ที่ http://php.net/manual/en/function.create-function.php
4. วิธีที่ผมเลือกแก้ปัญหานี้ คือการ upgrade php จาก 5.2.6 เป็น 5.4.45
ซึ่งความต่างของรุ่น น่าจะกระทบ code ทั้งระบบน้อยกว่าการลง 5.6.17 กับ 7.0.2
– download php 5.4.45 ที่เป็น thread safe for windows มาแตก zip
– stop service ของ apache
– backup php ไว้ก่อน
– copy แฟ้มที่แตกไว้ เข้าห้อง php
– start service ของ apache
– ใช้ phpinfo() ตรวจรุ่นของ php
– ทดสอบ script ใน server ทั้งหมด
– ถ้ามีปัญหา ก็ copy php ที่ backup ไว้ กลับมาทับห้องเดิม
– กลับไปแก้ script ใน server ทั้งหมดให้ทำงานกับ php version ใหม่
– แล้วค่อยย้อนขั้นตอนข้างบนอีกครั้ง
* script ในเครื่องมี programer สัก 4 คนได้มังครับ
5. เลขรุ่นของ appserv ขยับจาก 2.5.10 มาเป็น 8.0.0 ข้ามเลขไปหลายตัว
คาดว่า เพราะเวลาในการพัฒนามีน้อย และมีงานประจำต้องทำ
ผมเองก็พัฒนา thaiabc.com ก็มีแนวคิดคล้าย appserv
นี่ก็หยุดอัพเวอร์ชั่น ไปหลายปีแล้วเหมือนกัน
http://www.thaiabc.com
https://www.facebook.com/media/set/?set=a.10153893646492272.1073741911.350024507271