Der Inhalt dieses Artikels befasst sich mit dem Hinzufügen von Hintergrundfarben zu Schlüsselwörtern in PHP. Ich hoffe, dass er für Freunde hilfreich ist.
Anforderung: Ich habe kürzlich ein Standard-Scan-Tool für Wortnachrichten erstellt, das den Inhalt in Wort lesen, verdächtige und falsche Worttexte scannen und dem falschen und verdächtigen Text Hintergrundfarbe hinzufügen muss.
Die Erkennung von Inhaltsscanspezifikationen wird in diesem Artikel nicht beschrieben. Der entscheidende Punkt besteht darin, wie man Text Hintergrundfarbe hinzufügt, indem man Word über die Programmiersprache.
<?php namespace PhpOffice\PhpWord; class Template extends TemplateProcessor { public $tempDocumentMainPart; public function __construct($documentTemplate) { parent::__construct($documentTemplate); } static $wordArr; static $color = 'yellow'; /** * 多个词替换目前替换背景色功能 * * @param $word * @param $color * @example { * $template = new \PhpOffice\PhpWord\Template($path); * $template->setWordBgColor($txt, 'yellow'); * } */ public function setWordArrBgColor($word, $color) { self::$wordArr = array_unique($word); if (!empty(self::$wordArr)) { self::$color = $color; $this->tempDocumentHeaders = $this->_replace($this->tempDocumentHeaders); $this->tempDocumentMainPart = $this->_replace($this->tempDocumentMainPart); $this->tempDocumentFooters = $this->_replace($this->tempDocumentFooters); } } private function _replace($content) { return preg_replace_callback( '/<r>]*)>((?:(?!)[\s\S])*)<t>]*>((?:(?!)[\s\S])*)]*>/iUs', function ($matches) { // print_r($matches); if (!empty(trim($matches[3]))) { $text = $matches[3]; foreach (self::$wordArr AS $value) { // 判断关键词在字符串中是否存在 if (false !== strpos($text, $value)) { // 背景色属性 $bgAttr = empty($matches[2]) ? '<rpr><highlight></highlight></rpr>' : str_ireplace('', '<highlight></highlight>', $matches[2]); $matches[0] = str_ireplace($value, '</t></r><r>'.$bgAttr.'<t>'.$value.'</t></r><r>'.$bgAttr.'<t>', $matches[0]); } } if (!empty($matches[0])) { // 过滤掉空的 $matches[0] = preg_replace('/<r>]*>(?:(?!)[\s\S])*<t>]*>]*>/iUs', '', $matches[0]); } } return $matches[0]; }, $content); } }</t></r></t></r>
//引入类库 require autoload.php $path = './test.docx'; $template = new \PhpOffice\PhpWord\Template($path); $template->setWordArrBgColor(['TMD', '台湾省', 'Caonima'], 'yellow');
Das obige ist der detaillierte Inhalt vonSo fügen Sie mit PHP eine Hintergrundfarbe zu Schlüsselwörtern in Word hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!