如何从字符串中包含'<'符号的字符串中删除空格?

时间:2018-11-03 10:35:18

标签: php string

我的字符串包含'<'符号。

示例:

$str = "S t a c k < o v e r f l o w";

当我将str_replace()用作

$str = str_replace(' ', '', $str);
echo $str;

输出为:

Stack

<之后的所有字母均未打印。

我哪里错了?请帮忙!

3 个答案:

答案 0 :(得分:3)

字符不会丢失,并且str_replace运行正常。问题是,当您输出结果字符串时,“ <”被误认为是html标记的开头,而字符串的其余部分(在“ <”之后)则被误认为是标记本身。因此,标签部分不可见显示。

如果将代码更改为:

$str = "S t a c k < o v e r f l o w";
$str = htmlspecialchars(str_replace(' ', '', $str));
echo $str;

然后输出将显示为:

Stack<overflow

答案 1 :(得分:1)

使用htmlspecialchars

htmlspecialchars(str_replace(' ', '', $str));

答案 2 :(得分:0)

您可以使用这种方式:

$str = "S t a c k < o v e r f l o w";

用<< / strong>

替换<
$str = str_replace('<', '#', $str);

替换没有空间的空间

$str = str_replace(' ', '', $str);

将#替换为空格

$str = str_replace('#', ' ', $str);

echo $str;

输出

Stack Overflow

或者如果字符串中包含html atgs,您也可以这样做

// Variable to check
$str = "<h1>Hello World!</h1>";

// Remove HTML tags from string
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;

参考:W3Schools