1. 程式人生 > >html替換把多有標籤替換成p標籤

html替換把多有標籤替換成p標籤

<span style="font-size:18px;">//按要求把html標籤替換
 function replace_html($html){
    //替換成空的字串
    $emp_tag=array('ul','table','tr','br');
    //不替換的字串
    $no_tag=array('img','script');
    //去掉該去掉的標籤(br,img,script除外),其他標籤都替換成p標籤
    $html=preg_replace_callback('/<(\/)?(([a-zA-Z]+)(\s*)([^<>]*)(\s*))>/is', function ($matchs)use($emp_tag,$no_tag){
        if(in_array($matchs[3], $emp_tag)){//根據設定的替換成空的標籤進行操作
            return '';
        }elseif(in_array($matchs[3], $no_tag)){//根據設定的不替換的標籤進行操作
            return $matchs[0];
        }else {
            $str_1=str_replace($matchs[2], 'p', $matchs[0]);//其餘標籤全部替換成p標籤
            return $str_1;
        }
        
    }, $html);
    //去掉換行,空格
    $replace_arr=array('<p>','</p>');
    $html=str_replace($replace_arr, ' mytag ', $html);//p標籤替換成設定的標記,
    // $html=str_replace('<p>', ' mytag ', $html);//p標籤替換成設定的標記,
    // $html=str_replace(, ' mytag ', $html);//p標籤替換成設定的標記,
    $html=preg_replace('/\s+/', ' ', $html);//去掉多餘的空格
    $temp_str='';//存放複製進來的字串的變數
    $replace_arr_tag=array(' ','<br/>','mytag ',' ');//要替換掉的字串
    foreach ((explode(' mytag ', $html)) as $key => $value) {
        if ($value==' '||$value=='mytag') {//如果是這個則跳出這次迴圈(不計入替換後的字串中)
            continue;
        }
        $value=str_replace($replace_arr_tag, '', $value);//去掉空設定好的字串
        $value=trim($value);//去掉前後空格
        if(strlen($value)||$value==='false'){//判斷字串是否合格,不合格不計入
            $temp_str.='<p>'.$value.'</p>';
        }
        
    };
    //去掉img標籤裡面除了src之外的內容
    //先找出img標籤裡面的所有屬性
    $temp_str=preg_replace_callback('/<img(\s+)([^<>]+)(\s*)\/>/i', function($matchs){
        //找到src屬性
        preg_match('/src="(\s*)([^<>\s]+)(\s*)"/i', $matchs[2], $temp);
        if (!count($temp)) {
            preg_match("/src='(\s*)([^<>\s]+)(\s*)'/i", $matchs[2], $temp);
        }
        //對返回值賦值
        $img_src='<img src="'.$temp[2].'"/>';
        //下載ueditor沒有下載的圖片
        if(preg_match('/^http.*/i', $temp[2])){
            $filename="./Public/image/at/".(string)time().(string)(rand(1,1000)*rand(1,1000)*rand(1,1000)+rand(1,1000)+rand(1,1000)+rand(1,1000));
            $temp=curl_download($temp[2],$filename);
            $img_src='<img src="'.$temp.'"/>';
        }
        return $img_src;
    }, $temp_str);
    return $temp_str;
 }</span>

相關推薦

html替換標籤替換p標籤

<span style="font-size:18px;">//按要求把html標籤替換 function replace_html($html){ //替換成空的字串 $emp_tag=array('ul','table','tr','br'

如何個pdf合併一個pdf

伴隨著工作的日積月累,電腦上零散的PDF檔案也越來越多,經常有一些同一型別的檔案分成好幾個PDF檔案,大家都想將相同的檔案整理成一份PDF檔案,這樣不僅不會丟失某一部分檔案,也方便檔案的查詢,那麼如何把多個PDF合併成一個PDF呢?小編將自己總結得來的方法和大家一起分享吧。1.想要把PDF檔案合併,大家先需要

java 怎麼個list 合併一個去掉重複的

轉自https://www.cnblogs.com/holyday/p/7685571.html public static void main(String[] args){ List<Integer> list1 = new ArrayList<Inte

.net中如何個檔案合併一個檔案

