「パーミッション」を含む日記 RSS

はてなキーワード: パーミッションとは

2011-08-15

カッパからロリポップの以降がいい加減すぎる

カッパ終了につき11日よりロリポップサーバーデータの以降がなされました

本日自分データも移行されたんだけど

パーミッションがむちゃくちゃになっているので全ファイルをチェックしなくてはいけない

萎えました・・・当分放置だなぁこれ

2009-10-30

入札で5ポイント企画/7ヶ月以上ランキング1位のホタルイカが1円~300個(とれたて通信)

 先日は

 「○天グリーティングメールパーミッション

 へご応募いただき、ありがとうございました!


応募なんかしてねっつーの!!

配信停止しても定期的に○天のどこからかメールがくるのは勘弁して欲しい。

2009-10-28

Windows 7インストロールしたけど、何か質問ある?

タイトルナンですが、あえて増田でやってみます。

レポートは、Vistaパスして、XPから乗り換えを検討している、

初心者以上、中級者未満のユーザーを対象にしています。

レポートに見せかけた、ただの雑記です。

ぶっちゃけRC版の時点で書ける内容です。まあせっかく発売したんで。


=====


目次

まえおき

結論

XPから7へアップデートする際の注意点(重要かも)

困ったこと

ソフトの動作状況





まえおき

当方環境、状況、遍歴:

Windows 7 32bit Ultimate版です。RC版の使用経験はありません。

今回はXP→7への移行です。

ここしばらくのOS遍歴

Vista 32bit(絶望)(1年)→XP 64bit(絶望)(1年)→XP 32bit(2ヶ月)→7 32bit(今)(2日)

PCスペックは、Pen4D 820、Radeon X1950、メモリ2GBです。

CPUが未対応で、XPモードは動かず。というわけでXPmodeのレポートはありません。

(この時点でこのレポートは8割の意義を失った!)



結論(私感)

いい感じです。

すんげえ微妙スペックに入れましたが、パフォーマンス的には問題ありませんでした。

体感でもXPより快適なくらいです。

UI(ユーザーインターフェース)の操作感はVistaから見ても、格段に進歩していると感じました。

特にタスク切り替えは非常に優秀。

見た目KDE+操作感はUbuntuNautilusMacFinderって感じでしょうか。

Winオンリーユーザよりも、そっち系ユーザへのアピールが強いかな?という印象。



新規購入の場合ははProfessional以上がいいんじゃないかと思います。

XPmodeの対応なんかもありますが、イザって時の問題解決の手段がHome版だと足りない OR 面倒な事が多いので。


(大事なこと) ソフトドライバインストールする前に、必ず手動で復元ポイントを作ったほうがいいです。マジで


今このPCが動かなくなると困るなーって時はOSアップグレードをしちゃ駄目です(7に限った事じゃないけど)

かといって、デュアルブートはあんまりホイホイやるもんじゃないです。

簡単にできるよーってレポートも多いですが、よほど慣れているならともかく

後でいろいろと面倒になるのがデュアルブートMBRいじりってもんですので。

(昔ほど致命傷にはなりにくいですが)



XPから7へ移行する際の注意点(重要かも)

アップグレード版でもXP環境を7に持ち越すことは、ほとんどできません(Vistaは問題なくいけるとのこと)

ファイルは保持できますが、どのみちクリーンインストールすることになります。

(Cドライブwindows.oldというフォルダが作成され、旧環境ユーザーフォルダやProgram Files等が格納されます)



私の場合、一度、XP上から7をインストールしました。

しかし、その後の動作が不安定だったので、再度CDbootからクリーンインストール

どっちでもインストーラの動作は同じはずなのですが、なぜかそれで問題は解決しました。

というわけで、不安な人はフォーマットしたCドライブインストールした方が良いかもしれません。



ハードディスクファイルフォルダを残しておくと、前環境アクセス権等も一部継承されることがあります。

(NTFSの場合のみ。SSD等の理由でFATフォーマットしてる方は関係ないです)

そのため、ファイルフォルダが読めなくなったり、消せなくなることがあります。

自信のない人は 絶対に Cドライブフォーマットしてからインストールした方がいいです。

改善方法などは↓この辺を参考に

http://builder.japan.zdnet.com/sp/windows-7/story/0,3800092267,20394364,00.htm



それでも駄目な場合は

ファイルプロパティを開いて所有者やアクセス権を確認、変更したりすると直ることもあるのですが、

これってHome版でもできるのでしょうか…。報告くださる方、よろしくお願いします。



(ちなみに裏技としては、FATフォーマットHDDなりUSBストレージなりを用意して、

1-CD LinuxからPCを起動。読めなくなったファイルを前述の外部ストレージ待避……

とかするとファイル読み出せたりすることもありますが、普通はこんなアホなことはしません。

ただまあ、パーミッションとかが分からない場合は、むしろ簡単かも)



他でこの手のパーミッション関係に引っかかってるって人の話きかないから家だけなのかなあ?



困っていること

Radeonアスペクト比固定拡大機能が使えなくなりました。

同様の現象を改善された方もいらっしゃるようですが

当方環境ではどうにもなりませんでした。



ソフトの動作状況

Vistaからの移行の場合は気にしなくても問題ないのですが、

XPまでサポートのパーソナルファイアーウォール系のソフトは、ほぼ全滅です。

インストールできてもシステムに悪影響を及ぼす場合もあります。

動作報告があってもインストールの際には十分注意してください。

フリーならComodoあたりをおすすめしておきますが、これがベストってわけではないです。

エクスプローラ干渉系のソフトもいろいろ問題抱えてますので注意。

ぴたすちおとかZLToolsとかGmoteとか諸々のフリーソフトとか…

一部機能を切ったり設定変えたりすれば動くこともありますが、問題が起きたときに

どのソフトのせいなのか分かりにくくなるので、古いソフトとは決別する覚悟も必要です。

Aero切ってまで古い常駐ソフトを使いたい場合はXPに帰ることをお勧めします。



動作を確認したソフト

一太郎+Atok 2009

Sandboxie 3.40(3.38で支障がでました、3.40でもフルスクリーン化に問題が残ってます)

MagicDisc(Daemon Tools、Alcoholは未対応だそうです)

StExbar(無いと不便なんで助かりました)

FullScreenWin(7でも動きました)

Avast

2009-05-04

xrea PHPセーフモード エラー 解決方法

今日1時間30分もxreaPHPセーフモード エラーで苦しみました。。。

同じような人が出ないように、取り合えず情報共有しておきますー。

【問題】

phptouch()関数自動的にphpファイルを生成していましたが、

アクセスしてみると、SafeModeエラーが表示されて閲覧出来ません。

これは自動的に生成されたファイルであり、所有者権限が違うため見れないっぽいらしい。

オーナー権限や、パーミッション変更の関数を使ってもこればかりはムリらしいです。


【解決方法】

なので、自動生成したphpがあるディレクトリに下記の.htaccessを設置したらokでした。

.htaccess

AddHandler application/x-httpd-phpcgi .php

パーミッションは604

上記でも出来ない場合は、自動生成しているphpパーミッションなどを変更しているかもしれませんー。


ああー、今回もxreaではまった・・・・。

PHP初めて2日目でいきなりつまづいたのはモチベーション下がった^^;

2009-01-22

高学歴がんばり屋はWEBクリエーターになろうとすんな

http://takahashifumiki.com/others/480/

WEBクリエーターって無能なスイーツ(笑)でも

まぁまぁまともな生活ができる楽園なんだからさー。



アンタのような頑張り屋さんで能力が高い人が

わんさか来ちゃうと、居場所なくなってしまうでしょ。



しーえすえすないと見ればわかるでしょ?

俺らがスイーツ(笑)だって。


HTML/xHTML

俺達WEBクリエーターメインとなる道具。

これを知らなきゃ始まらない。

当然一度くらい仕様書読んでるよね?



「・・・」



