$number = "1+2"; eval('$rs='.$number.';');
echo $number , '=', $rs;$number='1+2';
if(preg_match_all( '/^(\d+)([\*\/\+\-])(\d+)$/', $number, $match)){
echo '<pre>',print_r($match, true),'</pre>';
switch( $match[2][0]){
case '*': $rs=($match[1][0]*$match[3][0]); break;
case '/': $rs=($match[1][0]/$match[3][0]); break;
case '+': $rs=($match[1][0]+$match[3][0]); break;
case '-': $rs=($match[1][0]-$match[3][0]); break;
}
}else $rs="not nuberic funciton";
echo $number,'=',$rs;$match เป็นค่าที่ คำสั่ง preg_match_all ส่งค่ากลับมาให้เรา ในรูปแบบ array
ว่า ค้นหาอะไรเจอบ้าง อ้างอิง จากวงเล็บที่เราสร้างครอบส่วนที่ต้องการให้มีการส่งค่ามา
print_r( $match) ดู ศึกษาว่ามันส่งอะไรมาครับ หา regular expression มาอ่านเพิ่ม
preg_match() สิินะครับ มันเป็นเรื่องของ regular expression ซึ่งเป็นอีกภาษาหนึ่งเลยก็ว่าได้ ถือเป็นเรื่องขั้นสูงครับ จะสอนกันจริงๆ เป็นหนังสือเล่มนึงได้เลย
erige จะเลิกใช้แล้ว ใช้เป็นpreg_match()
ถ้าไม่มีตัวอย่างโค้ดมาให้อธิบายเลย แล้วจะให้อธิบายตั้งแต่เริ่ม เนื้อหามันเยอะมากครับ สำหรับ PCRE (perl-compatible regular expression) เข้าใจยากมากๆ ด้วย
http://www.php.net/manual/en/reference.pcre.pattern.syntax.php
http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php