0

我有一个存储在数组中的字符串,并最终使用 php 和 PDO 插入到 SQL 数据库中。当我查看数据库时,有一个 =20 存储在我想删除的字符串的末尾。

我的代码看起来像这样:

$name = trim($message_item[1]);
$name = addslashes($name);
$so_row = "INSERT into sales_order (name) VALUES('$name')";
$dbmrp->exec($so_row);

我认为 trim() 会删除任何额外的东西,但它似乎没有帮助。我可以使用 preg_replace('/\s+/','',$name) 摆脱它,但是我会丢失所有的空格,包括我想要保留的中间空格。那么什么是 =20,我该如何摆脱它呢?

更多信息 - $message_item 是一个数组,它是通过分解从电子邮件中读取的字符串创建的。

4

4 回答 4

2

您可以使用substr()删除字符串末尾的“=20”,例如。

$name = substr($name, 0, -3);

http://php.net/manual/fr/function.substr.php

于 2013-09-24T22:43:28.363 回答
0
rtrim($mesage_item[1], '=20');
于 2013-09-24T22:43:22.997 回答
0
$name = preg_replace('/=20$/', '', $name);
于 2013-09-24T22:45:58.527 回答
0

Trim 仅适用于字符串开头和结尾的空格。你可以按照多诺万说的做,去掉最后三个字符。

$name = substr($name, 0, -3);

或将所有 =20 替换为空

str_replace('=20', '', subject)

但我真的认为你应该弄清楚为什么你会得到这个= 20的字符串。任何删除它的解决方案都只是一种解决方法。

于 2013-09-24T22:55:39.610 回答