为什么我的php trim()函数不起作用?

jbose2ul  于 2023-03-11  发布在  PHP
关注(0)|答案(3)|浏览(194)

我尝试使用trim从$_POST数组返回的数据中删除下划线字符。

$post_Value= str_replace("_", " ", $key)

但是文本似乎不是作为一个单独的字符串返回的。它在每个条目之间都是断开的。然后我试着像这样修剪:

$post_Value = trim("_", $str);

当我使用trim函数时,它没有删除_字符。我的最终目标是将逗号分隔的列表作为单个字符串放入数据库中。为什么trim()函数在这种情况下不起作用?

tyky79it

tyky79it1#

首先,trim()以相反的顺序接受参数:$str,然后$character_mask。因此,您应该使用:$post_Value = trim($str, "_");
第二,trim()只从字符串的开头和结尾 * 开始对掩码字符 * 进行字符串化,如果掩码字符被非掩码字符包围,它不会从字符串中删除任何掩码字符。
实际上,您应该将 *str_replace()与一个空替换字符串 * 一起使用(您已经尝试过将一个空格作为替换):

$post_Value= str_replace("_", "", $key)

如果您还想删除<br>标记(在其典型变体中),可以通过单个str_replace()调用来完成,如下所示:

$post_Value= str_replace(array("_", "<br>", "<br/>", "<br />"), "", $key)

有关详细信息,请参见str_replace()文档。

8zzbczxx

8zzbczxx2#

我找到了一些
当我查看页面资源时,我的代码中没有它们,所以这很混乱。最后我不得不像这样组合str_replace()和rtrim():

$post_Value= str_replace("<br_/>", "", $str); $post_Value2= str_replace("", " ", $post_Value); $post_Value3= rtrim($post_Value2,",submit,"); echo $post_Value3; //echo $editedStr=str_replace("", " ", $str); $query="UPDATE player_match SET categoryOption='$post_Value3' WHERE id=1";
ukdjmx9f

ukdjmx9f3#

尝试

preg_replace( '/^\W*(.*?)\W*$/', '$1', $string )

/* -----------------------------------------------------------------------------------
  ^                        the beginning of the string
    \W*                    non-word characters (all but a-z, A-Z, 0- 9, _) (0 or more times (matching the most amount possible))
    (                      group and capture to \1:
      .*?                  any character except \n (0 or more times(matching the least amount possible))
    )                      end of \1
    \W*                    non-word characters (all but a-z, A-Z, 0-9, _) (0 or more times (matching the most amount possible))
  $                        before an optional \n, and the end of the string
------------------------------------------------------------------------------------- */

相关问题