Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 91久久精品国产91久久性色tv,好男人社区视频,国产精品女人在线观看

          整合營銷服務商

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

          免費咨詢熱線:

          PHP怎么將HTML實體轉換為普通字符

          HP將HTML實體轉換為普通字符,我們可以使用PHP htmlspecialchars_decode()函數將特殊的HTML實體轉換為正常字符,如&,<,>(即&,<,>)等HTML實體字符恢復到正常字符。



          下面我們就結合代碼示例,為大家介紹PHP將HTML實體轉換為普通字符的實現方法。

          代碼示例如下:

          <?php
          $my_str = "I'm good & <b>"boy "</b>.";
          echo htmlspecialchars_decode($my_str);
          echo "<br>";
          echo htmlspecialchars_decode($my_str, ENT_QUOTES);
          echo "<br>";
          echo $my_str;
          

          輸出結果如下:



          htmlspecialchars_decode函數表示將特殊的 HTML 實體轉換回普通字符。

          說明 :

          string htmlspecialchars_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 ] )
          

          其參數:string表示要解碼的字符串,flags表示用下列標記中的一個或多個作為一個位掩碼,來指定如何處理引號和使用哪種文檔類型。默認為 ENT_COMPAT | ENT_HTML401。

          此函數的作用和 htmlspecialchars() 剛好相反。它將特殊的HTML實體轉換回普通字符。

          被轉換的實體有:&, " (沒有設置ENT_NOQUOTES 時), ' (設置了 ENT_QUOTES 時), < 以及>。

          該htmlspecialchars_decode()函數與htmlspecialchars()將特殊HTML字符轉換為HTML實體的函數相反。

          本篇文章就是關于PHP將HTML實體轉換為普通字符的方法介紹,簡單易懂,希望對需要的朋友有所幫助!

          以上就是PHP怎么將HTML實體轉換為普通字符的詳細內容,更多請關注其它相關文章!

          更多技巧請《轉發 + 關注》哦!

          幾天,我手里的一個項目需要將富文本的所有 html 標簽全部刪除,得到純文本后再存儲到數據庫中。在一系列得搜索操作之后,我找到了實現這個目的的幾種方法,在這里我分享給大家,當你遇到同樣的情況興許也能用的上。

          1. 使用 .replace(/<[^>]*>/g, '')

          這個方法是從文本中去除 html 標簽最簡單的方法。它使用字符串的方法 .replace(待替換的字符串,替換后的字符串) 將 HTML 標簽替換成空值。 /g 是表示替換字符串所有匹配的值,即字符串中所有符合條件的字符都將被替換。

          這個方法的缺點是有些 HTML 標簽不能被剔除,不過它依然很好用。

          2. 創建臨時DOM元素并獲取其中的文本

          這種方法是完成該問題的最有效的方法。創建一個臨時 DOM 并給他賦值,然后我們使用 DOM 對象方法提取文本。

          3. 使用 html-to-text npm 包

          html-to-text 這個包的功能很全了,轉換也有許多的選項比如:wordwrap, tags, whitespaceCharacters , formatters 等等。

          安裝:

          npm install html-to-text

          使用:

          最后感謝閱讀,如果此文對您有幫助,請點贊或添加關注。

          .什么是tika?

          Tika是一個內容分析工具,自帶全面的parser工具類,能解析基本所有常見格式的文件,得到文件的metadata,content等內容,返回格式化信息。總的來說可以作為一個通用的解析工具。特別對于搜索引擎的數據抓去和處理步驟有重要意義。Tika是Apache的Lucene項目下面的子項目,在lucene的應用中可以使用tika獲取大批量文檔中的內容來建立索引,非常方便,也很容易使用。Apache Tika toolkit可以自動檢測各種文檔(如word,ppt,xml,csv,ppt等)的類型并抽取文檔的元數據和文本內容。Tika集成了現有的文檔解析庫,并提供統一的接口,使針對不同類型的文檔進行解析變得更簡單。Tika針對搜索引擎索引、內容分析、轉化等非常有用。

          Tika架構

          應用程序員可以很容易地在他們的應用程序集成Tika。Tika提供了一個命令行界面和圖形用戶界面,使它比較人性化。在本章中,我們將討論構成Tika架構的四個重要模塊。下圖顯示了Tika的四個模塊的體系結構:

          • 語言檢測機制。
          • MIME檢測機制。
          • Parser接口。
          • Tika Facade 類.

          語言檢測機制

          每當一個文本文件被傳遞到Tika,它將檢測在其中的語言。它接受沒有語言的注釋文件和通過檢測該語言添加在該文件的元數據信息。支持語言識別,Tika 有一類叫做語言標識符在包org.apache.tika.language及語言識別資料庫里面包含了語言檢測從給定文本的算法。Tika 內部使用N-gram算法語言檢測。

          MIME檢測機制

          Tika可以根據MIME標準檢測文檔類型。Tika默認MIME類型檢測是使用org.apache.tika.mime.mimeTypes。它使用org.apache.tika.detect.Detector 接口大部分內容類型檢測。內部Tika使用多種技術,如文件匹配替換,內容類型提示,魔術字節,字符編碼,以及其他一些技術。

          解析器接口

          org.apache.tika.parser 解析器接口是Tika解析文檔的主要接口。該接口從提取文檔中的文本和元數據,并總結了其對外部用戶愿意寫解析器插件。采用不同的具體解析器類,具體為各個文檔類型,Tika 支持大量的文件格式。這些格式的具體類不同的文件格式提供支持,無論是通過直接實現邏輯分析器或使用外部解析器庫。

          Tika Facade 類

          使用的Tika facade類是從Java調用Tika的最簡單和直接的方式,而且也沿用了外觀的設計模式。可以在 Tika API的org.apache.tika包Tika 找到外觀facade類。通過實現基本用例,Tika作為facade的代理。它抽象了的Tika庫的底層復雜性,例如MIME檢測機制,解析器接口和語言檢測機制,并提供給用戶一個簡單的接口來使用。

          2.代碼工程

          實驗目標

          實現word文檔轉html

          pom.xml

          <?xml version="1.0" encoding="UTF-8"?>
          <project xmlns="http://maven.apache.org/POM/4.0.0"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
              <parent>
                  <artifactId>springboot-demo</artifactId>
                  <groupId>com.et</groupId>
                  <version>1.0-SNAPSHOT</version>
              </parent>
              <modelVersion>4.0.0</modelVersion>
          
              <artifactId>tika</artifactId>
          
              <properties>
                  <maven.compiler.source>8</maven.compiler.source>
                  <maven.compiler.target>8</maven.compiler.target>
              </properties>
              <dependencies>
          
                  <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-starter-web</artifactId>
                  </dependency>
          
                  <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-autoconfigure</artifactId>
                  </dependency>
                  <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-starter-test</artifactId>
                      <scope>test</scope>
                  </dependency>
                  <dependency>
                      <groupId>org.apache.tika</groupId>
                      <artifactId>tika-parsers</artifactId>
                      <version>1.17</version>
                  </dependency>
                  <dependency>
                      <groupId>org.projectlombok</groupId>
                      <artifactId>lombok</artifactId>
                  </dependency>
          
              </dependencies>
          </project>

          controller

          package com.et.tika.controller;
          
          import com.et.tika.convertor.WordToHtmlConverter;
          import com.et.tika.dto.ConvertedDocumentDTO;
          import lombok.extern.slf4j.Slf4j;
          import org.springframework.beans.factory.annotation.Autowired;
          import org.springframework.web.bind.annotation.RequestMapping;
          import org.springframework.web.bind.annotation.RequestMethod;
          import org.springframework.web.bind.annotation.RequestParam;
          import org.springframework.web.bind.annotation.RestController;
          import org.springframework.web.multipart.MultipartFile;
          
          import java.util.HashMap;
          import java.util.Map;
          
          @RestController
          @Slf4j
          public class HelloWorldController {
              @RequestMapping("/hello")
              public Map<String, Object> showHelloWorld(){
                  Map<String, Object> map = new HashMap<>();
                  map.put("msg", "HelloWorld");
                  return map;
              }
              @Autowired
              WordToHtmlConverter converter;
          
          
          
              /**
               * Transforms the Word document into HTML document and returns the transformed document.
               *
               * @return  The content of the uploaded document as HTML.
               */
              @RequestMapping(value = "/api/word-to-html", method = RequestMethod.POST)
              public ConvertedDocumentDTO convertWordDocumentIntoHtmlDocument(@RequestParam(value = "file", required = true) MultipartFile wordDocument) {
                  log.info("Converting word document into HTML document");
          
                  ConvertedDocumentDTO htmlDocument = converter.convertWordDocumentIntoHtml(wordDocument);
          
                  log.info("Converted word document into HTML document.");
                  log.trace("The created HTML markup looks as follows: {}", htmlDocument);
          
                  return htmlDocument;
              }
          }

          WordToHtmlConverter

          package com.et.tika.convertor;
          
          
          import com.et.tika.dto.ConvertedDocumentDTO;
          import com.et.tika.exception.DocumentConversionException;
          import lombok.extern.slf4j.Slf4j;
          import org.apache.tika.exception.TikaException;
          import org.apache.tika.metadata.Metadata;
          import org.apache.tika.parser.ParseContext;
          import org.apache.tika.parser.Parser;
          import org.apache.tika.parser.microsoft.ooxml.OOXMLParser;
          import org.slf4j.Logger;
          import org.slf4j.LoggerFactory;
          import org.springframework.stereotype.Component;
          import org.springframework.web.multipart.MultipartFile;
          import org.xml.sax.SAXException;
          
          import javax.xml.transform.OutputKeys;
          import javax.xml.transform.TransformerException;
          import javax.xml.transform.sax.SAXTransformerFactory;
          import javax.xml.transform.sax.TransformerHandler;
          import javax.xml.transform.stream.StreamResult;
          import java.io.IOException;
          import java.io.InputStream;
          import java.io.StringWriter;
          
          /**
           *
           */
          @Component
          @Slf4j
          public class WordToHtmlConverter {
          
          
              /**
               * Converts a .docx document into HTML markup. This code
               * is based on <a href="http://stackoverflow.com/a/9053258/313554">this StackOverflow</a> answer.
               *
               * @param wordDocument  The converted .docx document.
               * @return
               */
              public ConvertedDocumentDTO convertWordDocumentIntoHtml(MultipartFile wordDocument) {
                  log.info("Converting word document: {} into HTML", wordDocument.getOriginalFilename());
                  try {
                      InputStream input = wordDocument.getInputStream();
                      Parser parser = new OOXMLParser();
          
                      StringWriter sw = new StringWriter();
                      SAXTransformerFactory factory = (SAXTransformerFactory)
                              SAXTransformerFactory.newInstance();
                      TransformerHandler handler = factory.newTransformerHandler();
                      handler.getTransformer().setOutputProperty(OutputKeys.ENCODING, "utf-8");
                      handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "html");
                      handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes");
                      handler.setResult(new StreamResult(sw));
          
                      Metadata metadata = new Metadata();
                      metadata.add(Metadata.CONTENT_TYPE, "text/html;charset=utf-8");
                      parser.parse(input, handler, metadata, new ParseContext());
                      return new ConvertedDocumentDTO(wordDocument.getOriginalFilename(), sw.toString());
                  }
                  catch (IOException | SAXException | TransformerException | TikaException ex) {
                      log.error("Conversion failed because an exception was thrown", ex);
                      throw new DocumentConversionException(ex.getMessage(), ex);
                  }
              }
          }

          dto

          package com.et.tika.dto;
          
          import org.apache.commons.lang.builder.ToStringBuilder;
          
          /**
           *
           */
          public  class ConvertedDocumentDTO {
          
              private final String contentAsHtml;
              private final String filename;
          
              public ConvertedDocumentDTO(String filename, String contentAsHtml) {
                  this.contentAsHtml = contentAsHtml;
                  this.filename = filename;
              }
          
              public String getContentAsHtml() {
                  return contentAsHtml;
              }
          
              public String getFilename() {
                  return filename;
              }
          
              @Override
              public String toString() {
                  return new ToStringBuilder(this)
                          .append("filename", this.filename)
                          .append("contentAsHtml", this.contentAsHtml)
                          .toString();
              }
          }

          自定義異常

          package com.et.tika.exception;
          
          /**
           *
           */
          public final class DocumentConversionException extends RuntimeException {
          
              public DocumentConversionException(String message, Exception ex) {
                  super(message, ex);
              }
          }

          以上只是一些關鍵代碼,所有代碼請參見下面代碼倉庫

          代碼倉庫

          • https://github.com/Harries/springboot-demo

          3.測試

          啟動Spring Boot應用

          測試word轉html

          4.引用

          • https://tika.apache.org/
          • http://www.liuhaihua.cn/archives/710679.html

          主站蜘蛛池模板: 午夜视频久久久久一区 | 无码日本电影一区二区网站| 欲色aV无码一区二区人妻| 日韩精品无码一区二区三区| 国产aⅴ一区二区| 在线播放偷拍一区精品| 射精专区一区二区朝鲜| 国产成人无码一区二区在线观看| 国产第一区二区三区在线观看| 亚洲一区在线免费观看| 日韩精品人妻一区二区中文八零| 精品视频一区二区三区在线播放| 无码aⅴ精品一区二区三区| 日韩一区精品视频一区二区| 国模私拍一区二区三区| 亚洲国产激情一区二区三区 | 国产亚洲一区二区三区在线| 无码毛片一区二区三区视频免费播放 | 亚洲精品精华液一区二区| 亚洲日本va午夜中文字幕一区| 精品国产福利第一区二区三区| 精品无码综合一区| 狠狠色婷婷久久一区二区三区| 亚洲国产成人久久一区WWW| 一区免费在线观看| 国产日韩高清一区二区三区 | 日本一道高清一区二区三区| 亚洲一区二区三区亚瑟| 亚洲综合在线成人一区| 亚洲国产视频一区| 成人无号精品一区二区三区| 国内精品视频一区二区三区八戒| 亚洲变态另类一区二区三区| 亚洲av日韩综合一区久热| 在线电影一区二区| 无码8090精品久久一区| 国产精品一区在线观看你懂的| 上原亚衣一区二区在线观看| 国产一区二区三区不卡AV| 色窝窝无码一区二区三区成人网站| 久久久精品人妻一区亚美研究所 |