我正在访问一个db表,该表将读取文本条目以查找字符串...然后根据该字符串创建一个新变量。
这是来源:
<?php
$haystack = "Additional Licenses: +2 Licenses /br/ Back-up CD-ROM: No";
$needle = "+0";
switch ($needle) {
case '+1':
if (strstr($haystack, $needle)) {
$actpurch = "3";
} else {
break;
}
case '+2':
if (strstr($haystack, $needle)) {
$actpurch = "4";
} else {
break;
}
case '+3':
if (strstr($haystack, $needle)) {
$actpurch = "5";
} else {
break;
}
default:
$actpurch = "2";
break;
}
echo "Activations Purchased: " . $actpurch;
?>
答案 0 :(得分:0)
自$needle = "+0"
以后,您将始终以
default:
$actpurch = "2";
break;
答案 1 :(得分:0)
您switch
$needle
,"+0"
,其固定值为default
。因此,只会执行case
{{1}}。
答案 2 :(得分:0)
我不会完全使用开关。您要做的是提取您可以使用正则表达式执行的数字,请参阅PHP Manual。一个例子:
$haystack = "Additional Licenses: +2 Licenses /br/ Back-up CD-ROM: No";
$licences = 2;
$extra = 0;
if (preg_match('/Additional Licenses: \+(\d+) Licenses/', $haystack, $matches)) {
$extra = intval($matches[1]);
} else {
die('Error: couldn\'t find number of licences');
}
$actpurch = $licences + $extra;
echo $actpurch;
正则表达式将匹配模式的字符串(\ d +将匹配一个或多个数字)。