无法摆脱/ r / n

时间:2015-07-14 18:14:50

标签: php string replace

我探索了之前的所有问题和解决方案,坚信其中没有一个能适用于我的情况。

我有一个输入文本区域,可以接受员工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);

它既不起作用。

这似乎是一个小问题,但它确实需要几个小时。任何提示都非常感谢!

3 个答案:

答案 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;和/在他们内部很好地协同工作!