Hi! Could we please enable some services and cookies to improve your experience and our website?
Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code
<?php
function replace_random_hanzi($html, $seed) {
// 创建一个DOMDocument对象并加载HTML
$dom = new DOMDocument();
@$dom->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'));
// 创建一个DOMXPath对象
$xpath = new DOMXPath($dom);
// 获取所有<p>标签
$p_nodes = $xpath->query('//p');
// 正则匹配汉字
$pattern = '/[\x{4e00}-\x{9fa5}]/u';
// 从所有<p>标签中随机选择一个进行处理
$random_index = mt_rand(0, $p_nodes->length - 1);
$random_p_node = $p_nodes->item($random_index);
// 获取随机选择的<p>标签内的文本
$text = $random_p_node->nodeValue;
// 查找所有汉字的位置
preg_match_all($pattern, $text, $matches, PREG_OFFSET_CAPTURE);
// 如果没有找到汉字,直接返回原始HTML
if (empty($matches[0])) {
return $dom->saveHTML();
}
// 设置随机数生成器的种子
mt_srand($seed);
// 随机选择一个汉字的位置
$random_char_index = mt_rand(0, count($matches[0]) - 1);
$random_char_position = $matches[0][$random_char_index][1];
// 替换随机选择的汉字
echo $text."||";
// 替换随机选择的汉字
$char_length = mb_strlen($matches[0][$random_char_index][0], 'UTF-8');
$text = substr_replace($text, '000000', $random_char_position, $char_length);
$random_p_node->nodeValue = $text;
// 返回处理后的HTML
return $dom->saveHTML();
}
// 您提供的HTML文本
$html_text = '
<p style="text-align:center;"><img src="/wp-content/img/2024/03/2024030987fd1d897.jpg"/></p>
<p><strong>【比赛关键事件】</strong></p>
<p><strong>第10分钟,加纳乔禁区左侧扣球变向被塔尔科夫斯基绊倒,裁判果断判罚点球。↓</strong></p>
<p><strong>B费主罚点球一蹴而就,曼联1-0埃弗顿!↓</strong></p>
<p><strong>两度造点!第35分钟,加纳乔中路凭借个人能力突破,杀入禁区被戈弗雷放倒,裁判再次判罚点球。↓</strong></p>
';
// 设置种子值
$seed = 1234;
// 调用函数进行处理
$processed_html_text = replace_random_hanzi($html_text, $seed);
$processed_html_text = html_entity_decode($processed_html_text);
echo $processed_html_text;
?>