GORAGOD.com

freelance, web developer, web designer, hosting, domain name

ต้องการอ่านข้อมูลในไฟล์ตามที่ข้อมูลต้องการ แล้วแทนค่านั้นๆ

ต้องการแทนข้อมูลที่กำหนดมากโดยการอ่านข้อมูลในไฟล์ เช่น

ข้อมูล

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
01 ต.ค. 2555 5 2,443

:37:



ถ้าต้องการแทนที่ข้อความก็ใช้ str_replace ได้ครับ เช่น str_replace('111', 'กกกกกกก', $data);



ปัญหาก็คือผมไม่รู้ว่าอะไรคือข้อกำหนดในการแทนที่ ซึ่งถ้าข้อกำหนดคงที่ตามตัวอย่างด้านบนก็จะสามารถทำได้โดยฟังก์ชั่นง่ายๆด้านบน แต่ถ้ากฏการแทนที่ไม่คงที่ เช่นข้อความที่จะแทนที่ไม่ชัดเจนหรือเปลี่ยนแปลงได้ ก็คงยากหน่อยแหละครับ เพราะปกตืแล้ว ถ้าไม่มีกฏคงยากที่จะเขียนคำสั่ง ซึ่งกฏที่ว่านี้ไม่ได้บอกมา



วิธีการที่ต้องการผมไม่รู้ว่าจะใช้ทำอะไร (หาเหตุผลไม่เจอ) แต่ก็น่าจะทำให้มีปัญหาด้าน performance พอสมควรละครับ ซึ่งผมคิดว่าถ้าต้องการแค่พรางตัวอักษร น่าจะใช้เทคนิคอื่นนะ
#1


เหตุผลที่ทำเพื่อใส่ โมดูล ที่เลือกมา คือทำเว็บแล้วเราสามารถปรับเปลี่ยนได้ตลอดเวลา โดยไม่ต้องแก้ไขโค้ด คือเราจะเพื่มคำสั่งเข้าไป เมื่อเลือกโมดูล

เช่น

หน้าเว็บที่ใช้แสดงข่าวสารต่าง ที่เราพิมพ์เข้าไปเองได้ แล้วต้องการใส่โมดูลนาฬิกาเข้าไป(โมดูลมีหลายอย่างให้เลือก) เราก็เลือกโมดูลนาฬิกานั้น เมื่อเลือก ชุดคำสั่งจะไปในบทความข่าวสาร 





เมื่อsave และแสดงผลออกมา





มีวิธีไหนบ้างที่ทำได้ ปวดหัวมาหลายวันแล้ว:39:


#2

55+++



เขียนมาซะมึนตึบ..



จริงๆแล้ว ความต้องการที่ว่ามาก็แค่ widgets ของ GCMS ซึ่งถ้ายังงงอยุ่ก็ลองศึกษา GCMS ดุได้ครับ



แนวคิด....จะว่าไปจริงๆก้ไม่มีอะไรยากครับ



อย่างแรกเลย คือกฏ ละครับ ยกตัวอย่าง GCMS ใช้กฏคือ {WIDGET_widgetname} ซึงจะเห็นว่า ข้อความที่เป็นคีย์เวิร์ดคือ WIGET_ ครับ และโมดูลหรือคำสั่งที่ต้องทำคือ widgetname ครับ



อย่างที่สองคือการกระทำ ตามที่เลือก คือ widgetname ครับ ซึ่งอย่างง่ายๆคือการแทนที่ข้อความ widgetname ด้วยคำสั่งที่ต้องการ เช่น อาจแทนที่ด้วยโค้ดนาฬิกาเป้นต้น



แนวคิดเพิ่มเติม...



วิธีการข้างต้นถ้าออกแบบโครงสร้างให้เหมาะสม ก็จะสามารถยืดหยุ่นได้ครับ เช่น อย่างที่ใช้บน GCMS ผมใช้คำสั่งในกลุ่ม preg_ เพื่อให้สามารถประมวลผล PHP ได้แทนครับ เนื่องจากคำสั่งที่ใช้จะยืดหยุ่นกว่า



ทั้งหมดนี้ถ้าจะให้ผมอธิบายโดยละเอียดก็คงจะยาวละครับ ซึ่งสิ่งที่คุณต้องการสามารถศึกษาได้จากโค้ดของ GCMS ละครับ หรืออาจต้องประยุกตืเอาแนวคิดไปใช้ละครับ หากโครงสร้างที่ใช้ ไม่สอดคล้องกับ GCMS



ลองดูนะครับ
#3

ผมทำไม่ได้ตรงการใช้ค่าต่างๆในไฟล์phpที่เข้าไปอ่าน ข้อมูลนั้นไม่เอาออกมาแสดงด้วย

เช่น echo $test=123;

ขอตัวอย่างโค้ดง่ายๆได้ไหมครับ จะได้ศึกษาดู ผมไม่รู้ว่าเค้าเรียกแบบว่าอะไรครับ ขอบคุณครับ
#4

จริงๆแล้วมันก็คงไม่ง่ายนักหรอกครับ เพราะ ระบบมันต้องสอดคล้องกัน ถึงจะทำเหมือนที่ 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 ก็ได้



หลักการจริงๆก็มีแค่นี้แหละครับ
#5
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^