我探索了之前的所有问题和解决方案,坚信其中没有一个能适用于我的情况。
我有一个输入文本区域,可以接受员工ID。最终用户可以使用逗号,输入,空格来分隔多个员工ID,我需要将任何分隔更改为逗号。
这是我的代码:
$emplids = preg_replace('/[,\t\n\r\s]+/',",",$emplids);
然后,我只需要保留数字和逗号:
$emplids = preg_replace("/[^X0-9,]/", "", $emplids);
然后我需要将它们存储在一个阵列中:
$emplids = explode(",", $emplids);
现在只有最终用户在员工ID中放置逗号才能正常工作,换行无法正常工作。
我试过双配额:
$emplids = preg_replace("/[,\t\n\r\s]+/",",",$emplids);
它既不起作用。
这似乎是一个小问题,但它确实需要几个小时。任何提示都非常感谢!
答案 0 :(得分:0)
或者你可以通过一个id只能包含数字的规则来获取所有ID,而不是别的。
$input = <<<EOF
123 356 353,255
2424,535 35
EOF;
preg_match_all('/(\d+)/',$input, $matches);
print_r($matches[1]);
答案 1 :(得分:0)
把它放在这里因为它在评论中很难看:
python3 setup.py myapp -A
请注意引用样式的不同,以及引号对PHP在字符串中看到的内容的影响:python3 setup.py myapp --packages=PIL
- 引用的字符串不理解任何php > $x = '\n'; // single quotes
php > $y = "\n"; // double quotes
php > var_dump($x, $y);
string(2) "\n"
string(1) "
"
转义,除{{1}外}和'
。 \
- 引用字符串中的任何其他转义字符只是一个反斜杠后跟该字符。
答案 2 :(得分:0)
终于找到了真正的原因。
我包含了一个使用clean函数的脚本:
if($_POST) {
$_POST = clean($_POST);
echo "<pre>" . print_r($_POST,1) . "</pre>";
}
在我的剧本中, $ emplids = $ _POST [&#39; emplids&#39;]; ..... $ emplids = explode(&#34;,&#34;,preg_replace(&#34; / [^ X0-9,] /&#34;,&#34;&#34;,preg_replace(&#39; / [\吨\ n]的+ /&#39;&#34;&#34;,$ emplids)));
如果删除清洁功能,单个&#39; &#39;和/在他们内部很好地协同工作!