2016-05-15 47 views
0

我正在尋找從以下字符串中獲取ID的數組。在PHP中篩選一個字符串

[vc_gallery type="flexslider_fade" interval="3" images="3057,2141,234" onclick="link_image" custom_links_target="_self" img_size="large"]

理想的情況下,我想看看這串並獲得圖像內的INT值的數組。例如

array("3057", "2141", "234");

+0

是數值(內部圖像)變化的數量? –

+0

是的,它不可能存在,或者可能有任何數量,逗號分隔。 – absolute

回答

4

找到圖像值和爆炸它使用explodestrpos函數來接收陣列

$str = '[vc_gallery type="flexslider_fade" interval="3" images="3057,2141,234" onclick="link_image" custom_links_target="_self" img_size="large"]'; 

if (preg_match('/images\s*=\s*\"([^\"]+)\"/', $str, $m)) { 
    $res = explode(',', $m[1]); 
    print_r($res); 
} 
+0

做VS VS stripos有什麼好處? – absolute

+0

有很多變種。你可以使用stripos。可以使用爆炸幾次 – splash58

1

另一種解決方案:

$str = '[vc_gallery type="flexslider_fade" interval="3" images="3057,2141,234" onclick="link_image" custom_links_target="_self" img_size="large"]'; 

foreach (explode(" ", $str) as $v) { 
    if (strpos($v, "images=") === 0) { 
     $result = explode(",", explode('"', $v)[1]); 
     break; // avoids redundant iterations 
    } 
} 

print_r($result); 

輸出:

Array 
(
    [0] => 3057 
    [1] => 2141 
    [2] => 234 
)