Archive for 2007年9月

phpDocumentor

9月 8th, 2007

phpドキュメントファイルを自動生成するphpDocumentorを試す。

まずhttp://phpdoc.org/http://phpdoc.org/からダウンロード

解凍したファイルをアップロード後URLにアクセスするとWebInterfaceが表示される。
ここで作成すれば簡単なのだが・・

問題点1
 自動生成されたファイルで****.php.htmlというのがありサーバーはphpだと思ってsyntaxエラーを返す。

問題点2
自動生成されたファイルのパーミッションがroot権限になってしまうのでFTPで操作きない^^;

どちらもサーバーの設定を変えれば解決すると思うのだが、今度サーバー管理者に聞いてみよう。。

phpDocumentorを使わないにしてもPEARコーディング規約にのっとってコードを書くことにしよう。

php カンマ付き数字を整数化

9月 8th, 2007

fromで、金額入力などユーザーがカンマやドット(, .)をくっつけて入力するときがあるので無効にしてから整数にするメモ。

いろいろやり方はあるだろうけど今はこんなやり方。

$price = intval(str_replace(array('.',','),array('',''),$_POST[price]));

Smarty Splitプラグイン

9月 6th, 2007

前回の
http://smarty.incutio.com/
にある 便利そうな Block Functions SplitとSplit_rowプラグインを試した。

     

  • split – Loop structure similar to foreach that breaks an array into groups as evenly as possible then iterates over those groups. Intended to allow multi column layouts with a minimum of markup in the template code.
  • split_row – A variant of split that returns the chunks as rows instead of as columns

それぞれ block.split.php block.split_row.php ファイルを作りプラグインフォルダに放り込む。
さて、普通ならここで使えるのだが、

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /block.split.php on line 104

こんなエラーが。。

調べてみると、どうやら参照渡しのやり方が非推進の方法でやられてるらしい。
http://php.net/manual/ja/ini.core.php

なんとか使えるように修正しようとしたがよくわからず挫折しました^^;
allow_call_time_pass_referenceの設定を1のまま使えるようにした方がいたら教えて下さい><

Smarty BBcode修飾子

9月 5th, 2007

Smartyの修飾子を使ってBBcodeをHTMLに変換してしまうとってもナイスなプラグイン。

http://smarty.incutio.com/

http://smarty.incutio.com/

こちらのサイトの
Extending Smarty
2.SmartyPlugins にある
Modifiers
3. BBCodePlugin – Converts BBCode style tags to HTML

使い方はとっても簡単
BBcodeで書かれたテキストを

{$hoge|bbcode2html}

と記述するだけおk

私の場合、改行タグも付けたかったので最後をちょっと改造

  );
  $message = nl2br($message);  //改行をに
  $message = preg_replace(array_keys($preg), array_values($preg), $message);
 
  return $message;
}

他にもとても素晴らしいプラグインが多数紹介されているのでSmarty使いには必見のサイトではないでしょうか。

・・・ところで何故bbcode2htmlなんでしょうね?

WordPressプラグイン:WP-Syntaxを入れてみた

9月 5th, 2007

web開発者のブログらしくソースコードに色が付くプラグインを入れてみた。
いろいろ探し回ってWP-Syntax « Extend › Pluginsを入れてみた。

WP-Syntax Extend Plugins

Supported Languages
The following languages are supported in the lang attribute:

abap, actionscript, ada, apache, applescript, asm, asp, autoit, bash, blitzbasic, bnf, c, c_mac, caddcl, cadlisp, cfdg, cfm, cpp-qt, cpp, csharp, css, d, delphi, diff, div, dos, dot, eiffel, fortran, freebasic, genero, gml, groovy, haskell, html4strict, idl, ini, inno, io, java, java5, javascript, latex, lisp, lua, m68k, matlab, mirc, mpasm, mysql, nsis, objc, ocaml-brief, ocaml, oobas, oracle8, pascal, per, perl, php-brief, strong>php, plsql, python, qbasic, rails, reg, robots, ruby, sas, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vb, vbnet, vhdl, visualfoxpro, winbatch, xml, xpp, z80

