如何从文本字段中删除html标记和其他字符

时间:2013-08-05 20:09:19

标签: php html sql joomla

字段包含以下值:{“93”:“尺寸:< / span> XL< / span>”}。我想只显示尺寸:XL。我尝试过使用strip_tag函数但是没有成功。有什么建议吗?

4 个答案:

答案 0 :(得分:2)

试试这个,

它的json编码值。

 $text = '{"93":" Size:</span>XL</span>"}';
 $ar = json_decode($text);  

 foreach($ar as $value){
    echo strip_tags($value);
   }

输出

Size:XL

希望它固定..

答案 1 :(得分:0)

如果您的代码是正确的,请执行以下操作:

<span>XL</span>代替</span>XL</span>

strip_tags()应该适合你。

我通过以下测试验证了......

$text = "<span>XL</span>";
$goodtext = strip_tags($text);

输出结果......

echo htmlentities($text)
echo "<br/>";
echo htmlentities($goodtext);

...墓内

<span>XL</span>
XL

答案 2 :(得分:0)

您的问题有点不清楚,如果该字段包含所有内容,包括{括号,则替换中的此正则表达式应该有帮助,只需用空字符串替换字符:

/"\:"|[^A-Za-z:]|span/g

如果情况并非如此,并且您只有第二个带有跨度的字符串,则可以使用此字符串:

/[^A-Za-z:]|span/g

但要注意,它也会删除空格,仅适用于特定情况,例如。不删除其他标签等。

答案 3 :(得分:0)

您可以使用函数preg_match_all应用全局正则表达式匹配,仅从您的字段中提取“大小:XX”。

$field = "your data fields"
$pattern = "/(Size:)<\/span>([a-z]{1,2})<\/span>/i";

preg_match_all($pattern,$field,$result,PREG_SET_ORDER);                                  
foreach( $result as $r ) {
    print($r[1]." ".$r[2].PHP_EOL);
}

将输出:

Size: XL
Size: L
...