过滤 PHP 中的字符串
Filter a string in PHP
我想从以下字符串中获取一组 ID。
[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");
查找图像值并将其展开以接收数组
$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);
}
另一个使用explode
和strpos
函数的解决方案:
$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
)
我想从以下字符串中获取一组 ID。
[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");
查找图像值并将其展开以接收数组
$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);
}
另一个使用explode
和strpos
函数的解决方案:
$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
)