Posts Tagged “PHP”

一時的なネタなのかと思ったら、まだ使えたので記念メモ。

www.php.net で「上上下下左右左右ba(Return)」と押して、画面左上のphpロゴ部分に注目。

Comments コメントなし »

今日は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を手渡し、実際に写真をとってもらうという別イベントが(笑)
近々αユーザがまた一人増えそうな予感です。

Comments 7 コメント »

PHPで日付の妥当性チェックをする際に、checkdate関数をよく使うのですが、
マニュアルをよくよく見ると・・・

「年は 1 から 32767 の間となります。 」と。。。

で、気になったわけです。


[テキストボックス]年[テキストボックス]月[テキストボックス]日

という見た目の入力項目で、年のテキストボックスに西暦の下2桁を入れた場合どうなるのか。
試しに「78」と入力してみると、みごと日付は妥当だと判断されるんですね。

で、そのままmysqlでdate型になっているカラムにインサートしちゃうとどうなるかというと。。。
そこは補完が効いて「1978」年で登録されると。
「08」と入力するとDBでは2008年で登録されると。

境目は「69」と「70」のところにあって、
「69」⇒「2069」
「70」⇒「1970」
と補完されました。

この境目については、epoch前とepoch後というWassrメッセージを頂いているのですが、ここでは割愛・・・

結局、年の部分に4桁のチェックは必要だなぁ。と、思った次第です。
あと、テキストボックスの場合は、左側に「西暦」とか表示してあげるとわかりやすいと思いました。

以上、メモ書きでした。

Comments コメントなし »

苦労したのでメモ。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$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-&gt;size . "\r\n" .
             "\r\n";
@fwrite($socket, $strHeader . $binaryData . "\r\n");
while ($buff = @fread($socket)) {
    $response .= $buff;
}
@fclose($socket);

ちなみにZendFrameworkのライブラリにZend_Httpという便利なものがあります!!!
Zend_Httpなら、下記のように書くだけ!

1
2
3
4
5
6
7
8
9
10
11
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-&gt;setUri($Url);
$client-&gt;setAuth($UserId, $Pwd, Zend_Http_Client::AUTH_BASIC);
$client-&gt;setRawData($binaryData, 'application/jpeg')-&gt;request('POST');

Comments コメントなし »

Vista+xamppで、Gallery2のモジュールのひな形を作るメモだったりします。

[スタート]⇒[コンピュータ]を右クリック⇒[プロパティ]⇒[システムの詳細設定]⇒[続行]でシステムのプロパティ画面が開く。「詳細設定」タブの「環境変数」ボタンを押す。

「システムの環境変数の欄に「Path」という項目があるので、その項目を選択して「編集」ボタンを押す。「変数値」の最後に「;c:\xampp\php」を追記。

で、OKOKで画面を閉じていく。コマンドプロンプトを立ち上げっぱなしの場合は、一度閉じてから開く。

実行したいPHPファイルのあるディレクトリに移動して、「php ファイル名.php」で実行できる。

が!!!だ、Gallery2のモジュールのひな形を作成するcreate-module.phpをこの方法で実行すると、下記のメッセージが出る。

C:\xampp\htdocs\gallery2\lib\tools\creator>php create-module.php
You must run this from the gallery2 directory

しかたないので、C:\xampp\htdocs\gallery2まで移動してから実行したらうまくいった!

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!
* * * * * * * * * * * * * * * * * * * * * * * * * *

Comments コメントなし »

ZendFrameworkのZend_Pdf(http://framework.zend.com/manual/ja/zend.pdf.html

を、試してみました。
ところが、日本語が表示されない。

こちらのサイト→(Zend_Pdf で日本語が使えるようになってた
を教えてもらって、ここに書いているようにフォントファイルをダウンロードして配置したら、ちゃんと日本語が使えました!

2008/08/05現在、ZendFrameworkのZend_Pdfで利用できるデフォルトのフォント指定は、下記のもののみでした。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    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';

Comments コメントなし »