投稿者: lllnorikolll, カテゴリ: イベント, tags: PHP
今日はPHP懇親会(http://events.php.gr.jp/events/show/59)に参加してきました!
全員発表ということで、予告していたZend PHP Certification的な何かということで、クイズをしてきました!
資料はこちら→(http://www.slideshare.net/lllnorikolll/zend-php5-certification-presentation)にUPしました。
問題1の方は、$cに入っているのは何でしょう?というもの。
正解はAのNULLなのですが、これ、functionにreturnが書いてないんですね。そんなわけでNULLです。
問題2の方は、一見普通なのですが、「<? ?>」が無いのでPHPとして動きません!というわけでDのこの中に答えはないが正解。
実はみんな飲みながらぐだぐだーっとなったあたりで発表するのを想定していたのですが、私が発表するころはまだお酒一滴も入らない状態だったので、かなり想定外(><)
でも、みなさん楽しんでいただけたようだったので、よかったよかった。
個人的に気になったことは、emacsの師匠であるsuzukiさんのNxhtmlと、connvoi_tyouさんの車庫入れが見事だった。(これは来ていた人にしかわからないネタかもしれないけれど・・・)
そして、会場の片隅では、そろそろSONYαを買いそうなm-takagiさんにα350を手渡し、実際に写真をとってもらうという別イベントが(笑)
近々αユーザがまた一人増えそうな予感です。
7 コメント »
投稿者: lllnorikolll, カテゴリ: メモ箱, tags: PHP
PHPで日付の妥当性チェックをする際に、checkdate関数をよく使うのですが、
マニュアルをよくよく見ると・・・
「年は 1 から 32767 の間となります。 」と。。。
で、気になったわけです。
[テキストボックス]年[テキストボックス]月[テキストボックス]日
という見た目の入力項目で、年のテキストボックスに西暦の下2桁を入れた場合どうなるのか。
試しに「78」と入力してみると、みごと日付は妥当だと判断されるんですね。
で、そのままmysqlでdate型になっているカラムにインサートしちゃうとどうなるかというと。。。
そこは補完が効いて「1978」年で登録されると。
「08」と入力するとDBでは2008年で登録されると。
境目は「69」と「70」のところにあって、
「69」⇒「2069」
「70」⇒「1970」
と補完されました。
この境目については、epoch前とepoch後というWassrメッセージを頂いているのですが、ここでは割愛・・・
結局、年の部分に4桁のチェックは必要だなぁ。と、思った次第です。
あと、テキストボックスの場合は、左側に「西暦」とか表示してあげるとわかりやすいと思いました。
以上、メモ書きでした。
コメントなし »
苦労したのでメモ。
[php]
$Url = ‘http://ほげほげー.com/ほげー/ほげー.php’;
$UserId = ‘ユーザID’;
$Pwd = ‘パスワード’;
$binaryData = @file_get_contents(’ファイル名’, FILE_BINARY);
$arrUrl = parse_url($Url);
$host = $arrUrl["host"];
$path = $arrUrl["path"];
$port = isset($arrUrl["port"]) ? $arrUrl["port"] : 80;
$socket = @stream_socket_client(‘tcp://’ . $host . ‘:’ . $port);
$strHeader = “POST ” . $path . ” HTTP/1.1\r\n” .
“Host: ” . $host . “\r\n” .
“Content-type: application/jpeg\r\n” .
“Authorization: Basic ” . base64_encode($UserId . “:” . $Pwd) . “\r\n” .
“Content-length: ” . $entity->size . “\r\n” .
“\r\n”;
@fwrite($socket, $strHeader . $binaryData . “\r\n”);
while ($buff = @fread($socket)) {
$response .= $buff;
}
@fclose($socket);
[/php]
ちなみにZendFrameworkのライブラリにZend_Httpという便利なものがあります!!!
Zend_Httpなら、下記のように書くだけ!
[php]
require_once ‘Zend/Http/Client.php’;
$Url = ‘http://ほげほげー.com/ほげー/ほげー.php’;
$UserId = ‘ユーザID’;
$Pwd = ‘パスワード’;
$binaryData = @file_get_contents(’ファイル名’, FILE_BINARY);
$client = new Zend_Http_Client();
$client->setUri($Url);
$client->setAuth($UserId, $Pwd, Zend_Http_Client::AUTH_BASIC);
$client->setRawData($binaryData, ‘application/jpeg’)->request(‘POST’);
[/php]
コメントなし »
Vista+xamppで、Gallery2のモジュールのひな形を作るメモだったりします。
[スタート]⇒[コンピュータ]を右クリック⇒[プロパティ]⇒[システムの詳細設定]⇒[続行]でシステムのプロパティ画面が開く。「詳細設定」タブの「環境変数」ボタンを押す。
「システムの環境変数の欄に「Path」という項目があるので、その項目を選択して「編集」ボタンを押す。「変数値」の最後に「;c:\xampp\php」を追記。
で、OKOKで画面を閉じていく。コマンドプロンプトを立ち上げっぱなしの場合は、一度閉じてから開く。
実行したいPHPファイルのあるディレクトリに移動して、「php ファイル名.php」で実行できる。
が!!!だ、Gallery2のモジュールのひな形を作成するcreate-module.phpをこの方法で実行すると、下記のメッセージが出る。
[code]
C:\xampp\htdocs\gallery2\lib\tools\creator>php create-module.php
You must run this from the gallery2 directory
[/code]
しかたないので、C:\xampp\htdocs\gallery2まで移動してから実行したらうまくいった!
[code]
C:\xampp\htdocs\gallery2>php lib\tools\creator\create-module.php
What is the name of your module? [Hello World] (ここはモジュール名ほげほげー)
What is the id of your module? [wifigadgets] (ここはモジュールIDほげほげー)
* * * * * * * * * * * * * * * * * * * * * * * * * *
Your module is ready! You must build it by doing:
cd modules/(ここはモジュールIDほげほげー)/classes
make && make clean
Then you can go to the Site Admin -> Modules
page and install and activate your module!
* * * * * * * * * * * * * * * * * * * * * * * * * *
[/code]
コメントなし »
ZendFrameworkのZend_Pdf(http://framework.zend.com/manual/ja/zend.pdf.html)
を、試してみました。
ところが、日本語が表示されない。
こちらのサイト→(Zend_Pdf で日本語が使えるようになってた)
を教えてもらって、ここに書いているようにフォントファイルをダウンロードして配置したら、ちゃんと日本語が使えました!
2008/08/05現在、ZendFrameworkのZend_Pdfで利用できるデフォルトのフォント指定は、下記のもののみでした。
[php]
const FONT_COURIER = ‘Courier’;
const FONT_COURIER_BOLD = ‘Courier-Bold’;
const FONT_COURIER_OBLIQUE = ‘Courier-Oblique’;
const FONT_COURIER_ITALIC = ‘Courier-Oblique’;
const FONT_COURIER_BOLD_OBLIQUE = ‘Courier-BoldOblique’;
const FONT_COURIER_BOLD_ITALIC = ‘Courier-BoldOblique’;
const FONT_HELVETICA = ‘Helvetica’;
const FONT_HELVETICA_BOLD = ‘Helvetica-Bold’;
const FONT_HELVETICA_OBLIQUE = ‘Helvetica-Oblique’;
const FONT_HELVETICA_ITALIC = ‘Helvetica-Oblique’;
const FONT_HELVETICA_BOLD_OBLIQUE = ‘Helvetica-BoldOblique’;
const FONT_HELVETICA_BOLD_ITALIC = ‘Helvetica-BoldOblique’;
const FONT_SYMBOL = ‘Symbol’;
const FONT_TIMES_ROMAN = ‘Times-Roman’;
const FONT_TIMES = ‘Times-Roman’;
const FONT_TIMES_BOLD = ‘Times-Bold’;
const FONT_TIMES_ITALIC = ‘Times-Italic’;
const FONT_TIMES_BOLD_ITALIC = ‘Times-BoldItalic’;
const FONT_ZAPFDINGBATS = ‘ZapfDingbats’;
[/php]
コメントなし »