首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用<p>从字符串中删除PHP html标记

无法使用<p>从字符串中删除PHP html标记
EN

Stack Overflow用户
提问于 2013-02-13 20:06:53
回答 1查看 1.7K关注 0票数 0

我有个奇怪的场景,我就是搞不懂

PHP中从字符串中删除的标签。

下面是发生的情况,我使用ASCII编码从数据库中提取数据

字符串看起来像这样

代码语言:javascript
复制
&lt;p&gt;Blue Power Waterproof&lt;/p&gt; 

现在,我执行以下操作来解码实体

代码语言:javascript
复制
html_entity_decode($p->description)

使用以下结果<p>Blue Power Waterproof</p>,我需要删除

标记,但以下代码不起作用

代码语言:javascript
复制
strip_tags(html_entity_decode($p->description))

removeParagraphTags(html_entity_decode($p->description);

代码语言:javascript
复制
function removeParagraphTags($html){ 
            $pattern = "'#<p[^>]*>(\s|&nbsp;?)*</p>#'"; 
            iconv(mb_detect_encoding($html, "auto"), 'UTF-8', $html);
            return preg_replace($pattern, '', $html); 
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-19 20:07:07

我解决了这个问题,方法是从数据库中获取以HTML实体存储的所有描述,对实体进行解码,以便将实体转换为html,然后使用html而不是实体更新每条记录,这解决了问题

代码语言:javascript
复制
$sql = "SELECT * FROM products";
$result=  pg_query($conn,$sql);
while ($row = pg_fetch_array($result,null,PGSQL_ASSOC)) {
    $name = html_entity_decode($row['name']);
    $name = iconv('UTF-8', 'ASCII', $name);
    $desc = html_entity_decode($row['description']);
    $desc = iconv('UTF-8', 'ASCII', $desc);
    $ldesc = html_entity_decode($row['longDescription']);
    $ldesc = iconv('UTF-8', 'ASCII', $ldesc);
    $up = "UPDATE products SET name='".pg_escape_string($name)."',description='".  pg_escape_string($desc)."',\"longDescription\"='".pg_escape_string($ldesc)."' WHERE p_id=".$row['p_id'];

    pg_query($conn,$up) OR die(pg_last_error());
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14853213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档