整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          總結php刪除html標簽和標簽內的內容的方法

          常扒別人網站文章的坑們;我是指那種批量式采集的壓根不看內容的;少不了都會用到刪除html標簽的函數;這里介紹3種不同用途上的方法;

          $str='<div><p>這里是p標簽</p><img src="" alt="這里是img標簽"><a href="">這里是a標簽</a><br></div>';


          1:刪除全部或者保留指定html標簽php自帶的函數strip_tags即可滿足要求,使用方法:strip_tags(string,allow);string:需要處理的字符串;allow:需要保留的指定標簽,可以寫多個;

          echo strip_tags($str,'<p><a>');//輸出:<p>這里是p標簽</p><a href="">這里是a標簽</a>


          此函數的優點是簡單粗暴;但是缺點也很明顯;如果有一大堆標簽;而我只是想刪除指定的某一個;那要寫很多需要保留的標簽;所以有了第二個方法;

          2:刪除指定的html標簽使用方法:strip_html_tags($tags,$str);$tags:需要刪除的標簽(數組格式)$str:需要處理的字符串;

          function strip_html_tags($tags,$str){
              $html=array();
              foreach ($tags as $tag) {
                  $html[]="/(<(?:\/".$tag."|".$tag.")[^>]*>)/i";
              }
              $data=preg_replace($html, '', $str);
              return $data;
          }
          echo strip_html_tags(array('p','img'),$str);
          //輸出:<div>這里是p標簽<a href="">這里是a標簽</a><br></div>;

          3:刪除標簽和標簽的內容使用方法:strip_html_tags($tags,$str);$tags:需要刪除的標簽(數組格式)$str:需要處理的字符串;

          function strip_html_tags($tags,$str){
              $html=array();
              foreach ($tags as $tag) {
                  $html[]='/<'.$tag.'.*?>[\s|\S]*?<\/'.$tag.'>/';
                  $html[]='/<'.$tag.'.*?>/';
              }
              $data=preg_replace($html,'',$str);
              return $data;
          }
          echo strip_html_tags(array('a','img'),$str);
          //輸出<div><p>這里是p標簽</p><br></div>

          很多網站文章里面會帶上網站名和鏈接;這個函數就是專治這種;別拿這個函數采集本站啊;不然保證不打死你;4:終極函數,刪除指定標簽;刪除或者保留標簽內的內容;使用方法:strip_html_tags($tags,$str,$content);$tags:需要刪除的標簽(數組格式)$str:需要處理的字符串;$ontent:是否刪除標簽內的內容 0保留內容 1不保留內容

          多數PHP程序都使用HTML表單從用戶那里獲取數據并計算結果。

          HTML表單的一些基本原則

          • 選擇適合于收集的數據類型和提供交互方式的控件。
          • 清楚標記每一個控件,這樣用戶就可以理解其功能。
          • 盡可能將標簽對齊。將控件的左邊緣對齊。
          • 將相關的標簽分組,并且通過設計中使用空白將每一個分組分開。
          • 表單上的控件順序應該類似于用戶操作他們的順序。

          創建基本HTML表單

          首先創造一個基本的HTML大綱,包含表單控件;然后將控件進行合并(HTML表單必須包括一個提交按鈕,用戶單擊它可以將表單數據發送到服務器。)一個單獨的HTML頁面可以包含多個表單。

          • 創建HTML結構

          包含表單的HTML結構和和普通的HTML結構一樣。

          <HTML>
            <HEAD>
            <TITLE>標題放在這</TITLE>
            </HEAD>
          <BODY>
            表單頁面放在這
            </BODY>
            </HTML>

          在包含表單的HTML頁面中可以使用任何HTML標簽。基本的表單使用FROM標簽來說明。該標簽中METHOD屬性接收GET或POST兩個值中的一個。ACTION屬性子明PHP腳本的url,該腳本可以收集通過表單收集的數據,可以是絕對路徑或者相對路徑

          <FORM METHOD="method" ACTION="url"> 
            中間可以放置表單控件
            </FORM>
          • 合并控件

          兩個常用的基本控件:文本框和提交按鈕。

          文本框:允許用戶鍵入信息以發送給PHP腳本。NAME屬性為文本提供名稱,PHP腳本可以通過名稱準確訪問其內容,因此它應該是唯一的且符合PHP變量命名規則(但不需要$符號),單標簽。VALUE屬性指明出現在提交按鈕上面的標題。創建方式如下:

          <INPUT TYPE = "TEXT" NAME="text">

          提交按鈕:允許用戶將一個表單的內容發送到服務器,一個HTML表單對應應該有一個提交按鈕。

          示例:一個完整的HTML表單。

          <HTML>
            <HEAD>
            <TITLE>標題</TITLE>
            </HEAD>
          <BODY>
          <FORM METHOD="POST" ACTION="phpinfo.php">
          <INPUT TYPE="TEXT" NAME="user_name">
          <BR/>
          <BR/>
          <INPUT TYPE="TEXT" NAME="user_email">
          <BR/>
          <BR/>
          <INPUT TYPE="SUBMIT" VALUE="Send the Data">
          </FORM>
            </BODY>
            </HTML>


          • 使用多個表單

          可以在一個HTML頁面中包含多個表單,注意下一個表單的FORM開始之前需要結束前一個FORM表單。

          <HTML>
            <HEAD>
            <TITLE>標題</TITLE>
            </HEAD>
          <BODY>
            
          <FORM METHOD="POST" ACTION="phpinfo.php">
          <INPUT TYPE="TEXT" NAME="user_name">
          <BR/>
          <BR/>
          <INPUT TYPE="TEXT" NAME="user_email">
          <BR/>
          <BR/>
          <INPUT TYPE="SUBMIT" VALUE="Send the Data">
          <BR/>
          <BR/>
          </FORM>
          
          <FORM METHOD="POST" NAME="phpinfo.php">
          <INPUT TYPE="TEXT" NAME="user_name1">
          <BR/>
          <BR/>
          <INPUT TYPE="TEXT" NAME="user_email1">
          <BR/>
          <BR/>
          <INPUT TYPE="SUBMIT" VALUE="Send the Data1">
          </FORM>
          
            </BODY>
            </HTML>


          創建表單控件

          • 創建自定義的文本框

          文本框的屬性中,TYPE和NAME是必須的,其余是可選屬性。SIZE屬性用于設置文本框的可視大小;MAXLENGTH指明用戶鍵入字符的最大長度;VALUE給出了一個最初顯示在文本框中的值。

          <input type="text" name="" size="" maxlength="" value="">
          • 創建文本區域

          文本區域可以輸入多行文本。NAME和ROWS屬性是必須的。ROWS屬性表明了文本區域內可以看到的文本行數,充滿時會滾動。COLS屬性指明可見文本列數與行數類似。WRAP屬性指明文本區域內單詞換行的方式,可以指定如下值。該標簽為雙標簽。

          說明

          off

          禁止單詞換行但用戶可以輸入換行符強制換行

          virtual/soft

          各行顯示為換行,但是換行并沒有被發送到服務器

          physica/hard

          啟用了單詞換行

          <inputarea name="" rows="" cols="" wrap="">
          • 創建密碼框

          創建密碼框的語法與文本框相同,但要將TYPE屬性指定為PASSWORD而不是TYPE。

          <input type="password" name="" size="" maxlength="" value="">
          • 創建復選框

          取兩個值中的一個,即二選一。TYPE屬性是必須的,checked屬性出現,該復選框默認情況會被選定。value屬性指定復選框被選定情況下被發送到服務器的值,默認發送on值。法如下:

          <input type="checkbox" name="" checked value="">
          • 創建單選按鈕

          語法與復選框屬性含義相同,但是TYPE屬性的值必須是RADIO,NAME屬性是必須的。

          <input type="radio" name="" checked value="">
          • 創建列表框

          用戶可以選擇一個或者多個選項,它是一個滾動菜單。

          <select name="" multipile size="">options go here</select>

          name屬性是必須的,multipile屬性指明用戶可以通過按下crtl鍵并單擊多個選項來選擇它們

          列表框的單選行為可作為單選按鈕。

          <option selected value="text"></options>
          • 創建隱藏域
          <input type="hidden" name="text"value="">
          • 實現上傳文件的HTML表單
          <input type="FILE" name="name" accept="time" value="text">

          其中type屬性是必須的。格式通過使用MIME碼指定。常用的格式如下:


          超文本標記語言文本 .html,.html text/html

            普通文本 :txt text/plain

            word文檔:application/msword

            RTF文本 :rtf application/rtf

            GIF圖形 :gif image/gif

            JPEG圖形 :jpeg,

            jpg: image/jpeg

            au聲音文件:au audio/basic

            MIDI音樂文件 :mid,.midi audio/midi,audio/x-midi

            RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio

            MPEG文件 .mpg,.mpeg video/mpeg

            AVI文件 .avi video/x-msvideo

            GZIP文件 .gz application/x-gzip

            壓縮文件.rar application/octet-stream

            壓縮文件.zip application/x-zip-compressed

            TAR文件 .tar application/x-tar


          更多提交表單的信息

          • 使用圖像提交數據
          <input type="image" src="url" name="text" align="align">
          • 創建重置按鈕
          <input type="reset" value="text">

          HP默認的函數有移除指定html標簽,名稱為strip_tags,在某些場合非常有用。

          strip_tags

          (PHP 3 >= 3.0.8, PHP 4, PHP 5)

          strip_tags — Strip HTML and PHP tags from a string

          string strip_tags ( string str [, string allowable_tags] )

          弊端 :

          這個函數只能保留想要的html標簽,就是參數string allowable_tags。

          這個函數的參數allowable_tags的其他的用法。

          strip_tags($source, ”); 去掉所以的html標簽。

          strip_tags($source, ‘<div><img><em>’); 保留字符串中的div、img、em標簽。

          如果想去掉的html的指定標簽。那么這個函數就不能滿足需求了。于是乎我用到了這個函數。

          /**

          * Removes specific tags.

          */

          function strip_only_tags($str, $tags, $stripContent = FALSE) {

          $content = '';

          if (!is_array($tags)) {

          $tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));

          if (end($tags) == '') {

          array_pop($tags);

          }

          }

          foreach($tags as $tag) {

          if ($stripContent) {

          $content = '(.+<!--'.$tag.'(-->|\s[^>]*>)|)';

          }

          $str = preg_replace('#<!--?'.$tag.'(-->|\s[^>]*>)'.$content.'#is', '', $str);

          }

          return $str;

          }

          參數說明

          $str — 是指需要過濾的一段字符串,比如div、p、em、img等html標簽。

          $tags — 是指想要移除指定的html標簽,比如a、img、p等。

          $stripContent = FALSE — 移除標簽內的內容,比如將整個鏈接刪除等,默認為False,即不刪除標簽內的內容。

          使用說明

          $target = strip_only_tags($source, array(‘a’,'em’,'b’));

          移除$source字符串內的a、em、b標簽。

          $source='<div><a href="http://www.tsingyaun.cn" target="_blank"><img src="http://www.tsingyuan.cn/logo.png" border="0" alt="Welcome to linzl." />This a example from<em>lixiphp</em></a><strong>!</strong></div>

          ';

          $target = strip_only_tags($source, array('a','em'));

          //target results

          //<div><img src="http://blog.lixiphp.com/logo.png" border="0" alt="Welcome to lixiphp." />This a example from<strong>!</strong></div>

          :left;"


          主站蜘蛛池模板: 日本成人一区二区三区| 亚洲AV无码一区二区三区久久精品| 91精品国产一区二区三区左线| 国产人妖视频一区二区破除| 免费萌白酱国产一区二区三区| 国产主播在线一区| 一区二区三区视频在线| 亚洲国产精品一区二区第四页 | 理论亚洲区美一区二区三区| 亚洲一区二区在线视频| 亚洲一区二区三区首页| 亚洲AV综合色一区二区三区| 色偷偷av一区二区三区| 国产精品视频一区| 久久免费视频一区| 亚洲综合色一区二区三区小说| 无码人妻aⅴ一区二区三区有奶水| 精品久久久久久无码中文字幕一区| 亚洲国产欧美国产综合一区 | 精品一区二区三区在线播放视频| 日本美女一区二区三区 | 国产一区二区三区免费观看在线| 日本强伦姧人妻一区二区| 四虎永久在线精品免费一区二区| 日韩美一区二区三区| 亚洲国产欧美一区二区三区| 人妻精品无码一区二区三区| 亚洲视频一区网站| 97久久精品无码一区二区| 久久久久无码国产精品一区| 久久国产一区二区三区| 精品国产一区二区三区不卡| 亚无码乱人伦一区二区| 亚洲av无码一区二区三区在线播放 | 久久精品无码一区二区三区不卡 | 亚洲香蕉久久一区二区| 国产福利在线观看一区二区| 久久福利一区二区| 国产精品 视频一区 二区三区| 国产精品夜色一区二区三区| 一区二区三区高清视频在线观看|