2017-12-23 7 views
0

まず、私の貧弱な英語のために申し訳ありません:)このスクリプトに関する質問があります。私はこのスクリプトを古いフレームワークに見つけました。私は友達のために使っていますが、このスクリプトをフレームワークなしでは動作させることはできません。その一つのファイルを編集することは彼のために最善であるスクリプトは私のxmlを文字列で使用していません

string.php

<?php 
class StringResource{ 
    private $string = array(); 
    public function StringResource($path){ 
     global $lang; 
     if($lang == null){ 
      $file = $path . 'strings.xml'; 
      if(file_exists($file)) 
       $xml = simplexml_load_file($file); 
     }else{ 
      $file = $path . 'strings_'.$lang.'.xml'; 
      if(file_exists($file)){ 
       $xml = simplexml_load_file($file); 
      }else{ 
       $file = $path . 'strings.xml'; 
       if(file_exists($file)) 
        $xml = simplexml_load_file($file); 
      } 
     } 

     if($xml){ 
      foreach($xml->children() as $child) { 
       if($child->getName() == 'string'){ 
        $attribute = $child->attributes(); 
        $key = (String) $attribute['name']; 
        $this->string[$key] = (String) $child; 
       } 
      } 
     } 
    } 

    public function Get($key){ 
     return $this->string[$key]; 
    } 
} 

は、私はgettextをなどを使用することができます知っているが、私の友人の知識は非常に低いです。

ここのstrings.xml 私のXMLのサンプル

 <?xml version="1.0" encoding="utf-8"?> 
     <strings> 
      <string name="menu1">Menu 1 name</string> 
      <string name="menu2">menu 2 name</string> 
      .... 

と私はそれらを使用したいとき、私は{{ST:メニュー1}}を使うので、私は、エコーに対処する必要はありません。 このスクリプトが正しく機能するには何が欠けていますか?置き換えるのと同じようにキーの機能を取得していますか? XMLデータは/path/to/directory/strings.xmlにある場合

$sr = new StringResource("/path/to/directory/"); 

答えて

2

あなたが持つオブジェクトを作成します。メソッド名は、PHPでコンストラクタを書く時代遅れの方法であるように、クラスの名前を使用して、ところで

$menu1 = $sr->Get("menu1"); 

その後は、文字列を取得することができます。現代的な方法は、それを__constructと名付けることです。

+0

はい申し訳ありませんが、オブジェクトは既に別のファイルに作成されています。 問題は私のPHPと私のHTMLを分離するので、私はtplファイルでPHPコードを使うことができません。 –

+0

'.tpl'ファイルに関する質問には何もありません。私はそれが何であるかわからない、私はそれがテンプレートフレームワークのようなものだと思いますか?フレームワークを使用している場合、それらの詳細を質問に含めてタグを追加すると、それを知っている人に質問が表示されます。 – Barmar

+0

tplはhtmlに似ていますが、PHPコードはありません。 フレームワークについて私はすべてのコメントが削除されたので、何のアイデアもありません。私はcodecanyon上でそのスクリプトを購入し、著者は古いフレームワークを使用し、フレームワークからすべてのコメントを削除するために使用しました。 –

関連する問題