【发布时间】:2017-01-15 14:40:29
【问题描述】:
我正在为 wordpress 开发一个插件 - woocommerce。我正在使用插件“Woocommerce 产品插件” - 使用此插件,我可以插入例如属性“颜色”的下拉选择列表,其中包含三种颜色 - 红色、黄色、黑色。这个插件现在在每个产品站点上,但每个产品上的表单名称都有不同的名称。这就是为什么我不知道如何用更少的代码获取数据的原因。
在一个产品网站上,我有这个名称的选择列表:
<select class="addon addon-select" name="addon-12822-variante-0">
在另一个产品网站上,我有相同的插件,但名称不同:
<select class="addon addon-select" name="addon-12834-variante-0">
您可以从这个示例中看到,名称中的数字在每个站点上都会发生变化。
我需要一个可以在所有产品网站上运行的代码,这就是为什么我想也许我可以在 $_POST['regex'] 中以某种方式插入正则表达式,但它是如何工作的? p>
我需要这个正则表达式“((addon)-((\d)+)-)(farbe)-(0|1|2|3)”。
最后我有类似的东西
$variant = $_POST['regexp'];
在每个产品网站上自动运行。
我希望有任何解决方法,并提前感谢每一个建议。
【问题讨论】:
-
这符合您的要求吗? '/addon-[1-9]+-variante-[012]{1}/'。要检查,请遍历 post 值检查 preg_match 是否为真,然后执行您需要的任何其他操作
-
嘿,不是正则表达式不起作用。我只是问如何在这个位置使用正则表达式?因为我刚刚找到了 php 函数“preg_match”,但我认为它不完全是我想要的,或者如果它是我不知道如何在 $_POST[''] 中使用它
-
啊,对不起。好的,类似于 foreach:
-
您可以在
$_POST的array_keys()上使用preg_grep()来查找所有字段名称。