CSSはっく

クソプログラマがわけわかんねぇ実装するから

俺たちはこんな苦労してんだ。

あー忙しい忙しい。



うんそうだね。でもあと5年もすれば

そんな知識ほとんど必要なくなるけど

ほかに何ができんの?



「・・・」



WEBデザイン

やっぱ俺たちが作ったサイトキレイでオシャレだよな。

見てみろよこのきらきら感。



どのサイトきらきらしてて

同じようなレイアウトで違いがわからないんだけど?

ってかこんな海外サイトあっあよね?



「いろいろサイト見て参考にしてるんで・・・」



まぁ0->1を生み出せる人間なんてほとんどいないわけだから

君たちは1を1.1にしてくれればいいよ。



じゃあ1日100サイトくらいは見て研究してるんだよね?



「・・・」



・・・じゃあなんでこの位置にこのボタン置いたの?



「・・・なんとなく」



wwwwww



なんとなくって何だよwww

クリエーター自分の作ったもの説明できなくてどうすんだよwww

見た目だけパクってんじゃねーよ。


デザイン

俺達Photoshop使い。この合成まじ芸術



結構絵を描いてきてるんだよね?勉強してるんだよね?

この画像パース狂ってるし光源がわけわからなくて気持ち悪いけど?



「・・・」



アナログできねーやつが

Photoshop使ってもたかがしれてんだよwww



色についてちゃんと勉強したの?

なんで病院サイトで背景黒なの?死ぬの?



「イキル。なんかクールじゃないですか??」



色の本は1冊くらい読もうよ。


ユーザビリティ

やっぱサイトユーザビリティ考えて作らないと嘘でしょ。



うんうん重要だね。

で、ヤコブニールセンは当然読んでるんだよね?



「・・・」



アクセシビリティ

やっぱ俺達クリエーターがつくったクールサイト

多くの人に見てもらいたいんすよ。



うんうん。そうだね。

で、ガイドラインは当然読んでるんだよね?



「・・・」



Flash

やっぱFlashインパクツあるよな。

マジ引き込まれるわ。映画のようなサイトだよな。



おぉさすがクリエーター。センスあるね。

ところでさっき言ってたユーザビリティ

アクセシビリティとか考えているんだよね?



「・・・あぁまぁ一応」



で、どこクリックすればいいの?



「・・・」


データベース

半端な知識で設計されても後々困るからやんなくていいよ。



.htaccess

100ページもmetaタグ転送設定すんのかよ。

無茶な要求しやがって。こういうわけわかんねぇ

依頼が来るから俺達WEBクリエターは大変なんだよ。



.htaccessディレクトリ以下転送すれば?



「・・・?」



別に.confには触れなくていいから、

.htaccessくらいは設定できるようになろうよ。

君らの大切な作品置く場所をコントロールできるんだよ?

興味ないの?死ぬの?



「イキル。でも興味はありません。」



パーミッション/所有者

内容が同じファイルUPしたのに動かない・・・



パーミッションが違うよ。

よく使うFFFTPに項目あるじゃん

どういう意味か調べないの?興味ないの?死ぬの?



「イキル。でも興味はありません。」


Perl/PHP/Ruby/Python

フォームなんていろいろあるから

適当に選んでUPするだけでだろ。簡単簡単。



え?確認画面がほしい?


「無理です。」


別にアプリケーション作れとは言わないけどさ

単なる問い合わせメールフォームくらいつくれない?



サイトにフォームは必須じゃんwww

サーバサイド言語を1つくらいは勉強しとけよと。



簡単なカスタマイズもできないようじゃ

顧客の要求にこたえられないだろ。



ajax

やっぱ今はAjaxだよね。スクロールしてもサイドバーがついてくるんだぜ!!

なにこの使いやすいサイト。俺達天才



ライブラリ読み込んでるだけじゃね?

しかもDOMってるだけだよ。



アプリケーション作れなんて言わないから

コアとDOMくらいは勉強しておくべきじゃね?



大切な道具であるHTMLコントロールできるんだよ?

