ต้องการอ่านข้อมูลในไฟล์ตามที่ข้อมูลต้องการ แล้วแทนค่านั้นๆ HomeForumต้องการอ่านข้อมูลในไฟล์ตามที่ข้อมูลต้องการ แล้วแทนค่านั้นๆ gukorn ต้องการแทนข้อมูลที่กำหนดมากโดยการอ่านข้อมูลในไฟล์ เช่น ข้อมูล aaaaaa-[111]bbbbb[222]cvb[333]cvb ไฟล์ 111.php กกกกกกก ไฟล์ 222.php <? $i=100+500; echo $i ?> ไฟล์ 333.php <? ceho "AAAA@hot.com"; ?> แล้วได้ผลออกมาเป็น aaaaaa-กกกกกกกbbbbb600cvbAAAA@hot.comcvb กรกฎ วิริยะ ถ้าต้องการแทนที่ข้อความก็ใช้ str_replace ได้ครับ เช่น str_replace('111', 'กกกกกกก', $data); ปัญหาก็คือผมไม่รู้ว่าอะไรคือข้อกำหนดในการแทนที่ ซึ่งถ้าข้อกำหนดคงที่ตามตัวอย่างด้านบนก็จะสามารถทำได้โดยฟังก์ชั่นง่ายๆด้านบน แต่ถ้ากฏการแทนที่ไม่คงที่ เช่นข้อความที่จะแทนที่ไม่ชัดเจนหรือเปลี่ยนแปลงได้ ก็คงยากหน่อยแหละครับ เพราะปกตืแล้ว ถ้าไม่มีกฏคงยากที่จะเขียนคำสั่ง ซึ่งกฏที่ว่านี้ไม่ได้บอกมา วิธีการที่ต้องการผมไม่รู้ว่าจะใช้ทำอะไร (หาเหตุผลไม่เจอ) แต่ก็น่าจะทำให้มีปัญหาด้าน performance พอสมควรละครับ ซึ่งผมคิดว่าถ้าต้องการแค่พรางตัวอักษร น่าจะใช้เทคนิคอื่นนะ gukorn เหตุผลที่ทำเพื่อใส่ โมดูล ที่เลือกมา คือทำเว็บแล้วเราสามารถปรับเปลี่ยนได้ตลอดเวลา โดยไม่ต้องแก้ไขโค้ด คือเราจะเพื่มคำสั่งเข้าไป เมื่อเลือกโมดูล เช่น หน้าเว็บที่ใช้แสดงข่าวสารต่าง ที่เราพิมพ์เข้าไปเองได้ แล้วต้องการใส่โมดูลนาฬิกาเข้าไป(โมดูลมีหลายอย่างให้เลือก) เราก็เลือกโมดูลนาฬิกานั้น เมื่อเลือก ชุดคำสั่งจะไปในบทความข่าวสาร เมื่อsave และแสดงผลออกมา มีวิธีไหนบ้างที่ทำได้ ปวดหัวมาหลายวันแล้ว กรกฎ วิริยะ 55+++ เขียนมาซะมึนตึบ.. จริงๆแล้ว ความต้องการที่ว่ามาก็แค่ widgets ของ GCMS ซึ่งถ้ายังงงอยุ่ก็ลองศึกษา GCMS ดุได้ครับ แนวคิด....จะว่าไปจริงๆก้ไม่มีอะไรยากครับ อย่างแรกเลย คือกฏ ละครับ ยกตัวอย่าง GCMS ใช้กฏคือ {WIDGET_widgetname} ซึงจะเห็นว่า ข้อความที่เป็นคีย์เวิร์ดคือ WIGET_ ครับ และโมดูลหรือคำสั่งที่ต้องทำคือ widgetname ครับ อย่างที่สองคือการกระทำ ตามที่เลือก คือ widgetname ครับ ซึ่งอย่างง่ายๆคือการแทนที่ข้อความ widgetname ด้วยคำสั่งที่ต้องการ เช่น อาจแทนที่ด้วยโค้ดนาฬิกาเป้นต้น แนวคิดเพิ่มเติม... วิธีการข้างต้นถ้าออกแบบโครงสร้างให้เหมาะสม ก็จะสามารถยืดหยุ่นได้ครับ เช่น อย่างที่ใช้บน GCMS ผมใช้คำสั่งในกลุ่ม preg_ เพื่อให้สามารถประมวลผล PHP ได้แทนครับ เนื่องจากคำสั่งที่ใช้จะยืดหยุ่นกว่า ทั้งหมดนี้ถ้าจะให้ผมอธิบายโดยละเอียดก็คงจะยาวละครับ ซึ่งสิ่งที่คุณต้องการสามารถศึกษาได้จากโค้ดของ GCMS ละครับ หรืออาจต้องประยุกตืเอาแนวคิดไปใช้ละครับ หากโครงสร้างที่ใช้ ไม่สอดคล้องกับ GCMS ลองดูนะครับ gukorn ผมทำไม่ได้ตรงการใช้ค่าต่างๆในไฟล์phpที่เข้าไปอ่าน ข้อมูลนั้นไม่เอาออกมาแสดงด้วย เช่น echo $test=123; ขอตัวอย่างโค้ดง่ายๆได้ไหมครับ จะได้ศึกษาดู ผมไม่รู้ว่าเค้าเรียกแบบว่าอะไรครับ ขอบคุณครับ กรกฎ วิริยะ จริงๆแล้วมันก็คงไม่ง่ายนักหรอกครับ เพราะ ระบบมันต้องสอดคล้องกัน ถึงจะทำเหมือนที่ GCMS ทำได้ ซึ่งโดยส่วนตัวผมก็ไม่รู้ว่าเธอทำแบบไหนไว้ ถึงจะได้แนะนำถูก และข้อจำกัดของแต่ละระบบก็จะแตกต่างกันออกไป ซึ่งถ้าผมบอกให้เธอออกแบบตั้งแต่ต้นใหม้เพื่อให้สอดคล้องกับสิ่งที่ GCMS ทำ ก็คงเป็นไปไม่ได้... ดังนั้นถ้าต้องการคำตอบอาจต้องอธิบายให้ผู้อื่นเข้าใจได้ ถึงจะได้รับคำตอบนะครับ แนวคิดตรงๆก็คือการแทนที่ข้อความแหละครับ ขึ้นอยู่กับว่าออกแบบไว้อย่างไร เช่น <?php // เนื้อหาที่มีการกำหนดค่าเพื่อแทรก widget test $contents = 'ทดสอบ{TEST}ครับผม'; // โหลด widget test $widget = file_get_contents('test.html'); // แทนค่าลงในเนื้อหา echo str_replace('{TEST}', $widget, $contents); ?> ลองเขียนโค้ด HTML ใดๆใส่ลงใน test.html ดูครับ หรืออาจเป็น php ก็ได้ หลักการจริงๆก็มีแค่นี้แหละครับ ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
ถ้าต้องการแทนที่ข้อความก็ใช้ str_replace ได้ครับ เช่น str_replace('111', 'กกกกกกก', $data);
ปัญหาก็คือผมไม่รู้ว่าอะไรคือข้อกำหนดในการแทนที่ ซึ่งถ้าข้อกำหนดคงที่ตามตัวอย่างด้านบนก็จะสามารถทำได้โดยฟังก์ชั่นง่ายๆด้านบน แต่ถ้ากฏการแทนที่ไม่คงที่ เช่นข้อความที่จะแทนที่ไม่ชัดเจนหรือเปลี่ยนแปลงได้ ก็คงยากหน่อยแหละครับ เพราะปกตืแล้ว ถ้าไม่มีกฏคงยากที่จะเขียนคำสั่ง ซึ่งกฏที่ว่านี้ไม่ได้บอกมา
วิธีการที่ต้องการผมไม่รู้ว่าจะใช้ทำอะไร (หาเหตุผลไม่เจอ) แต่ก็น่าจะทำให้มีปัญหาด้าน performance พอสมควรละครับ ซึ่งผมคิดว่าถ้าต้องการแค่พรางตัวอักษร น่าจะใช้เทคนิคอื่นนะ
เหตุผลที่ทำเพื่อใส่ โมดูล ที่เลือกมา คือทำเว็บแล้วเราสามารถปรับเปลี่ยนได้ตลอดเวลา โดยไม่ต้องแก้ไขโค้ด คือเราจะเพื่มคำสั่งเข้าไป เมื่อเลือกโมดูล
เช่น
หน้าเว็บที่ใช้แสดงข่าวสารต่าง ที่เราพิมพ์เข้าไปเองได้ แล้วต้องการใส่โมดูลนาฬิกาเข้าไป(โมดูลมีหลายอย่างให้เลือก) เราก็เลือกโมดูลนาฬิกานั้น เมื่อเลือก ชุดคำสั่งจะไปในบทความข่าวสาร
เมื่อsave และแสดงผลออกมา
มีวิธีไหนบ้างที่ทำได้ ปวดหัวมาหลายวันแล้ว
เขียนมาซะมึนตึบ..
จริงๆแล้ว ความต้องการที่ว่ามาก็แค่ widgets ของ GCMS ซึ่งถ้ายังงงอยุ่ก็ลองศึกษา GCMS ดุได้ครับ
แนวคิด....จะว่าไปจริงๆก้ไม่มีอะไรยากครับ
อย่างแรกเลย คือกฏ ละครับ ยกตัวอย่าง GCMS ใช้กฏคือ {WIDGET_widgetname} ซึงจะเห็นว่า ข้อความที่เป็นคีย์เวิร์ดคือ WIGET_ ครับ และโมดูลหรือคำสั่งที่ต้องทำคือ widgetname ครับ
อย่างที่สองคือการกระทำ ตามที่เลือก คือ widgetname ครับ ซึ่งอย่างง่ายๆคือการแทนที่ข้อความ widgetname ด้วยคำสั่งที่ต้องการ เช่น อาจแทนที่ด้วยโค้ดนาฬิกาเป้นต้น
แนวคิดเพิ่มเติม...
วิธีการข้างต้นถ้าออกแบบโครงสร้างให้เหมาะสม ก็จะสามารถยืดหยุ่นได้ครับ เช่น อย่างที่ใช้บน GCMS ผมใช้คำสั่งในกลุ่ม preg_ เพื่อให้สามารถประมวลผล PHP ได้แทนครับ เนื่องจากคำสั่งที่ใช้จะยืดหยุ่นกว่า
ทั้งหมดนี้ถ้าจะให้ผมอธิบายโดยละเอียดก็คงจะยาวละครับ ซึ่งสิ่งที่คุณต้องการสามารถศึกษาได้จากโค้ดของ GCMS ละครับ หรืออาจต้องประยุกตืเอาแนวคิดไปใช้ละครับ หากโครงสร้างที่ใช้ ไม่สอดคล้องกับ GCMS
ลองดูนะครับ
เช่น echo $test=123;
ขอตัวอย่างโค้ดง่ายๆได้ไหมครับ จะได้ศึกษาดู ผมไม่รู้ว่าเค้าเรียกแบบว่าอะไรครับ ขอบคุณครับ
ดังนั้นถ้าต้องการคำตอบอาจต้องอธิบายให้ผู้อื่นเข้าใจได้ ถึงจะได้รับคำตอบนะครับ
แนวคิดตรงๆก็คือการแทนที่ข้อความแหละครับ ขึ้นอยู่กับว่าออกแบบไว้อย่างไร เช่น
<?php
// เนื้อหาที่มีการกำหนดค่าเพื่อแทรก widget test
$contents = 'ทดสอบ{TEST}ครับผม';
// โหลด widget test
$widget = file_get_contents('test.html');
// แทนค่าลงในเนื้อหา
echo str_replace('{TEST}', $widget, $contents);
?>
ลองเขียนโค้ด HTML ใดๆใส่ลงใน test.html ดูครับ หรืออาจเป็น php ก็ได้
หลักการจริงๆก็มีแค่นี้แหละครับ