Php 在网页中搜索单词并替换它们

Php 在网页中搜索单词并替换它们,php,Php,我正在尝试为我的网站提供翻译服务 用户想要阅读的语言存储在$languageCode中(例如fr) 然后,我在一个数据库中有一个名为translations的表,该数据库有四列: ID-每个翻译的主键 toTranslate-在文档中搜索的文本 parentID-转换的父元素的值(以避免两组具有不同翻译的相同文本之间的混淆) 翻译-将翻译的文本替换为 语言-文本翻译为哪种语言(语言代码,如fr) 我想知道 如何在文档中搜索与toTranslate匹配的文本字符串,以及谁的父元素的id与pa

我正在尝试为我的网站提供翻译服务

用户想要阅读的语言存储在
$languageCode
中(例如
fr

然后,我在一个数据库中有一个名为
translations
的表,该数据库有四列:

  • ID
    -每个翻译的主键

  • toTranslate
    -在文档中搜索的文本

  • parentID
    -转换
    的父元素的值(以避免两组具有不同翻译的相同文本之间的混淆)

  • 翻译
    -将
    翻译的文本替换为

  • 语言
    -文本翻译为哪种语言(语言代码,如fr)

我想知道

  • 如何在文档中搜索与
    toTranslate
    匹配的文本字符串,以及谁的父元素的
    id
    parentID
    匹配

  • 如何用给定的翻译替换该文本

例如:

<h1 id="heading">My website</h1>
<div id="paragraph">
    Welcome to my website!
</div>

关于php函数/方法以及每个模块如何协同工作,请为我指明正确的方向。如果可以,请提供一个例子。

我在这里简化了,但你得到了大意:

<?php

    class mytext {

      private $lang;

      function __construct( $lang ){
        $this->lang = $lang;
      }

      function get( $key ){

        // key can be anything here as long as it is unique
        // you could go with something like "/mywebsite/heading"


        // fetch data from db, with something like this 
        // select text from translationTable where id = $key AND language = $this->lang

        return $dbResult['text'];
      }

    }


    $mytext = new mytext('fr');
    ?>

    <h1 id="heading"><?=$mytext->get('/mywebsite/heading')?></h1>
    <div id="paragraph">
        <?=$mytext->get('/mywebsite/paragraph')?>
    </div>


请看下面的示例。我知道这不是您问题的答案,但是。。。当你自己的网站需要翻译时,有一种更简单的方法:简单地用$mytext->get('home','heading')这样的函数替换需要翻译的文本;然后,只需在创建时在$mytext对象中设置语言即可。让$mytext对象从DB获取文本(大约)如果这是您要查找的内容,我可以更详细地介绍它?@minychillo这听起来很像我要查找的内容,请在回答中用一个示例详细说明
<?php

    class mytext {

      private $lang;

      function __construct( $lang ){
        $this->lang = $lang;
      }

      function get( $key ){

        // key can be anything here as long as it is unique
        // you could go with something like "/mywebsite/heading"


        // fetch data from db, with something like this 
        // select text from translationTable where id = $key AND language = $this->lang

        return $dbResult['text'];
      }

    }


    $mytext = new mytext('fr');
    ?>

    <h1 id="heading"><?=$mytext->get('/mywebsite/heading')?></h1>
    <div id="paragraph">
        <?=$mytext->get('/mywebsite/paragraph')?>
    </div>