我正在努力使#34;方式友好"网站。我们使用不同的偏差取决于性别和其他因素。例如:
You did = robili
It did = robilo
She did = robila
Linguisticaly这是一个非常简化(和不幸)的例子!我想在适当的地方更改php文件中的html文本。例如
<? php
something
?>
html text of the page and somewhere is the word "robil"
<div>we tried to robil^i|o|a^</div>
<? php something ?>
现在我想替换所有出现的不同令牌^ 字符 | 字符 | 字符 ^并用其内部替换它们之一值根据&#34;性别&#34;。
在客户端的javascript中很容易,但你会看到所有这些奇怪的&#34;标记化&#34;在javascript替换它之前。 在这里,我不知道优雅的解决方案。
或者你有更好的主意吗?
感谢您的建议。
答案 0 :(得分:2)
您可以在HTML之前和之后添加这些脚本:
<?php
// start output buffering
ob_start();
?>
<html>
<body>
html text of the page and somewhere is the word "robil"
<div>we tried to robil^i|o|a^, but also vital^si|sa|ste^, borko^mal|mala|malo^ </div>
</body>
</html>
<?php
$use = 1; // indicate which declination to use (0,1 or 2)
// get buffered html
$html = ob_get_contents();
ob_end_clean();
// match anything between '^' than's not a control chr or '^', min 5 and max 20 chrs.
if (preg_match_all('/\^[^[:cntrl:]\^]{3,20}\^/',$html,$matches))
{
// replace all
foreach (array_unique($matches[0]) as $match)
{
$choices = explode('|',trim($match,'^'));
$html = str_replace($match,$choices[$use],$html);
}
}
echo $html;
返回:
页面的html文本和某处是&#34; robil&#34;我们试过 robilo,还有vitalsa,borkomala