首頁  >  文章  >  後端開發  >  利用PHP中的正規表示式方法刪除HTML的寬高樣式方法

利用PHP中的正規表示式方法刪除HTML的寬高樣式方法

巴扎黑
巴扎黑原創
2017-08-08 13:57:501138瀏覽

這篇文章主要介紹了PHP正規刪除HTML程式碼中寬高樣式的方法,涉及php針對HTML程式碼的正則匹配、替換等操作技巧,需要的朋友可以參考下

本文實例講述了PHP正規刪除HTML程式碼中寬高樣式的方法。分享給大家供大家參考,具體如下:

因為工作需要,需要採集html,並把html內容儲存到資料庫。為了避免影響使用,寬高樣式需要刪除。例如圖片和p中的width, height等。

不過採集到的html中,樣式的寫法各有不同,例如大小寫,中間有空格等。

因此使用php正規寫了下面這個方法,將這些奇葩的樣式過濾。

程式碼如下:


<?php
/**
 * 清除宽高样式
 * @param String $content 内容
 * @return String
 */
function clear_wh($content){
  $config = array(&#39;width&#39;, &#39;height&#39;);
  foreach($config as $v){
    $content = preg_replace(&#39;/&#39;.$v.&#39;\s*=\s*\d+\s*/i&#39;, &#39;&#39;, $content);
    $content = preg_replace(&#39;/&#39;.$v.&#39;\s*=\s*.+?["\&#39;]/i&#39;, &#39;&#39;, $content);
    $content = preg_replace(&#39;/&#39;.$v.&#39;\s*:\s*\d+\s*px\s*;?/i&#39;, &#39;&#39;, $content);
  }
  return $content;
}
?>

示範:


<?php
$html = <<<HTML
<p style="text-align:center" width="500" height="300">
  <p style="Width : 100px ; Height: 100 px;">
    <img src="/images/test.jpg" width=400 height = 200>
    <p style="float:left; width: 100px; height : 200 px;"></p>
  </p>
  <p style="width :  100 px ;height: 100px">
    <img src="/images/test.jpg" width=400 height = 200>
  </p>
</p>
HTML;
echo &#39;<xmp>&#39;;
echo &#39;原内容:&#39;.PHP_EOL;
echo $html.PHP_EOL.PHP_EOL;
echo &#39;过滤后内容:&#39;.PHP_EOL;
echo clear_wh($html);
echo &#39;</xmp>&#39;;
?>

輸出:


原内容:
<p style="text-align:center" width="500" height="300">
  <p style="Width : 100px ; Height: 100 px;">
    <img src="/images/test.jpg" width=400 height = 200>
    <p style="float:left; width: 100px; height : 200 px;"></p>
  </p>
  <p style="width :  100 px ;height: 100px">
    <img src="/images/test.jpg" width=400 height = 200>
  </p>
</p>

过滤后内容:
<p style="text-align:center" >
  <p style=" ">
    <img src="/images/test.jpg" >
    <p style="float:left; "></p>
  </p>
  <p style="">
    <img src="/images/test.jpg" >
  </p>
</p>

以上是利用PHP中的正規表示式方法刪除HTML的寬高樣式方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn