Macでプログラミング{ ..
[2ch|▼Menu]
49:46
06/11/12 01:29:16 qIdSpFu10
>>48
値の読み出し自体はアクセス権とか関係なく$value = exec('defaults read〜');で問題なかった
んだけど、読み込んだ値がエスケープされてて困るという話ですた(´・ω・`) 。
エスケープは2パターンあって、\uxxxx(16進4桁・UTF-16BE)と\xxx(8進3桁)、それと「\」
自身もエスケープされて「\\」になってるので、合計3回正規表現置換で対応できたよ。
参考までにこんな関数。

function GetPreferenceForKey($plist, $key)
{
 $ret = @exec("defaults read $plist $key");
 $ret = preg_replace(
  '/\\\\u([0-9a-fA-F]{4})/e',
  'mb_convert_encoding(pack("H*","$1"),"utf-8","utf-16be")',
  $ret
 );
 $ret = preg_replace(
  '/\\\\([0-7]{3})/e',
  'mb_convert_encoding(pack("n*",octdec($1)),"utf-8","utf-16be")',
  $ret
 );
 $ret = preg_replace('/\\\\\\\\/', '\\', $ret);
 return $ret;
}



次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5096日前に更新/237 KB
担当:undef