You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP提取字符串中括号内SKU值的内联代码问题

解决方案:提取产品描述括号内的SKU

优先内联PHP实现

方法1:用strpos+substr(精确控制截取范围)

你之前的问题大概率是没指定右括号的查找起始位置,或者计算截取长度时出错。试试这段内联代码,记得把{product_description}替换成插件里对应产品描述的字段占位符:

<?php
$desc = '{product_description}';
// 定位左括号位置
$left_bracket = strpos($desc, '(');
// 从左括号位置开始找右括号,避免匹配前面无关的右括号
$right_bracket = strpos($desc, ')', $left_bracket);

// 确保两个括号都存在,再截取并去除首尾空格
$sku = ($left_bracket !== false && $right_bracket !== false) 
    ? trim(substr($desc, $left_bracket + 1, $right_bracket - $left_bracket - 1)) 
    : '';
echo $sku;
?>

方法2:正则表达式(更简洁的内联写法)

如果产品描述里只有一组括号包裹SKU,用正则会更省心,一行就能搞定:

<?php
preg_match('/\((.*?)\)/', '{product_description}', $matches);
echo isset($matches[1]) ? trim($matches[1]) : '';
?>

.*?是非贪婪匹配,只会取第一个括号内的内容,刚好对应单个SKU的场景

插件函数区备选方案

如果内联代码太长或者需要复用,可在插件的自定义函数区添加以下函数:

function get_sku_from_description($description) {
    // 用正则匹配括号内内容
    preg_match('/\((.*?)\)/', $description, $matches);
    return isset($matches[1]) ? trim($matches[1]) : '';
}

然后在导入时的内联调用:

<?php echo get_sku_from_description('{product_description}'); ?>

内容的提问来源于stack exchange,提问作者chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 02:40:37