君らクリエーターならこのナビゲーション

俺ならこうするって思うことないの?



「・・・ライブラリで充分です。」


正規表現

またバカなクライアントから修正きたよ。

まぁ俺がサービス名間違ってたんだけど。



確認しないの?



クリエーターだし誤字脱字の確認は俺の仕事じゃないっす。」



ふーん。ちなみにIE6でレイアウト崩れてるけど?



「・・・」



で、なんでその誤字の修正に3時間もかかってんの?



「だって100ファイルもあるんですよ?俺じゃなきゃ1日あっても終わらねっす。」



君らが大好きなDreamweaverで多少正規表現使えなかったっけ?

1分で終わるよ。自分使うツールの機能に興味ないの?

忙しい忙しいって無能なだけでしょ?



「興味ないです。CSSダイアログで設定する機能くらいしか使わないです。」



CSSすら覚えてねーのかよwww

正規表現完璧に使えなくていいから

サルでもわかる正規表現くらい読んだら?


WEBクリエーターって仕事

これまでのようにやっぱり自分が満足できる

クールサイトを作って行きたいですね。



うんうん自分が納得できるものを作るのは大事なことだね。



でも君の制作したサイト商品何も売れてないよ?

サイト見てるユーザが全然満足してないんじゃない?オナニーなの?



「・・・でもクライアントはきっと満足してますよ。俺のオナニーすごいし。」



クライアントクールサイトじゃなくて

売れるサイトが欲しいんだよ。



クソみたいな商品を扱ってるサイトでも

なんとか売るのがてめぇらの仕事だろが。


俺たちWEBクリエーター。オシャレな奴とはだいたい友達

思い知ったかい?俺たちWEBクリエータークオリティを。



俺たちWEBクリエーターはさ、一流の本物デザイナー様とか

一流プログラマ様が作ってくださった物をまったく理解しようともしないで

いじくってるバックボーンなきスイーツ(笑)なんだからさレベル高い奴はくんな。



こんな程度のスキルで4、500万は稼げちゃって

やっすいキャバでもオークションのやり方教えてとかブログのやり方教えて、

とか言われてお家行ってにゃんにゃんできちゃうわけだから出たくねーよこんな楽園。



しかもこんな能力じゃ楽園でたらどこも行くとこないよ。



もし追い出されたら元WEBクリエーター村でも作って



なんで努力してる人がいい環境

努力してない俺らが明日食べるのに困るんですか?



努力しないでそこそこの金がもらえて

おしゃれって思われる仕事を用意するのが政治だろって訴えますよマジで



だから高学歴がんばり屋の優秀な人間はくんな。



でもねぇあと10年もすればデザインとかコーディングなんかも

海外に出されて、ライターだったりアイデア出せる人間しか

残らないだろうけどなwww



オワタwww

2008-04-24

泣きたいです。

僕は新米webクリエーターです。

htmlcssは、ハックとか覚えて使えるようになってきたレベルです。渡されたデザイン画をみて、すぐにココはどういうコードか思いつくくらいのレベルです。

php学校で少し習いました。メール送信プログラムとかは、なんとか自作出来るレベルです。でもソの後に¥マークが出るアレを処理していません。確かやり方はアレだとは思うんですが、趣味のほうで使っているのでまだ修正していません。

jsはほぼ分かりません。画像切り替えくらいなら学校で習いましたが、ロールオーバーボタンならフラッシュにしてしまいたいくらいです。フラッシュボタンなら作れます。css画像切り替えでもいいですね。

cgiはさっぱりです。レイアウトに関する変更をするぐらいなら、なんとか解読出来るかもしれないレベルです。

サーバー関係はさっぱりです。特にphpってあんまりパーミッション変更とかって無いらしいので、パーミッション変更とか、よく分かりません。そういえばphpバージョンもよく分かりません。バージョンによって動かないプログラムもあるらしいですね。


cgiが動かないから検証しろ、っていきなり言われても、よく分かりません。

