在str_replace函数之后如何避免PHP字符串中的额外空格?

时间:2017-11-25 05:58:10

标签: php string

我有一个应用程序,人们可以输入他们的出生日期(dob),出生时间(tob),性别,体重和头发颜色。

在我的代码中,我有一个这样的字符串:

$allfields="'dob', 'tob', 'sex', 'weight', 'hair'";

我的代码然后检查每个类别以查看它是否是由用户输入的。如果输入了类别,则字符串不会发生任何变化。但是,如果没有输入性别,我会想从$allfields字符串中删除“'性',”

任何可能从字符串中删除文本都是通过以下五个函数完成的:

$allfields=str_replace("'dob',", "", $allfields);
$allfields=str_replace("'tob',", "", $allfields);
$allfields=str_replace("'sex',", "", $allfields);
$allfields=str_replace("'weight',", "", $allfields);
$allfields=str_replace(", 'hair'", "", $allfields);

请注意,在上一篇文章中,我如何搜索“,'hair'”(带有逗号)。这是因为如果没有输入头发,我想从字符串中删除它,但如果我只是删除'hair',那么字符串将以逗号结束,这会破坏我后来使用字符串的代码。

然而,当事情被删除时,似乎会出现额外的空格,因此,在完成所有检查之后,如果“头发”应该被删除,则不会。字符串看起来像这样:例如:

'dob', 'tob',   'hair'

没有从字符串中删除头发的原因是在'tob'和'hair'之后的逗号之间有额外的空格,因此它不会找到“,'hair'”正好(它实际上是“,”头发'”)。因此,它不是完全匹配,因此不会被删除。

我愿意接受建议,但是在“头发”检查完成之前,这是解决此问题以便从$allfields删除额外空格的最佳方法吗?最好的方法是使用相同的str_replace函数来查找空格并将其替换为空格,或者我会遇到同样的问题吗?

0 个答案:

没有答案