(Bold languages just highlight the more popular ones.)

スタイルシートを指示通りに入れると現在のテンプレートではデザインが崩れるのでちょこっと改造

.wp_syntax {
  color: #100;
  background-color: #f9f9f9;
  border: 1px solid silver;
  margin: 0 0 1.5em -2px; /*-2pxに変更*/
  overflow: auto;
}/* IE FIX */
.wp_syntax {
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: expression(this.scrollWidth > this.offsetWidth ? 15 : 0);
  width: 100%;
}
.wp_syntax table {
  border-collapse: collapse;
}
.wp_syntax div, .wp_syntax td {
  vertical-align: top;
  padding: 2px 4px;
}
.wp_syntax .line_numbers {
  text-align: right;
  background-color: #def;
  color: gray;
  overflow: visible;
}
/* potential overrides for other styles */
.wp_syntax pre {
  margin: 0;
  padding: 5px; /*なんとなく追加w*/
  width: auto;
  float: none;
  clear: none;
  overflow: visible;
}

過去の投稿もあわせて修正。

2009/10/01 ちょっと修正
tml4stric → html4stric

getパラメーターを自動作成するsmartyプラグイン

9月 4th, 2007

getパラメーターをURLに戻すプラグイン。
追加や変更したいパラメーターをそのままプラグイン変数に追加するだけの簡単設計w


index.php?mode=top&page=main

{url_params hoge="123" hoge2="456"}


mode=top&page=main&hoge=123&hoge2=456

1
2
3
4
5
6
7
8
9
10
11
12
13
function smarty_function_url_params($params,&$o_smarty){
  $params=array_merge($_GET,$params);
  foreach($params as $key=>$value){
    if (is_array($value)){
      foreach($value as $array){
        $prm[]=$key.'[]='.$array;
      }
    }elseif ($value || $value=="0"){
      $prm[]=$key.'='.urlencode($value);
    }
  }
  return @implode('&',$prm);
}

PEAR::Services_Livedoor

9月 4th, 2007

p4lifeさんのPEAR::Services_Livedoor(非公式)パッケージを使ってWeather Hacks – livedoor 天気情報 をphpで取得するメモ

PHP で Livedoor のお天気Webサービスを使う
output5.jpg

とても便利だがPearを複数使うので設置するだけなのに手間取りました^^;

実際の使い心地はAPI側が少し時間かかるので、サイト表示時間がそのぶん重くなった。
なのでページを表示してからajaxでお天気予報ブロックを表示させるようにした。

serialize関数でデータ渡し

9月 4th, 2007

データのやりとりする際によく使われるXMLだけど、実際phpで組むとけっこう大変だったりする。
XMLに書式化して受け取りで分解。
そんなことしなくても、これでいいーじゃん って記事があった。

Yahoo曰く、XMLじゃなくてPHPの変数をそのままシリアライズして返せばいいじゃん
output4.jpg

なるほど、たったこれだけで用は済むわな。
まだ使う出番はないけどいずれ使うかもしれないのでメモ。

ImageCopyResampledとImageCopyResized

9月 3rd, 2007

php GDライブラリ

ImageCopyResampled — 再サンプリングを行いイメージの一部をコピー、伸縮する
ImageCopyResized — 画像の一部をコピーしサイズを変更する

似てるけど結果にかなり差があり。
色化けした場合はこれを疑おう。

超クールな404Errorページ

9月 3rd, 2007

超クールな404エラーページ集

Wanted: Your 404 Error Pages 
404 Error Pages: Reloaded

output1.jpg
output2.jpg
output3.jpg

本来表示されるページではないけどこんなクールに作ったらわざと表示させたくなる?w