cgiの改行コードが間違っていてパーミッションも何故か644に戻ってました。

でもそんなの、理由も分からないし、どのファイルが必要かとか、何時何をしたら改行コードが変わってしまうのかとか、分からないことだらけです。

新卒だから何でも吸収して欲しい、って言ってくれるのは正直嬉しいです。勉強して覚えたいです。

でもいきなり仕事でやらされても困ります。

確かに今までのcgiとかはなんとか解読して修正とかしてきました。

でも今回の仕事は、分からない僕じゃなくて、分かる誰かがやるべき仕事だと思うんです。

きっと相手は苛々してるでしょう。なんでこういう間違いが起こるのかと。

2007-11-08

60行テンプレートエンジンがパワーアップしてレイアウト機能に対応

前の60行テンプレートエンジンを改良して、レイアウトテンプレート機能を追加してみた(それでも全部で90行)。


レイアウトテンプレート機能とは、例えば個別のテンプレートが<table>...</table>を出力して、それをレイアウトテンプレートが<html><body>...</body></html>で囲って出力するとかそんなの。

詳しくは終わりの方のサンプルをみてくれ。


これは Ruby on Rails(とその仲間たち)にある便利機能のひとつ。

ついでにいうとSmartyにはない機能のひとつ。

今まで知らなかった人はぜひ試してくれ。チョー便利だから。


前回はたくさんのブックマークありがと。

コメントで「男前テンプレート」と名前がついてたので、勝手採用

名前がキモいっていわれるよ?でもそんなのカンケイネー


あと、これ以上の機能追加はしないので、各自勝手に改造して使ってくれ(そのためにコメントをつけてるから)。何でも人任せにするな。


コード

<?php
/*
 *  OtokomaeTemplate.php -- レイアウトテンプレートに対応した90行のテンプレートエンジン
 *
 *  - レイアウトテンプレート中で echo $_content; とすると中身が表示される。
 *  - テンプレート中で設定した変数レイアウトテンプレートで使うことが可能。
 *  - レイアウトテンプレート名をテンプレート側で指定することも可能。
 *  - 使い方:
 *      require_once('OtokomaeTemplate.php');
 *      $TEMPLATE_DIR    = 'templates';  // 省略可、パーミッションに注意
 *      $LAYOUT_TEMPLATE = 'layout.php'; // 省略可
 *      $context = array('title'=>'Example',
 *                       'list'=>array(10,'<A&amp;B>',NULL));
 *      include_template('template.php', $context);
 *  - 要 PHP 5.1 or later
 *  - ライセンス: public domain (自由に改造してね)
 */

/*
 *  設定用のグローバル変数
 */
$TEMPLATE_DIR    = NULL;   /* テンプレートを探すディレクトリ */
$LAYOUT_TEMPLATE = NULL;   /* レイアウトテンプレートファイル名 */

/*
 *  テンプレートを読み込んで実行する。
 *  $_context は変数名をキー、値を要素とする連想配列。
 *  $_layout はレイアウトテンプレートファイル名。
 *  - NULL または省略した場合は $LAYOUT_TEMPLATE を使う。
 *  - FALSE ならレイアウトテンプレートを使わない。
 *  - $_context['_layout'] = '...'; とすればテンプレート側でも指定可能。
 */
function include_template($_filename, $_context, $_layout=NULL) {
    global $LAYOUT_TEMPLATE;
    $_content = render_template($_filename, $_context);
    if (@$_context['_layout'] !== NULL)   // テンプレート側で指定された場合は
        $_layout = $_context['_layout'];  // それを使う。
    elseif ($_layout === NULL)            // 引数で指定されなかった場合は
        $_layout = $LAYOUT_TEMPLATE;      // デフォルトファイル名を使う。
    if ($_layout) {
        $_context['_content'] = $_content;  // レイアウトテンプレート中で使う変数
        $_content = render_template($_layout, $_context);
    }
    echo $_content;   // or return $_content;
}

/*
 *  テンプレートを読み込んで実行し、その結果を文字列で返す。
 *  include_template() の実体。
 */
