Php 如何从文本字段中删除html标记和其他字符
这些字段包含以下值:{“93”:“Size:XL”}。我只想显示尺寸:XL。我尝试过使用strip_tag功能,但没有成功。有什么建议吗?如果你的标签是正确的,比如:Php 如何从文本字段中删除html标记和其他字符,php,html,sql,joomla,Php,Html,Sql,Joomla,这些字段包含以下值:{“93”:“Size:XL”}。我只想显示尺寸:XL。我尝试过使用strip_tag功能,但没有成功。有什么建议吗?如果你的标签是正确的,比如: XL而不是XL strip_tags()应该适合您 我通过以下测试进行了验证 $text = "<span>XL</span>"; $goodtext = strip_tags($text); $text=“XL”; $goodtext=带标签($text); 并输出结果 echo htmlentiti
XL
而不是XL
strip_tags()
应该适合您
我通过以下测试进行了验证
$text = "<span>XL</span>";
$goodtext = strip_tags($text);
$text=“XL”;
$goodtext=带标签($text);
并输出结果
echo htmlentities($text)
echo "<br/>";
echo htmlentities($goodtext);
echo htmlentities($text)
回声“
”;
回音文本($goodtext);
屈服于
<span>XL</span>
XL
XL
特大号
您的问题有点不清楚,如果字段包含所有字符,包括{括号,那么替换中的这个正则表达式应该会有帮助,只需将字符替换为空字符串即可:
/"\:"|[^A-Za-z:]|span/g
如果情况并非如此,并且您只有第二个带有跨距的字符串,则可以使用此字符串:
/[^A-Za-z:]|span/g
但是请注意,它也会删除空格,并且仅在特定情况下有效,例如不删除其他标记等。您可以使用函数
preg\u match\u all
应用全局正则表达式匹配,以仅从字段中提取“Size: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);
}
试试这个
它的json编码值
$text = '{"93":" Size:</span>XL</span>"}';
$ar = json_decode($text);
foreach($ar as $value){
echo strip_tags($value);
}
希望它已修复。您尝试了什么?它是如何失败的?如果它真的是“XL”,然后出现严重错误。它甚至不是标记,因此strip_标记当然会失败。字段的来源是?看起来像JSOM对meI使用select语句从数据库中提取字段。字段是文本。我已尝试过替换函数和strip_标记函数。提取后如何更改值?just像上面那样使用json解码该值,您可以使用foreach()进行访问这其中的哪一部分是删除标记?据我所知,它们仍然在那里,你只是看不到它,因为它的HTML和浏览器不会显示标记。@Havenard你是对的,上面的任何代码部分都没有删除HTML标记,而是在json解码()后检查他的json编码字符串,而不是它的so这不是一个有效的标记。如果要删除它,请检查浏览器源代码。对于清晰的答案,我也将更新答案。谢谢。。
$text = '{"93":" Size:</span>XL</span>"}';
$ar = json_decode($text);
foreach($ar as $value){
echo strip_tags($value);
}
Size:XL