|
|
|
เขียน PHP ให้เช็ค Expression ครับ ในกรณีที่เกิด Error ได้แก่ +2+8,5++5,8+9- ในกรณีที่ถูก 5+5,6+3+5*8 |
|
|
|
|
|
|
|
Code (PHP)
function check_formula( $s ){
echo preg_match( '/^[0-9]+([\+\-\*\/][0-9]+)+(,[0-9]+([\+\-\*\/][0-9]+)+)*$/' , $s) ? 'ok' : 'wrong';
echo '<pre>', print_r(explode(',', $s), true),'</pre>';
}
|
ประวัติการแก้ไข 2015-09-14 19:32:42 2015-09-14 19:40:14
|
|
|
|
Date :
2015-09-14 19:05:56 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คำสั่งแยกดัวย element ใช้ explode() ลองหาอ่านดูครับ
เมื่อแยก ด้วย คอมม่าแล้ว
ก็ให้แยก ด้วย operator ก็จะได้ operand
แยกด้วย operand ก็จะได้ operator ลองดูครับ
|
|
|
|
|
Date :
2015-09-14 20:50:30 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เข้าใจละครับ แต่ใน explode จะกำหนดยังไงให้ได้หลายๆตัวครับ ตัวต้องการแยก
Code (PHP)
<?php
function check_ex( $s )
{
$op = array('+','-','*','/');
$num = array('0','1','2','3','4','5','6','7','8','9');
echo preg_match( '/^[0-9]+([\+\-\*\/][0-9]+)+(,[0-9]+([\+\-\*\/][0-9]+)+)*$/' , $s) ? 'ok' : 'wrong';
echo "<br>";
echo "<br>";
if (!preg_match( '/^[0-9]+([\+\-\*\/][0-9]+)+(,[0-9]+([\+\-\*\/][0-9]+)+)*$/' , $s))
{
echo"Expression Invalid";
}
else
{
echo"Expression is valid";
echo "<br>";
echo"Operand";
echo '<pre>', print_r(explode('+', $s), true),'</pre>';
echo"Operator";
echo '<pre>', print_r(explode('0', $s), true),'</pre>';
}
}
check_ex("05*65+9+8");
?>
|
|
|
|
|
Date :
2015-09-15 09:56:58 |
By :
meatspin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|