2016-05-15 46 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 
)