【问题标题】:changing text in html with php without affecting html tags用php更改html中的文本而不影响html标签
【发布时间】:2017-12-11 20:51:24
【问题描述】:

我编辑了一个简单的 php 函数来将字母转换为具有相似外观的同形异义词。

我的代码:

function homographit($string){

$alphabet = array("A", "B", "C", "E", "H", "J", "K", "M", "N", "O", "P", "S", "T", "X", "Y", 
"a", "b", "c", "e", "i", "j", "k", "o", "p", "r", "s", "v", "x", "y");
$Greec   = array("\u0391", "\u0392", "\u0421", "\u0395", "\u0397", "\u0408", "\u039A", "\u039C", "\u039D", "\u039F", "\u03A1", "\u0405", 
"\u03A4", "\u03A7", "\u03A5", "\u0430", "\u042C", "\u0441", "\u0435", "\u0456", "\u0458", "\u03BA", "\u03BF", "\u03C1", "\u0433", "\u0455", 
"\u03BD", "\u03C7", "\u0443");

$newstring = str_replace($alphabet, $Greec, $string);
return json_decode('"'.$newstring.'"', true);
}

对于文本字符串,该函数可以完美运行。

我的问题:

如何在不影响 html TAGS 的情况下将此 homgraphit() 应用于 html 字符串中的所有文本? 谢谢

【问题讨论】:

  • 通过在< 字符和> 上使用正则表达式 - range('A', 'Z') 将比全部输入更快地获得一个字母
  • 谢谢你的朋友。任何想法我只想更改我的函数中引用的字母而不是所有字母
  • 不用担心 :) wimm.n 的答案看起来不错(我没有测试过,但我相信他/她的话):) 别担心,我没有看到它只是一个几个字母,不是全部:)

标签: php


【解决方案1】:

您可以使用 strip_tags 内置 php 函数从字符串中去除 HTML 和 PHP 标记。我使用您的homographit 函数对下面的代码进行了测试:

$x = '<span>\u0391</span><b>\u0392</b>';
$x = strip_tags($x);
var_dump(homographit($x));die();

//will print
//string(4) "ΑΒ"

$x = '<span>\u0391</span><b>\u0392</b>';
var_dump(homographit($x));die();

//will print
//string(32) "<ѕρаn>Α</ѕρаn><Ь>Β</Ь>"

希望这可以解决您的问题。

编辑 我找到了这个

$x = '<span>\u0455\u0391</span><b>\u0392</b>';
$convertedString = json_decode('"' . $x . '"');
var_dump($convertedString);

// will print
// string(26) "<span>ѕΑ</span><b>Β</b>"

试试这个

【讨论】:

  • 谢谢你 w-i-mm-n ;我已经测试了 strip_tags 和 echo homographit($html) .i wnat 以更改 html 中的文本而不影响例如
  • 哦,所以你想像 AB 这样输出,如果你只是将所有的 html 字符串传递给你的函数,那么它会输出像那样。我只是编辑上面的示例。
  • 查找这个标签:它受到了影响,它被我的功能改变了也这个:span中的p更改为希腊字符
  • 我只是编辑我的答案,html标签是不触摸的,只用json_decode转换\uxxxx,没有使用homographit函数。是你要找的吗?
【解决方案2】:

我已经解决了我的问题

preg_replace_callback()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    相关资源
    最近更新 更多