时间:2021-07-01 10:21:17 帮助过:25人阅读
php trim不起作用的解决办法:首先trim以相反的顺序接受参数;然后从字符串的开头和结尾为屏蔽字符设置字符串;最后将str_replace函数与空替换字符串一起使用即可。
推荐:《PHP视频教程》
具体问题:
为什么我的php trim()函数不起作用?
我正在尝试使用trim从返回到$\u post数组的数据中删除下划线字符。我试着用
$post_Value= str_replace("_", " ", $key)
但文本似乎并不是作为一个字符串返回的。每个入口之间都断了。然后我试着这样修剪:
<?php $connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); // Test if connection succeeded if (mysqli_connect_errno()) { die("Database connection failed: " . mysqli_connect_error() . " (" . mysqli_connect_errno() . ")"); } if (isset($_POST)) { $str = ""; foreach($_POST as $key => $value) { $str = $str . $key . ","; } $post_Value = trim("_", $str); } $query = "UPDATE player_match SET categoryOption='$$post_Value' WHERE id=1"; ?>
当我使用trim函数时,什么都不会发生,它不会删除_字符。我的最终目标是将逗号分隔的列表作为单个字符串放入数据库。为什么我的trim()函数在这种情况下不起作用?
更新:在视图页资源中找到<br/>,因此我必须执行以下操作的组合:
$post_Value= str_replace("<br_/>", "", $str); $post_Value2= str_replace("_", " ", $post_Value); $post_Value3= rtrim($post_Value2,",submit,"); echo $post_Value3; $query="UPDATE player_match SET categoryOption='$post_Value3' WHERE id=1";
解决办法:
首先,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)
以上就是php trim 不起作用怎么办的详细内容,更多请关注gxlcms其它相关文章!