2012-04-26 104 views
1

我想刪除所有與標籤不匹配的標籤,但不匹配<p>標籤。 我這樣:刪除所有不匹配p標籤的標籤在php中

preg_replace("/<(?!p)>/", "", $html); 

但它不起作用。怎麼了?

+2

您無法使用正則表達式解析HTML。改爲使用HTML解析器。 – 2012-04-26 14:26:27

+3

你應該認真閱讀這個http://stackoverflow.com/a/1732454/135448,這是令人興奮和教育性的 – 2012-04-26 14:28:00

+0

這是否意味着從你的'$ html'你也想刪除'','','' ,''等標籤。 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/548225/">anubhava</a></span> <span>2012-04-26 14:30:24</span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="answer-title"> <span class="text-logo margin-top-sm">A</span> <h2 class="title h4">回答</h2> </div> <div class="item-description text-md markdown-body margin-bottom-40 voidso"> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">5<i class="fa fa-thumbs-up"></i></span> <i class="fa fa-check fa-2x"></i> </div> <div class="post-offset"> <div class="answer fmt"> <p>使用,這就是它的存在。</p> <pre><code class="prettyprint-override">$stripped = strip_tags($str, '<p>'); // Allow only paragraph tags </code></pre> <p>演示這裏:<a href="http://codepad.org/NEUEBWg7" rel="noreferrer">http://codepad.org/NEUEBWg7</a></p> <p>請注意,該功能不觸及許可標籤的屬性。如果你正在過濾用戶輸入,一定要考慮像<code class="prettyprint-override">onclick</code>等屬性以及更多可能會被濫用來執行一些迂迴行爲。</p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/10335494">來源</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2012-04-26 14:27:19</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/54680/">Sampson</a></span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4319274062" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">2<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>在最基本的,使用<a href="http://us3.php.net/manual/en/function.strip-tags.php" rel="nofollow"><code class="prettyprint-override">strip_tags()</code></a>刪除HTML:</p> <pre><code class="prettyprint-override">echo strip_tags($text, '<p>'); </code></pre> <p>更妙的是<a href="http://htmlpurifier.org/" rel="nofollow">HTML Purifier</a></p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/10335498">來源</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2012-04-26 14:27:30</span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">3<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>strip_tags的是你所需要的。 只需執行以下操作:</p> <pre><code class="prettyprint-override">$result=strip_tags($html,"<p>"); </code></pre> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/10335528">來源</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2012-04-26 14:29:11</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1296125/">EnKrypt</a></span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">相關問題</div> <ul class="relative_list"> <li> 1. <a href="http://hk.voidcc.com/question/p-mmljzmoy-vy.html" target="_blank" title="PHP刪除標題標籤內的所有段落標籤"> PHP刪除標題標籤內的所有段落標籤 </a> </li> <li> 2. <a href="http://hk.voidcc.com/question/p-eqcizsyf-ct.html" target="_blank" title="刪除空p標籤和轉換等p標籤到\ n"> 刪除空p標籤和轉換等p標籤到\ n </a> </li> <li> 3. <a href="http://hk.voidcc.com/question/p-wmlgdimy-kw.html" target="_blank" title="get_the_excerpt()刪除頁面中的所有p標籤"> get_the_excerpt()刪除頁面中的所有p標籤 </a> </li> <li> 4. <a href="http://hk.voidcc.com/question/p-fntypzcp-ot.html" target="_blank" title="Magento的 - 刪除空P-標籤模塊"> Magento的 - 刪除空P-標籤模塊 </a> </li> <li> 5. <a href="http://hk.voidcc.com/question/p-revridqa-g.html" target="_blank" title="刪除未使用的p標籤"> 刪除未使用的p標籤 </a> </li> <li> 6. <a href="http://hk.voidcc.com/question/p-vlkculvu-eu.html" target="_blank" title="如何刪除特定標籤後的所有標籤?"> 如何刪除特定標籤後的所有標籤? </a> </li> <li> 7. <a href="http://hk.voidcc.com/question/p-tenruutw-rg.html" target="_blank" title="刪除字符串中不匹配的HTML標籤"> 刪除字符串中不匹配的HTML標籤 </a> </li> <li> 8. <a href="http://hk.voidcc.com/question/p-qsgoyqpu-ku.html" target="_blank" title="在BeautifulSoup中匹配標籤"> 在BeautifulSoup中匹配標籤 </a> </li> <li> 9. <a href="http://hk.voidcc.com/question/p-swrmqsyt-qx.html" target="_blank" title="如何用jQuery刪除空p標籤?"> 如何用jQuery刪除空p標籤? </a> </li> <li> 10. <a href="http://hk.voidcc.com/question/p-zvizipjo-vu.html" target="_blank" title="PHP Tidy刪除標籤"> PHP Tidy刪除標籤 </a> </li> <li> 11. <a href="http://hk.voidcc.com/question/p-givrcxmg-ne.html" target="_blank" title="使用BeautifulSoup顯示p標籤內的所有b標籤"> 使用BeautifulSoup顯示p標籤內的所有b標籤 </a> </li> <li> 12. <a href="http://hk.voidcc.com/question/p-bqucvmwa-dv.html" target="_blank" title="如何刪除所有標籤?"> 如何刪除所有標籤? </a> </li> <li> 13. <a href="http://hk.voidcc.com/question/p-qpcgqpyh-sc.html" target="_blank" title="刪除所有非br和span標籤?"> 刪除所有非br和span標籤? </a> </li> <li> 14. <a href="http://hk.voidcc.com/question/p-farmrfxt-e.html" target="_blank" title="Codeigniter刪除所有html標籤"> Codeigniter刪除所有html標籤 </a> </li> <li> 15. <a href="http://hk.voidcc.com/question/p-cocnzpzb-mr.html" target="_blank" title="不匹配的標籤,有望元"> 不匹配的標籤,有望元 </a> </li> <li> 16. <a href="http://hk.voidcc.com/question/p-rtxbzomt-bw.html" target="_blank" title="如何在PHP中刪除html標籤?"> 如何在PHP中刪除html標籤? </a> </li> <li> 17. <a href="http://hk.voidcc.com/question/p-kluebabv-vv.html" target="_blank" title="不匹配,如果標籤"> 不匹配,如果標籤 </a> </li> <li> 18. <a href="http://hk.voidcc.com/question/p-tzbnhazl-td.html" target="_blank" title="VIM - 如何刪除php標籤中的所有行?"> VIM - 如何刪除php標籤中的所有行? </a> </li> <li> 19. <a href="http://hk.voidcc.com/question/p-wephjxbn-dd.html" target="_blank" title="如何使用php刪除所有img標籤中的樣式?"> 如何使用php刪除所有img標籤中的樣式? </a> </li> <li> 20. <a href="http://hk.voidcc.com/question/p-dndoyctw-ga.html" target="_blank" title="條從p標籤的所有類"> 條從p標籤的所有類 </a> </li> <li> 21. <a href="http://hk.voidcc.com/question/p-owancdky-sm.html" target="_blank" title="PHP的正則表達式匹配所有的HTML標籤"> PHP的正則表達式匹配所有的HTML標籤 </a> </li> <li> 22. <a href="http://hk.voidcc.com/question/p-cpopyych-um.html" target="_blank" title="模板匹配打印匹配標籤的所有內容"> 模板匹配打印匹配標籤的所有內容 </a> </li> <li> 23. <a href="http://hk.voidcc.com/question/p-pbkmjwpo-ra.html" target="_blank" title="PHP的:刪除所有的標籤,但「A HREF」文本"> PHP的:刪除所有的標籤,但「A HREF」文本 </a> </li> <li> 24. <a href="http://hk.voidcc.com/question/p-pscgoukb-mu.html" target="_blank" title="刪除所有的HTML標籤,並限制字母PHP的"> 刪除所有的HTML標籤,並限制字母PHP的 </a> </li> <li> 25. <a href="http://hk.voidcc.com/question/p-tcmdkwbs-ct.html" target="_blank" title="刪除Prometheus中的標籤"> 刪除Prometheus中的標籤 </a> </li> <li> 26. <a href="http://hk.voidcc.com/question/p-vjdqxxha-tb.html" target="_blank" title="fragmenttabhost,不能刪除標籤"> fragmenttabhost,不能刪除標籤 </a> </li> <li> 27. <a href="http://hk.voidcc.com/question/p-oseypikk-he.html" target="_blank" title="匹配HTML中的P標籤中的文本"> 匹配HTML中的P標籤中的文本 </a> </li> <li> 28. <a href="http://hk.voidcc.com/question/p-djfgkkqk-kd.html" target="_blank" title="如何在html頁面中獲取所有p和h標籤的值,但不包括所有其他標籤"> 如何在html頁面中獲取所有p和h標籤的值,但不包括所有其他標籤 </a> </li> <li> 29. <a href="http://hk.voidcc.com/question/p-akldknuw-tu.html" target="_blank" title="PHP preg_replace - 刪除ul,li標籤之間的BR標籤"> PHP preg_replace - 刪除ul,li標籤之間的BR標籤 </a> </li> <li> 30. <a href="http://hk.voidcc.com/question/p-kgrahqyc-cb.html" target="_blank" title="刪除所有座標軸值和標籤在兩個陰謀"> 刪除所有座標軸值和標籤在兩個陰謀 </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515421930"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> 最新問題 </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://hk.voidcc.com/question/p-wbsglyji-nq.html" target="_blank" title="html2fpdf腳本問題"> html2fpdf腳本問題 </a> </li> <li class="side_article_list_item"> 2. <a href="http://hk.voidcc.com/question/p-evbfujxm-cy.html" target="_blank" title="如何管理對可交換類的訂閱"> 如何管理對可交換類的訂閱 </a> </li> <li class="side_article_list_item"> 3. <a href="http://hk.voidcc.com/question/p-ocvumnlg-mv.html" target="_blank" title="如何從兩個表基於第一個表"> 如何從兩個表基於第一個表 </a> </li> <li class="side_article_list_item"> 4. <a href="http://hk.voidcc.com/question/p-fwunghgg-hn.html" target="_blank" title="Android [Android Studio]如何使用海康威視CCTV SDK的PlayerSDK"> Android [Android Studio]如何使用海康威視CCTV SDK的PlayerSDK </a> </li> <li class="side_article_list_item"> 5. <a href="http://hk.voidcc.com/question/p-hocbslhg-tt.html" target="_blank" title="大熊貓 - 在同一個數據幀"> 大熊貓 - 在同一個數據幀 </a> </li> <li class="side_article_list_item"> 6. <a href="http://hk.voidcc.com/question/p-scxaoyte-ts.html" target="_blank" title="最簡單的方式分發Tensorflow培訓的前提?"> 最簡單的方式分發Tensorflow培訓的前提? </a> </li> <li class="side_article_list_item"> 7. <a href="http://hk.voidcc.com/question/p-banvlrwo-tr.html" target="_blank" title="連接來自外部客戶端進程的kubernetes內作爲碼頭容器運行的點火服務器"> 連接來自外部客戶端進程的kubernetes內作爲碼頭容器運行的點火服務器 </a> </li> <li class="side_article_list_item"> 8. <a href="http://hk.voidcc.com/question/p-wuyqquis-tp.html" target="_blank" title="使用Thymeleaf窗體構建POST請求"> 使用Thymeleaf窗體構建POST請求 </a> </li> <li class="side_article_list_item"> 9. <a href="http://hk.voidcc.com/question/p-hreqzzry-th.html" target="_blank" title="如何通過控制器與MVC發送電子郵件"> 如何通過控制器與MVC發送電子郵件 </a> </li> <li class="side_article_list_item"> 10. <a href="http://hk.voidcc.com/question/p-fmgltwuu-ma.html" target="_blank" title="用OpenCover運行XUnit和FluentAssertions會給出錯誤信息"> 用OpenCover運行XUnit和FluentAssertions會給出錯誤信息 </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> 相關問題</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://hk.voidcc.com/question/p-mmljzmoy-vy.html" target="_blank" title="PHP刪除標題標籤內的所有段落標籤"> PHP刪除標題標籤內的所有段落標籤 </a> </li> <li class="side_article_list_item"> 2. <a href="http://hk.voidcc.com/question/p-eqcizsyf-ct.html" target="_blank" title="刪除空p標籤和轉換等p標籤到\ n"> 刪除空p標籤和轉換等p標籤到\ n </a> </li> <li class="side_article_list_item"> 3. <a href="http://hk.voidcc.com/question/p-wmlgdimy-kw.html" target="_blank" title="get_the_excerpt()刪除頁面中的所有p標籤"> get_the_excerpt()刪除頁面中的所有p標籤 </a> </li> <li class="side_article_list_item"> 4. <a href="http://hk.voidcc.com/question/p-fntypzcp-ot.html" target="_blank" title="Magento的 - 刪除空P-標籤模塊"> Magento的 - 刪除空P-標籤模塊 </a> </li> <li class="side_article_list_item"> 5. <a href="http://hk.voidcc.com/question/p-revridqa-g.html" target="_blank" title="刪除未使用的p標籤"> 刪除未使用的p標籤 </a> </li> <li class="side_article_list_item"> 6. <a href="http://hk.voidcc.com/question/p-vlkculvu-eu.html" target="_blank" title="如何刪除特定標籤後的所有標籤?"> 如何刪除特定標籤後的所有標籤? </a> </li> <li class="side_article_list_item"> 7. <a href="http://hk.voidcc.com/question/p-tenruutw-rg.html" target="_blank" title="刪除字符串中不匹配的HTML標籤"> 刪除字符串中不匹配的HTML標籤 </a> </li> <li class="side_article_list_item"> 8. <a href="http://hk.voidcc.com/question/p-qsgoyqpu-ku.html" target="_blank" title="在BeautifulSoup中匹配標籤"> 在BeautifulSoup中匹配標籤 </a> </li> <li class="side_article_list_item"> 9. <a href="http://hk.voidcc.com/question/p-swrmqsyt-qx.html" target="_blank" title="如何用jQuery刪除空p標籤?"> 如何用jQuery刪除空p標籤? </a> </li> <li class="side_article_list_item"> 10. <a href="http://hk.voidcc.com/question/p-zvizipjo-vu.html" target="_blank" title="PHP Tidy刪除標籤"> PHP Tidy刪除標籤 </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://hk.voidcc.com/contact">聯系我們</a></li> <li>© 2020 HK.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>