PHP如何将|分隔的UTM键值对字符串转换为单独变量赋值格式
实现方案
不要使用split函数,该函数从PHP5.3版本开始就已经被官方废弃,用explode完全可以实现需求,实现逻辑如下:
- 先用
|作为分隔符,把原字符串拆分为单个的键值对数组 - 遍历每个键值对,再用
=作为分隔符拆成键名和值(拆分时限制最多拆成2段,避免值中包含=时拆分出错) - 按需输出格式化后的变量代码,或者直接在程序中生成对应变量
可运行代码示例
<?php $str = 'utmcsr=google|utmcmd=organic|utmccn=(not set)|utmctr=(not provided)'; // 拆分所有键值对 $kvList = explode('|', $str); foreach ($kvList as $item) { // 拆分键和值,最多拆2段 list($key, $val) = explode('=', $item, 2); // 直接输出你需要的格式化代码 echo "\${$key} = {$val};\n"; // 如果需要在当前程序中实际生成对应变量,打开下面这行即可 // $$key = $val; } ?>
输出结果
运行上述代码直接输出你要的格式:
$utmcsr = google; $utmcmd = organic; $utmccn = (not set); $utmctr = (not provided);
后续新增任意符合键=值格式、用|拼接的UTM参数,以上代码都可以直接兼容,不需要修改逻辑。
内容的提问来源于stack exchange,提问作者Deepak_iise
相关产品推荐
相关产品推荐

