Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';我没有一个函数可以工作,我已经尝试了所有的方法。包括去除标点和空格_Php_Function_Syntax - Fatal编程技术网

Php Can';我没有一个函数可以工作,我已经尝试了所有的方法。包括去除标点和空格

Php Can';我没有一个函数可以工作,我已经尝试了所有的方法。包括去除标点和空格,php,function,syntax,Php,Function,Syntax,我试图删除一个变量的标点符号,但它不起作用,我已经尝试了我能想到的一切。我很累,我肯定这是我没有看到的。任何帮助都将不胜感激 代码: 我没有看到什么?它只是返回原始的$\u POST变量为什么 $memberlinksafe = str_replace(" +", "", $memberlinksafe); 而不是 // This function removes spaces, \t (tabs), \r and \n. All are spaces! $memberlinksafe = p

我试图删除一个变量的标点符号,但它不起作用,我已经尝试了我能想到的一切。我很累,我肯定这是我没有看到的。任何帮助都将不胜感激

代码:

我没有看到什么?它只是返回原始的
$\u POST
变量

为什么

$memberlinksafe = str_replace(" +", "", $memberlinksafe);
而不是

// This function removes spaces, \t (tabs), \r and \n. All are spaces!
$memberlinksafe = preg_replace('~[\\s]+~', '', $memberlinksafe);
用于剥离空间

更新

// Remove punctuation
$memberlinksafe = preg_replace('~[[:punct:]]+~', '', $memberlinksafe);
// Remove spaces
$memberlinksafe = preg_replace('~[\\s]+~', '', $memberlinksafe);
// Lowercase
$memberlinksafe = strtolower($memberlinksafe);
或者:

// Keep only alphanumerics and lowercase it
$memberlinksafe = strtolower(preg_replace('~[^[:alnum:]]+~', '', $memberlinksafe));
为什么不
\W

因为:

// outputs 'testing_something'
var_dump(preg_replace('~[\\W]+~', '', 'testing_something'));
// outputs 'testingsomething'
var_dump(preg_replace('~[[:punct:]]+~', '', 'testing_something'));

\u实际上是标点符号。

你不应该这样做:
$memberlinksafe=strip\u标点符号($\u POST[“entity\u name”])您在哪里调用该函数?删除标点符号不会阻止数据库受到攻击。您应该使用PDO和bind参数@隐姓埋名我在mysqli中使用预先准备好的语句。谢谢你的关心。@Mimo看起来像,但你需要双方括号,而不是单方括号。他去掉了
+
而不是空格。1)这不是答案,2)str_替换(“+”,“,$memberlinksafe”)
不剥离空格,它剥离
“+”
,而且3)
str_replace(“,”,$memberlinksafe)
比第一次使用正则表达式快得多place@sgroves\t是一个空格,\r和\n也是空格。我的RegExp将全部清除;)。。。这些都不是空间。它们是空白字符,但不是空格。无论如何,OP一开始并没有试图去掉空格。@Jeffi更新了代码。看看这是否合适。这是评论。
// outputs 'testing_something'
var_dump(preg_replace('~[\\W]+~', '', 'testing_something'));
// outputs 'testingsomething'
var_dump(preg_replace('~[[:punct:]]+~', '', 'testing_something'));