function render_template($_filename, &amp;$_context) {
    $_cachename = convert_template($_filename);
    extract($_context);     // 連想配列ローカル変数に展開
    ob_start();
    include($_cachename);   // テンプレートを読み込んで実行
    return ob_get_clean();
}

/*
 *  テンプレートファイルを読み込み、convert_string() で置換してから
 *  キャッシュファイルに書き込む。読み込み時のロックは省略。
 *  (file_get_contents() もファイルロックできるようにしてほしいなあ。)
 */
function convert_template($filename) {
    global $TEMPLATE_DIR;
    if (! file_exists($filename) &amp;&amp; $TEMPLATE_DIR)
        $filename = "$TEMPLATE_DIR/$filename";
    $cachename = $filename . '.cache';
    if (! file_exists($cachename) || filemtime($cachename) < filemtime($filename)) {
        $s = file_get_contents($filename);
        $s = convert_string($s);
        file_put_contents($cachename, $s, LOCK_EX); // LOCK_EX サポートは 5.1.0 から
    }
    return $cachename;
}

/*
 *  テンプレートの中身を置換する。
 *  - '#{...}' を 'echo ...;' に置換
 *  - '%{...}' を 'echo htmlspecialchars(...);' に置換
 *  - ついでにXML宣言も置換
 */
function convert_string($s) {
    $s = preg_replace('/^<\?xml/', '<<?php ?>?xml', $s);
    $s = preg_replace('/#\{(.*?)\}/', '<?php echo $1; ?>', $s);
    $s = preg_replace('/%\{(.*?)\}/', '<?php echo htmlspecialchars($1); ?>', $s);
    return $s;
}
?>

サンプルPHPコード:

<?php
require_once('OtokomaeTemplate.php');
$TEMPLATE_DIR    = 'templates';
$LAYOUT_TEMPLATE = 'layout.php';
$context = array('list'=>array(10,'<A&amp;B>',NULL));
include_template('template.php', $context);
?>

レイアウトテンプレート(layout.php):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <body>
    <h1>%{$title}</h1>
    <div id="maincontent">
<!-- テンプレートの内容 -->
<?php echo $_content; ?>
<!-- /テンプレートの内容 -->
    </div>
  </body>
</html>

テンプレート(template.php):

<?php // レイアウトテンプレート名をテンプレート中で指定する場合 ?>
<?php //$_context['_layout'] = 'mylayout.php'; ?>
<?php // レイアウトで使用する変数テンプレート中で指定する場合 ?>
<?php $_context['title'] = 'レイアウトのサンプル'; ?>
<table>
<?php foreach ($list as $i=>$item): ?>
  <tr bgcolor="#{$i % 2 ? '#FFCCCC' : '#CCCCFF'}">
    <td&gt;#{$i}</td&gt;
    <td&gt;%{$item}</td&gt;
  </tr>
<?php endforeach ?>
</table>

出力例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <body>
    <h1>レイアウトのサンプル</h1>
    <div id="maincontent">
<!-- テンプレートの内容 -->
<table>
  <tr bgcolor="#CCCCFF">
    <td&gt;0</td&gt;
    <td&gt;10</td&gt;
  </tr>
  <tr bgcolor="#FFCCCC">
    <td&gt;1</td&gt;
    <td&gt;&lt;A&amp;B&gt;</td&gt;
  </tr>
  <tr bgcolor="#CCCCFF">
    <td&gt;2</td&gt;
    <td&gt;</td&gt;
  </tr>
</table>
<!-- /テンプレートの内容 -->
    </div>
  </body>
</html>

いくつか補足:

2007-10-30

60行で作るPHPテンプレートエンジン

唐突に、PHP用のテンプレートエンジンを作ってみる。

方針:

  • ふつうのPHPファイルテンプレートとして使う。
  • <?php echo $var; ?> は面倒なので #{$var} と書けるようにする。
  • <?php echo htmlspecialchars($var); ?> はもっと面倒なので %{$var} と書けるようにする。
  • ついでにXML宣言も <<?php ?>?xml ... に自動置換する。

