A-AA+then

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

1,435
ต้องการแทนข้อมูลที่กำหนดมากโดยการอ่านข้อมูลในไฟล์ เช่น
ข้อมูล
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

5 ความคิดเห็น

: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
^