ผมจะกำหนด regular expression ยังไงให้ดึงเฉพาะตัวอักษรและตัวเลขเท่านั้นอ่ะคัรบ
Code (PHP)
<?php
$str = "my Text @ # . * )( {} & 1 2 345";
echo preg_replace('/[^0-9a-z]+/iu', '', $str);
Regular Expression มันไม่ง่ายอยู่แล้วครับ
แนะนำให้อ่านใน PHP Manual ครับ ผมก็ศึกษาจากในนั้นทั้งหมด
Date :
2014-11-12 14:33:17
By :
FRINGE
echo preg_replace("/[^\da-z]+/i","",'ab cd ef 123');
[] กำหนดบล๊อกเลือกอักขระอะไรก็ได้ที่อยู่ข้างใน
[\d] เลือก ตัวเลข
[a-z] เลือก ตัวอักษรภาษาอังกฤษ
[\da-z] เลือก ตัวเลข และ ตัวอักษรภาษาอังกฤษ
ใส่ ^ ไม่เอา [^\da-z] ไม่เอาตัวเลขหรือตัวอักษรภาษาอังกฤษ
ใส่ + จะมีกี่ตัวก็ได้ [^\da-z]+
ใส่ /.../ เป็นpattern บอกว่าเป็น regular expression
ใส่ i ต่อท้ายไม่สนเล็กใหญ่ /[^\da-z]/i
มีอีกเยอะ ตามคห 1 ว่าล่ะครับ อ่าน documnent เยอะๆ
ประวัติการแก้ไข 2014-11-12 16:31:01 2014-11-12 16:32:34
Date :
2014-11-12 16:29:52
By :
Chaidhanan
อย่างผมจะดึง Top 10 ข่าวยอดนิยมของเว็บ http://news.tlcthai.com/category/entertainment ที่อยู่ด้านขวามือเป็นสีเทาๆมาอ่ะครับซึ่งมันเป็นแท็ค ul กับ li ผมเขียนโค๊ดแบบนี้พอแสดงผลมันไม่ดึงตามที่ต้องการมาให้อ่ะครับ
Code (PHP)
$url = "http://news.tlcthai.com/category/entertainment";
$html = file_get_contents($url);
$pattern = '/<div id="topten" class="sidebar-tophitz_content">(.+)<\/div>/s';
preg_match($pattern, $html, $new);
Date :
2014-11-17 01:44:10
By :
โจจิงหรือ
Code (PHP)
<?php
$a=<<<HTML
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<ul>
<li>TEST1</li>
<li>TEST2</li>
<li>TEST3</li>
<li>TEST4</li>
<li>TEST5</li>
<li>TEST6</li>
</ul>
</body>
</html>
HTML;
$m=array();
$tagname='li';
$p="#<\s*?$tagname\b[^>]*>(.*?)</$tagname\b[^>]*>#";
preg_match_all( $p, $a, $m);
print_r($m);
?>
ประวัติการแก้ไข 2014-11-17 10:31:05
Date :
2014-11-17 07:08:51
By :
Chaidhanan
Load balance : Server 01