【追記】レイアウト機能を追加してみた


コード

<?php
/*
 *  SixtyLinesTemplate.php - 60行しかないけどSmartyより速いテンプレートエンジン
 *
 *  使い方:
 *     require_once('SixtyLinesTemplate.php');
 *     $TEMPLATE_DIR = 'templates'; // 省略可、パーミッションに注意
 *     $context = array('title'=>'Example',
 *                      'list'=>array(10,'<A&amp;B>',NULL));
 *     include_template('template.php', $context);
 *
 *  ライセンス: public domain (自由に改造してね)
 */

/*
 *  テンプレートを探すディレクトリ。
 */
$TEMPLATE_DIR = NULL;

/*
 *  テンプレートを読み込んで実行する。
 *  $_context は変数名をキー、値を要素とする連想配列。
 */
function include_template($_filename, $_context) {
    $_cachename = convert_template($_filename);
    extract($_context);
    include($_cachename);
}

/*
 *  filename を読み込み、convert_string() で置換してから
 *  filename.cache に書き込む。読み書きのロックは省略。
 *  (file_{get,put}_contents() はファイルロックできるようにすべきだ。)
 */
function convert_template($filename) {
    global $TEMPLATE_DIR;
    if (! file_exists($filename) &amp;&amp; $TEMPLATE_DIR)
        $filename = "$TEMPLATE_DIR/$filename";
    $cachename = $filename . '.cache';
    if (! file_exists($cachename) || filemtime($cachename) < filemtime($filename)) {
        $s = file_get_contents($filename);
        $s = convert_string($s);
        file_put_contents($cachename, $s);
    }
    return $cachename;
}

/*
 *  テンプレートの中身を置換する。
 *  - '#{...}' を 'echo ...;' に置換
 *  - '%{...}' を 'echo htmlspecialchars(...);' に置換
 *  - ついでにXML宣言も置換
 */
function convert_string($s) {
    $s = preg_replace('/^<\?xml/', '<<?php ?>?xml', $s);
    $s = preg_replace('/#\{(.*?)\}/', '<?php echo $1; ?>', $s);
    $s = preg_replace('/%\{(.*?)\}/', '<?php echo htmlspecialchars($1); ?>', $s);
    return $s;
}
?>

サンプルPHPコード

<?php
require_once('SixtyLinesTemplate.php');
$TEMPLATE_DIR = 'templates'; // optional
$context = array('title'=>'Example', 'list'=>array(10,'<A&amp;B>',NULL));
include_template('template.php', $context);
?>

サンプルテンプレート

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>%{$title}</title>
  </head>
  <body>
    <h1>%{$title}</h1>
    <table>
<?php foreach ($list as $i=>$item): ?>
      <tr bgcolor="#{$i % 2 ? '#FFCCCC' : '#CCCCFF'}">
        <td>#{$i}</td>
        <td>%{$item}</td>
      </tr>
<?php endforeach ?>
    </table>
  </body>
</html>

出力例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Example</title>
  </head>
  <body>
    <h1>Example</h1>
    <table>
      <tr bgcolor="#CCCCFF">
        <td>0</td>
        <td>10</td>
      </tr>
      <tr bgcolor="#FFCCCC">
        <td>1</td>
        <td>&lt;A&amp;B&gt;</td>
      </tr>
      <tr bgcolor="#CCCCFF">
        <td>2</td>
        <td></td>
      </tr>
    </table>
  </body>
</html>

2007-08-12

http://anond.hatelabo.jp/20070812152245

SEってすぐ開発システムの権限(パーミッション)とかにこだわるけど

あれってSEが忌み嫌ってる行政の権限分配と本質的に同じで

SEは要は自分が支配できる小さな世界で官僚と同じことが

したいだけなんだと、その弁護士にグサリと言われたよ。

- 転職ならen
- 派遣ならen
 
1ページ中1ページ目を表示(合計:11件)