|
|
|
รบกวนดู preg_match ให้อีกรอบรอบค่ะ อันนี้ซับซ้อนนิดหนึ่งค่ะ |
|
|
|
|
|
|
|
regular expression อีกแล้วค่ะ :(
$data = '
+%2F%3E%0A%09%09%09%3Cinput+type%3D%22hidden%22+name%3D%22bbb81b5%22+value%3D%223413f12f5700156bac65e50bf07a732e%22+%2F%3E%0A%09%09%09%3Cinput+type%3D%22hidden%22+name%3D%22seqnum%22+value%3D%2212646900%22
';
Code (PHP)
$data = '
+%2F%3E%0A%09%09%09%3Cinput+type%3D%22hidden%22+name%3D%22bbb81b5%22+value%3D%223413f12f5700156bac65e50bf07a732e%22+%2F%3E%0A%09%09%09%3Cinput+type%3D%22hidden%22+name%3D%22seqnum%22+value%3D%2212646900%22
';
preg_match_all('............................', $data, $match);
echo '<pre>',htmlspecialchars(print_r($match, true)),'</pre>';
if( count($match[0])){
foreach($match[1] as $vl){
preg_match_all('/topic\=([0-9]+\.[0-9]+)/', $vl, $m1);
if(count($m1[1])) echo $m1[1][0], '<br>';
}
}
จากข้อมูล $data อยาก preg_match ค้นหาคำว่า "hidden%22+name%3D%22" ถ้าเจอแล้ว ให้เก็บค่า "bbb81b5" และ เก็บค่า "3413f12f5700156bac65e50bf07a732e" สองค่านี้จะเปลี่ยนไปเรื่อยๆ ค่ะ
แต่ คำที่จะค้นหา hidden%22+name%3D%22 มี หลายตำแหน่งใน $data
รบกวนด้วยค่ะ
Tag : PHP, HTML/CSS, JavaScript
|
ประวัติการแก้ไข 2016-02-18 20:39:47 2016-02-18 20:42:02
|
|
|
|
|
Date :
2016-02-18 16:35:45 |
By :
sammam |
View :
2601 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
if(preg_match('/<input type="\hidden\" name="\bbb81b5\" value="\([^"]*?)\"/', $data, $out)) {
echo $out[1];
}
ลองแล้วยังไม่ออกค่ะ
|
|
|
|
|
Date :
2016-02-18 21:53:03 |
By :
sammam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วรรค ใช้ \s
น่าจะอ่าน document วิธีการใช้งานซักหน่อย นะครับ
|
|
|
|
|
Date :
2016-02-18 22:55:41 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?
$data = ' +%2F%3E%0A%09%09%09%3Cinput+type%3D%22hidden%22+name%3D%22bbb81b5%22+value%3D%223413f12f5700156bac65e50bf07a732e%22+%2F%3E%0A%09%09%09%3Cinput+type%3D%22hidden%22+name%3D%22seqnum%22+value%3D%2212646900%22 ';
$data = urldecode($data);
#echo $data . "\n\n";
if(preg_match('/<input type="\**hidden\**" name="\**bbb81b5\**" value="\**([^"]*?)\**"/', $data, $out)) {
echo $out[1];
}
?>
ผลลัพธ์ ถูกต้อง "3413f12f5700156bac65e50bf07a732e"
แต่ติดตรงที่ name="\**bbb81b5\**" ตัวเลขสีแดงมันจะเปลี่ยนไปเรื่อยๆ ค่ะ และมีจำนวนไม่แน่นอน
รบกวนช่วยดูหน่อยค่ะ
|
|
|
|
|
Date :
2016-02-19 14:18:01 |
By :
sammam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
if(preg_match_all('/<input\s+type="hidden"\s+name="([0-9a-f]+)"\svalue="([0-9a-f]+)"\s*\/>/', $data, $out)) {
echo '<pre>',print_r($out, true), '</pre><br>=====<br>';
}
ไม่ได้ทดสอบ ลองเอาเองครับ
|
ประวัติการแก้ไข 2016-02-19 20:26:12
|
|
|
|
Date :
2016-02-19 19:50:44 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|