懶得再單獨寫一個,所以就加了超級詳細的註釋 前幾個判斷主要是合併sql檔案,什麼樣的sql對應的什麼樣的處理, 最後一個判斷是合併任何檔案 方法的兩個引數:第一個是開啟檔案路徑的集合,第二個引數檔案儲存路徑 private void FileMerge(strin

SQL中如何查詢結果合併一條資料

SELECT TOP 1000 [diqu] ,[fuzeren] ,[yugong] FROM [lx].[dbo].[ls]   select diqu,fuzeren,stuff((select ','+yugong from ls whe

LINUX下行檔案合併一行,並組裝SQL

   先說一下適用的場景,市場部那邊希望看到某些商品中“黃牛”使用者的活動情況,以及“黃牛”使用代金券的情況,然後發一個excel檔案過來,拿到檔案先複製到notepad++中,格式類似: idname price 1name1 price1 2name2 price2 3

js實現textarea通過換行或者回車行數字分割陣列

var textarea = modal.find("[name='uids']").val(); var uidArr = textarea.split(/[(\r\n)\r\n]+/); 測試結果 "111\r\n\r\n222\n\n333\r444\n\r\r\r\r777".s

利用canvas,張圖合併一張圖片

<!DOCTYPE html> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="ke

使用ImageMagick montage張圖片拼一張大圖

最近專案中需要將多張小圖片拼成一張大圖,因為工作量大不可能讓美術手動去拼,而且手動拼的話很容易失誤。於是google到了ImageMagic,功能很強大,有很多處理圖片的工具,拼圖就用到了其中的montage。詳細用法不多說,可以去官網(www.imagemagick.or

Python中維陣列展開DataFrame

import numpy as np import pandas as pd ################# 準備資料 ################# a1 = np.arange(1,101) a3 = a1.reshape((2,5,10)) a3 ''' ar

如何讓textarea中輸入行的資料在p標籤中換行?

我們在用React開發Web專案的過程中,有的時候,我們需要把textarea中輸入的多行字串,在其他的標籤中輸出來,比如p標籤。但是,往往這個時候,在p標籤中輸出的內容其預設情況下是不換行的。比如下面的程式碼: import React,{Component} from 'reac

js獲取li標籤下的p標籤或者a標籤的值

例如:(點選編輯按鈕,獲取admin 的值)                  <li class="role_oli">                     <p class="user_enable">admin</p>  

Spring中<bean>標籤之使用p標籤配置bean的屬性

在spring的bean配置檔案中我們常可以見到下面的例子: <bean id="user" class="com.sys.User" p:name-ref="name" /> 其中,p:name-ref="name"使用了p標籤來配置bean的name的引用。在使用p標籤配

【刷題】day01--對稱的二叉樹、二叉樹列印行、二維陣列的查詢、替換空格

[程式設計題]對稱的二叉樹 熱度指數:90872時間限制:1秒空間限制:32768K 演算法知識視訊講解 請實現一個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的映象是同

MySQL解決抓取文章的html標籤替換及其mysql函式的用法說明

剛剛做完了一個手機客戶端的攻略的Html5 Web App頁面,新的需求出現了:由於攻略文章是抓取過來的,有很多外鏈,一開始沒有過濾。於是先用PHP寫了一個過濾函式,然後批量執行更新相關資料庫記錄即可。 public static function filter_newslink($aid){

html如何頁面分割個檔案,由個檔案拼接而

摘要: 不同平臺:pc端靜態html分割頁面,達到類似php等動態頁面的include引入頁面效果;手機端單一HTML5頁面建立多個頁面。 用html把首頁分成三個檔案 在PHP、JSP等動態頁面開發中,頁面裡引入其它頁面只需include()進來就可以實現頁面的分離。

JavaScript查詢Html字串中的img標籤替換src屬性的內容

JavaScript示例程式碼如下:  var newContent= content.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi,function(match,capture){   //capture

java字串中個空格替換一個空格

本人原創,轉載請註明出處! 本人QQ:530422429,歡迎大家指正、討論。 目的:字串中多個空格替換成一個空格 public class test { public static void main(String[] args) {String w= "";St

Javascript:匹配所有“\r\n”的正則表示式,換行符替換 br

Javascript:匹配所有“\r\n”的正則表示式,把換行符替換成 var atStr="字串"; var dataAt=atStr.replace(/(\r\n)|(\n)/g,'<br&

java 個空字元替換一個 字串數字前新增空格

String name1 = "水果 青菜 大米 麵粉"; //因為空格的數量不同 所以不會好處理 下面的方法會簡單一點 // 引數1 是代表所有的空格 ,引數2 是代表你要替換成的字串 例子我是替換成了一個下劃線 String zz =