|
|
|
ผมขอสอบถามเรื่องการเขียนโค้ดตัดข้อความครับผม ช่วยผมทีครับพี่ๆ ขอบคุณครับ |
|
|
|
|
|
|
|
นี่ครับสั้นๆ :D
<?php
$str='
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1 = STRING: "default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.10 = STRING: "Faculty/Staff"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.20 = STRING: "Students"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.30 = STRING: "Guest(Default)"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.99 = STRING: "Management&Native"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.100 = STRING: "trak"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.120 = STRING: "sa"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1002 = STRING: "fddi-default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1003 = STRING: "token-ring-default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1004 = STRING: "fddinet-default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1005 = STRING: "trnet-default"
SNMPv2-SMI::enterprises.9.9.46.1.2.1.1.2.1 = STRING: "CCNA3"';
$array=explode('SNMPv2-SMI',$str);
$result=array();
foreach($array as $key=>$value){
$result[]=str_replace('"','',(strchr($value,'"')));
}
array_shift($result);
echo "<pre>";
print_r($result);
echo "</pre>";
?>
Array
(
[0] => default
[1] => Faculty/Staff
[2] => Students
[3] => Guest(Default)
[4] => Management&Native
[5] => trak
[6] => sa
[7] => fddi-default
[8] => token-ring-default
[9] => fddinet-default
[10] => trnet-default
[11] => CCNA3
)
|
ประวัติการแก้ไข 2011-12-13 04:05:05 2011-12-13 04:07:10
|
|
|
|
Date :
2011-12-13 04:04:07 |
By :
thaicloud |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบพระคุณมากครับพี่ที่กรุณามาช่วยตอบ ผมจะลองศึกษาดูนะครับ
|
|
|
|
|
Date :
2011-12-14 00:04:23 |
By :
Herkaus |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$str = <<<ABC
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1 = STRING: "default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.10 = STRING: "Faculty/Staff"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.20 = STRING: "Students"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.30 = STRING: "Guest(Default)"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.99 = STRING: "Management&Native"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.100 = STRING: "trak"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.120 = STRING: "sa"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1002 = STRING: "fddi-default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1003 = STRING: "token-ring-default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1004 = STRING: "fddinet-default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1005 = STRING: "trnet-default"
SNMPv2-SMI::enterprises.9.9.46.1.2.1.1.2.1 = STRING: "CCNA3"
ABC;
preg_match_all('/\"([^"]*)\"/', $str, $found);
$matches = $found[1];
print_r($matches);
อีกทาง
http://www.pjgunner.com
|
|
|
|
|
Date :
2011-12-14 00:28:01 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ครับผมสงสัย code ของพี่นะครับ
Code (PHP)
$str = <<<ABC
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1 = STRING: "default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.10 = STRING: "Faculty/Staff"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.20 = STRING: "Students"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.30 = STRING: "Guest(Default)"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.99 = STRING: "Management&Native"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.100 = STRING: "trak"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.120 = STRING: "sa"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1002 = STRING: "fddi-default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1003 = STRING: "token-ring-default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1004 = STRING: "fddinet-default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1005 = STRING: "trnet-default"
SNMPv2-SMI::enterprises.9.9.46.1.2.1.1.2.1 = STRING: "CCNA3"
ABC;
preg_match_all('/\"([^"]*)\"/', $str, $found);
$matches = $found[1];
print_r($matches);
ตรงบรรทัดที่ 1
$str = <<<ABC
ตรงบรรทัดที่ 14
ABC;
ทั้งสองบรรทัดนี้พี่ใส่ไว้ทำไมหรอครับ แล้วมันมีกระบวนการทำงานอย่างไร
ผมงงมากเลยครับ ช่วยอธิบายให้ผมกระจ่างทีนะครับ
code ของพี่ใช้ได้ดีเลยละครับ ไม่มีปัญหาอะไร ผมแค่สงสัยนะครับ ขอบพระคุณมากครับ
|
ประวัติการแก้ไข 2012-01-03 22:42:58
|
|
|
|
Date :
2012-01-03 22:41:01 |
By :
Herkaus |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองๆมาเล่นกับมันดูเหมือนกัน คิดว่าทุกอย่างที่อยู่ภายใน <<<ABC ถึง ABC จะถูกจับมาเป็น string ทั้งหมด
เริ่มต้นยังไงต้องจบอย่างงั้น
<<<aaaa
aaaa
อย่างงี้ก็ได้
|
|
|
|
|
Date :
2012-01-03 23:40:44 |
By :
thaicloud |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบพระคุณมากครับพี่
ผมรบกวนอีกนิดนะครับ
Code (PHP)
$str = <<<ABC
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1 = STRING: "default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.10 = STRING: "Faculty/Staff"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.20 = STRING: "Students"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.30 = STRING: "Guest(Default)"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.99 = STRING: "Management&Native"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.100 = STRING: "trak"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.120 = STRING: "sa"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1002 = STRING: "fddi-default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1003 = STRING: "token-ring-default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1004 = STRING: "fddinet-default"
SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1005 = STRING: "trnet-default"
SNMPv2-SMI::enterprises.9.9.46.1.2.1.1.2.1 = STRING: "CCNA3"
ABC;
preg_match_all('/\"([^"]*)\"/', $str, $found);
$matches = $found[1];
print_r($matches);
ผมสงสัยบรรทัดที่ 17
$matches = $found[1];
ทำไม $found[1]; ต้องมาเก็บใน $matches อีกทีนะครับ
ช่วยอธิบายทีนะครับ ขอบพระคุณมากครับพี่
|
|
|
|
|
Date :
2012-01-04 00:12:06 |
By :
Herkaus |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่ต้องเรียก found[1] เพราะถ้าลอง print_r($found)ก็จะเข้าใจ
Code (PHP)
Array
(
[0] => Array
(
[0] => "default"
[1] => "Faculty/Staff"
[2] => "Students"
[3] => "Guest(Default)"
[4] => "Management&Native"
[5] => "trak"
[6] => "sa"
[7] => "fddi-default"
[8] => "token-ring-default"
[9] => "fddinet-default"
[10] => "trnet-default"
[11] => "CCNA3"
)
[1] => Array
(
[0] => default
[1] => Faculty/Staff
[2] => Students
[3] => Guest(Default)
[4] => Management&Native
[5] => trak
[6] => sa
[7] => fddi-default
[8] => token-ring-default
[9] => fddinet-default
[10] => trnet-default
[11] => CCNA3
)
)
array ใน $found[0] มันมีเครื่องหมาย " ติดมาด้วย array ที่ใช้งานได้เลยเป็น $found[1]
แล้วก็ไม่ได้จำเป็นหรอก ที่จะนำไปใส่ $matches เพียงแค่ให้ดูง่ายขึ้น ไม่งั้นมันจะเป็น array ใน array (asscociative array)
$matches จำง่ายกว่า $found[1]
|
ประวัติการแก้ไข 2012-01-04 02:45:22 2012-01-04 02:50:49
|
|
|
|
Date :
2012-01-04 02:44:17 |
By :
thaicloud |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ได้เข้านาน ไม่รู้ว่า มีคนต่อเรื่องกระทู้นี้นะคับ
เรื่อง / / ลองศึกษาเรื่อง regular expression (พิมพ์ถูกป่าวหว่า) แบบ perl (PCRE)
ส่วนทำไมต้องเอา $found[1] ลองอ่านเอกสารดูคับเราเอาใน วงเล็บมันจะเพิ่มให้ อีก เพราะเราไม่เอา " " ดังนั้นถึงต้องใส่ วงเล็บและเอา index 1
http://www.pjgunner.com
|
|
|
|
|
Date :
2012-01-04 09:25:35 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|