我的字符串包含'<
'符号。
示例:
$str = "S t a c k < o v e r f l o w";
当我将str_replace()用作
时$str = str_replace(' ', '', $str);
echo $str;
输出为:
Stack
<
之后的所有字母均未打印。
我哪里错了?请帮忙!
答案 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