Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从文本字段中删除html标记和其他字符_Php_Html_Sql_Joomla - Fatal编程技术网

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

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

这些字段包含以下值:{“93”:“Size:XL”}。我只想显示尺寸:XL。我尝试过使用strip_tag功能,但没有成功。有什么建议吗?

如果你的标签是正确的,比如:

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