【php】part29【php】
■ このスレッドは過去ログ倉庫に格納されています
0017nobodyさん
2005/07/07(木) 21:02:51ID:???下記例では、tempdirに/tmp/test、tempfileに/tmp/test/tmp.txt、が設定される予定なのが、
この2つは何も設定されていません。(nameにはtestが正しく設定されている。)
どうもreplace_val()からの戻り値が呼出側で受取れていないため、その設定を元にした置換ができていないようです。
(replace_val()内部ではtempdirは正しい値が設定されているが、戻ってきた時点で空白になる。
tempfileはtempdirが空白のため内部的にも正しい値は設定されていない。)
いろいろ試したのですが、解決策が見つかりません。ご教授お願い致します。
■設定ファイル(書式:Key value)。 keyに$が付加されている場合はvalueの<>を置換する。
name test
$tempdir /tmp/<name>
$tempfile <tempdir>/temp.txt
■valueの「<>」を再帰的に置換する。<>がなくなると戻る。
protected function replace_val($value){
$st_pos = strpos($value,"<");
$ed_pos = strpos($value,">");
if($st_pos !== FALSE && $ed_pos !== FALSE && $st_pos < $ed_pos && (($v_len = $ed_pos - $st_pos -1) != 0)){
$v = substr($value, $st_pos +1, $v_len);
$front_str = substr($value, 0, $st_pos);
$rear_str = substr($value, $ed_pos +1);
if(isset($this->cfg[$v])){ $value = $front_str. $this->cfg[$v] .$rear_str ; }
else { $value = $front_str. $v .$rear_str ; }
$this->replace_val($value);
} else { return $value; }
}
続く
■ このスレッドは過去ログ倉庫に格納されています