使用PHP防止输入字符串末尾的标记

时间:2016-01-31 08:31:57

标签: php

我想消除最后 <br>标记,该标记会在用户输入字符串结束后弄乱我的网页显示。显然我在这个简单的任务上搞砸了一些东西,现在坚持了一段时间...... 这是我的代码,请帮我查一下我做错了什么。

<?php
// Cut down Strange <br> tag
$content = "This is some string here<br>";
$content .= "And I want it to be on seperate line so yeah!!<br>";
$content .= "The last br tag is not suppose to be here<br>";
$checkBRtag = substr($content, -4);
if (strcmp($checkBRtag, "<br>") == 0)
    $result = substr($content, 0, -4);
?>

奇怪的是,结果是字符串总是被剪掉最后4个字符,而不检查它是否是<br>标签。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您的一般方法对我有用,也许您可​​以简化它,以便您始终在变量$result中获得结果:

<?php
$content = "This is some string here<br>";
$content .= "And I want it to be on seperate line so yeah!!<br>";
$content .= "The last br tag is not suppose to be here<br>";
$result = 
    (strcmp(substr($content, -4), "<br>") == 0) 
    ? substr($content, 0, -4) 
    : $content;

var_dump($result);

输出显然是:

string(119) "This is some string here<br>And I want it to be on seperate line so yeah!!<br>The last br tag is not suppose to be here"

但是我想知道是否有更好的方法...看看你在代码示例中构建$content的方式,看来你的文本行已经在数组中的结构,所以分开的线条。如果是这样,那么最简单的方法就是不要在每一行上添加<br>标记,而是使用implode()函数。这样你就不会在第一时间创建那个尾随标记,从而无需在以后删除它......

答案 1 :(得分:0)

您可以使用strip_tags

特别是在您的情况下,如果您知道要删除所有 HTML 标记的字符串,包括<br>标记。

$content = "This is some string here<br>";
$content .= "And I want it to be on seperate line so yeah!!<br>";
// below line remove all HTML tags from string with <br> tag.
$content .= strip_tags("The last br tag is not suppose to be here<br>");