2017-12-23 3 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는 : MENU1}} 그래서 난 반향을 처리 할 필요가 없습니다. 이 스크립트가 제대로 작동하지 않는 이유는 무엇입니까? 바꾸기 같이 중요한 열쇠 기능을 얻는가? XML 데이터가 /path/to/directory/strings.xml에 어디

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

:

답변

2

당신이 가진 개체를 만듭니다. 메소드 이름은 PHP의 생성자를 작성하는 구식 방법으로 클래스의 이름을 사용하여, BTW

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

:

그럼 당신은 문자열을 얻을 수 있습니다. 현대적인 방법은 이름을 __construct으로 바꾸는 것입니다.

+0

예 죄송합니다. 개체가 이미 다른 파일에 생성되었습니다. 문제는 내가 PHP에서 코드를 사용할 수 없기 때문에 내 HTML을 PHP에서 분리 한 것입니다. –

+0

'.tpl' 파일에 관한 질문에는 아무 것도 없습니다. 그게 뭔지 모르겠다. 템플릿 프레임 워크 일까? 프레임 워크를 사용하는 경우 해당 세부 정보를 질문에 포함하고 태그를 추가해야합니다. 그러면 해당 정보를 알고있는 사람들이 질문을 보게됩니다. – Barmar

+0

tpl은 html과 비슷하지만 PHP 코드가없는 PHP 확장 프로그램입니다. 프레임 워크에 대해 나는 모든 의견이 삭제 되었기 때문에 전혀 모른다. 나는 codecanyon에서 스크립트를 구입했으며 저자는 이전 프레임 워크를 사용하여 프레임 워크에서 모든 주석을 제거하는 데 사용했습니다. –

관련 문제