Home > スクリプト系 > PHP・PERL

PHP・PERL Archive

PHPで出力色々

  1. PHPでPhotoshopのPSDファイルを画像に変換してブラウザに出力。
    http://www.catswhocode.com/blog/php-display-adobe-psd-
    files-on-a-web-page

    php_-display-adobe-psd-files-on-a-web-page

  2. PHPからWord、Excel、PowerPointのドキュメントを生成するサンプル
    http://www.whenpenguinsattack.com/2007/07/02/how-to-create-microsoft-office-documents-with-php/

    how-to-create-an-open-book-with-illustratore28099s-3d-extrude-bevel-tool-vectortuts

  3. PHPでExcelファイルを生成できるライブラリPHPExcel
    http://www.codeplex.com/PHPExcel

    phpexcel-openxml-create-excel2007-documents-in-php-spreadsheet-engine-home
    http://journal.mycom.co.jp/articles/2009/03/06/phpexcel/index.html (参考:マイコミジャーナル)
    http://phpspot.org/blog/archives/2009/03/phpexcelphpexce.html (参考:PHP開発日記)

いろんなことができるんだねっ☆

PHPで実装するレコメンドエンジンについての覚書

「この商品を買った人は、こんな商品も買ってます」

アマゾンでお役立ちの、アレ。

レコメンドエンジン機能という。

これは、協調フィルタリングという手法で実現されているらしいです。

協調フィルタリング(Collaborative Filtering, CF)は、多くのユーザの嗜好情報を蓄積し、あるユーザと嗜好の類似した他のユーザの情報を用いて自動的に推論を行う方法論である。趣味の似た人からの意見を参考にするという口コミの原理に例えられることが多い。

なるほど。

で、実は、この機能を簡単に実装できるPHPのライブラリがありました。

VOGOO: http://www.vogoo-api.com/

フリーとプロ版があり、ふりーは、mySQLとポスグレの2つのDBに対応しているので、EC-CUBEにくっつけて使えそう。

サイトは、英語だけど、サイト内には、チュートリアルもあって、使い方なんかも詳しくかかれているっぽいので、時間が取れたら、ちょっと調べてみることにするワ。

とりあえず、覚書として残す。

参考:http://www.richcontext.jp/rss/richcontext.jsp (こんなのもある)

フリーのフォトショップブラシやプラグイン配布サイト「PHOTOSHOP MOSAIC」

http://www.photoshopmosaic.com/

photoshop-mosaic2

個性的なブラシやパターン満載。ハートのブラシもひとひねりあるデザイン。

パンくずリスト実装色々

http://www.tomcoote.co.uk/JavaScriptCookieCrumbs.aspx

http://coliss.com/articles/build-websites/operation/javascript/693.htmlで紹介されていた)

ユーザーが辿ってきたページの経路履歴をクッキーに保存して、その経路をパンくずリストとして書き出すタイプ

http://www.mtblue.org/pc/web/breadcrumbs.php

ディレクトリの構造を取得して、上の階層へ辿るリンクをパンくずリストとして書き出すタイプ

 

色々ありますな。

既存サービスに追加できるライブドアのリコメンドエンジン「cicindela」

http://labs.edge.jp/cicindela/

アマゾンなどでよくある「この商品を見た(買った)人は他にこんな商品も見て(買って)います。」というアレですね。

既存サービスに追加して使用できるそう。EC-CUBEにも使えるかな?

PHP開発のための便利スニペット10

http://htmlblog.net/10-code-snippets-for-php-developers/

  1. メールアドレスチェック簡単化
  2. パスワード文字列ジェネレート
  3. Proxy経由でもできるだけIPアドレスを取得
  4. Uploadクラスを使ったファイルの簡単アップロード
  5. XSL変換
  6. ファイルのダウンロード
  7. Htmlバリデーションクラスの紹介
  8. PHPMailerを使ったメール送信
  9. 特定ディレクトリ以下のファイルを得る
  10. MDB2を使ったRDBM操作

こんな感じでスニペット化されたコードライブラリ。

セキュアな PHP アプリケーションを作成するための 7 つの習慣(IBM)

http://www.ibm.com/developerworks/jp/opensource/library/os-php-secure-apps/

セキュリティーを考慮する際には、実際のプラットフォームとオペレーティング・システムのセキュリティーの問題に対処した上で、さらに作成するアプリケーションをセキュアなものにする必要があるということを忘れてはなりません。PHP アプリケーションを作成する際には、可能な限りセキュアなアプリケーションにするために、次の 7 つの習慣を守る必要があります。

  • 入力を検証する
  • ファイルシステムを保護する
  • データベースを保護する
  • セッション・データを保護する
  • XSS (Cross-Site Scripting: クロスサイト・スクリプティング) の脆弱性から保護する
  • フォームへの投稿を検証する
  • CSRF (Cross-Site Request Forgeries: クロスサイト・リクエスト・フォージェリー) から保護する

IBMのサイトで、これらの習慣について詳しく解説されている。

オススメ記事:symfony入門(1):symfonyで始めるPHPフレームワーク

http://codezine.jp/article/detail/704?p=2

CodeZine』で「symfonyによる実践的なPHPアプリケーション開発」なる記事が公開されていた。
詳細は上記リンクから記事を読んでみてくださ~い。B豚は、さらっと見ただけで、まだ読んでないので、後で読みマフ。
こういうのを、読み出すと、全然仕事しなくなるからね;

symfonyっていうのも、最近良く耳にするけど、実態不明;
何でもPHPフレームワークだとか。

もうちょっと勉強しなきゃですねぇ。。。ワタシも。ホントに。
ここんとこ、WEBの仕事しながらWEBの世界についてけてないワァ。。。

SMARTYのテンプレート内でphpコードを直接埋め込んで使用するには。

テンプレートにphpコードを直接埋め込む事ができる。
これは $php_handling の設定に関係なく必ず実行される。

{php} と {/php}の間に挟めばいいだけ。

  // テンプレートから直接phpスクリプトをインクルードする場合は、
{php}
  include(“/path/to/includefile.php”); //←詳細のコードは、こっちのPHPファイルに書ける。
{/php}

(Smartyマニュアルより)

phpでそのページそのもののURLを所得→表示するコード

このページのURLは何だろう?これが分かると、GETしたそのURLを変数として、色々使えそう。

てことで、そのページのURLを取得するPHPコード。

<?php

$thisURL=’http://’.htmlspecialchars($HTTP_SERVER_VARS['HTTP_HOST'],ENT_QUOTES).htmlspecialchars($HTTP_SERVER_VARS['REQUEST_URI'],ENT_QUOTES);

define(‘CONFIG_THIS_URL’,$thisURL);  
echo CONFIG_THIS_URL;

?>

define以下は使用しないで、直接「 echo $thisURL; 」としてもOK。

ajaxのショッピングカート作成チュートリアル

http://nettuts.com/javascript-ajax/build-an-ajax-powered-shopping-cart/

別ウインドウで開くカッコイイショッピングカートです。

CSS内でブラウザの条件分岐が出来る『Conditional-CSS』

http://www.conditional-css.com/index

このスクリプトでは、簡単なコードを追加するだけで、CSSファイル内の記述で、CSSの適用に条件分岐を利用してブラウザの振り分けができるようになります。

クロスブラウザ対策にGOODですね。

下記の3つのプラットフォームのスクリプトが同梱されています。

  • PHP: 1.1.php.0
  • C: 1.1.c.0
  • C#: 1.1.c#.0

構造はシンプル。使い方、詳細は上記サイトを見てみてください。

PHPでQRコードを自動生成するライブラリとか。

例えば、ショッピングサイトを作成するときに、商品それぞれに携帯ページがあって、そのページへのQRコードを自動生成させたい場合などがあったりしますよね。
CMSなどでPCページに対応する携帯ページを自動生成してくれるサービスは多くありますが、大量のページ1つ1つにQRコードを作成するのは面倒、でも、QRコードをつけることで気に入った商品に再度アクセスしてもらえるチャンスは広がります。

そういうときにこんなプログラム。

【QRcode Perl CGI & PHP scripts ver. 0.50】

http://www.swetake.com/qr/qr_cgi.html

  • GDを使用してQR codeのpngまたはjpegイメージを出力する、またはいくつかの画像を配置してホームページ上でQR codeを表示する perl CGIプログラム qr_img.cgi (perl5,GDおよびGD.pmが必要)
  • GDを使用してpngまたはjpegイメージを出力するPHPスクリプト qr_img.php (PHPおよびGDが必要)
  • 他にlibpng/jpeg-6bが必要

の2つが同梱されています。
PHPのほうが他のプログラムと連携させたり、カスタマイズしやすく、様々な方が拡張機能のPHPを公開されていますので、基本、こちらを使用したいと思います。

動作確認環境
Linux 2.4.18
apache-1.3.27 + PHP-4.3.0(as apache module)
perl 5.6.1
GD 2.0.11
GD.pm 2.06

ページ最下部の「qr_img0.50g.tar.gz (930KB)」をダウンロードし、展開します。

qr_img0.50-+-perl–+- qr_img.cgi (※CGIを利用する場合)
| +- qr_image.pl
| +- qr_html.pl
|
+-data -+- qrvV_N.dat
| +- rscX.dat
| +- qrvfrV.dat
|
+-image-+- qrvV.png
| +- b.png d.png
|
+-php — qr_img.php (※PHPを利用する場合)

展開したファイルをサーバーにアップし、アップしたスクリプトに表示させたいQRコードのパラメータを渡します。詳細は、READMEを参照してください。

  • ホームページリンクを表示させる場合のパラメータの渡し方例:
    <img src=”qr_img.php?d=<?=urlencode(http://www.bton.net46.net/)?>&e=M&s=3&t=j”>
  • メール送信させるときのパラメータの渡し方例(=日本語を使う場合はSJISエンコード):
    lt;php? $subject = urlencode(mb_convert_encoding(“おはよう”, “SJIS”));
    $body = urlencode(mb_convert_encoding(“こんにちは”, “SJIS”));
    ?>

    ※先にPHPで変数を設定しておく
    (DOCOMO)
    <img src=http://www.bton.net46.net/wp-admin/qr_img.php?d=MATMSG:TO:bton@bton.net46.net;SUB:&lt;?=$subject?&gt;;BODY:&lt;?=$body?&gt;;;&amp;e=M&amp;s=3&amp;t=j />
    (AU,SOFTBANK)
    <img src=”qr_img.php?d=MATMSG:TO:bton@bton.net46.net;SUB:<?=$subject?>;BODY:<?=$body?>;;&e=M&s=3&t=j”>

PHPで値を取り出すときのスクリプトとパラメータは下記参照してください。

メソッド 説明
set_qrcode_version(int z) QRコードのバージョンを設定します。
指定できる値は0または1~40の整数です。
なお0を指定すると「自動設定」となります。
int get_qrcode_ersion() QRコードのバージョンを取得します。
バージョン設定を自動にした時の結果を取得できます。
0が返ってきた場合は「自動設定」です。
set_qrcode_error_correct(string ecc_char) QRコードのエラー訂正レベルを設定します。
指定できる値は”L”,”M”,”Q”,”H”の4種類で省略した場合 M が選択されます。
string cal_qrcode(string data) 与えられたデータ列 data についてQRコードmodel2に変換し(0,1,\n)で構成された二次元コードテキストデータを出力します。
ここで出力されるデータはクワイエットゾーンは加味されません。
set_module_size(int z) QRコードのバージョンを取得します。
バージョン設定を自動にした時の結果を取得できます。
0が返ってきた場合は「自動設定」です。
int get_qrcode_version() モジュールサイズを z に設定します。
初期値は4です。
set_quietzone(int z) クワイエットゾーンの幅を z に設定します。
初期値は4です。
string qrcode_image_out(string org_data[,string image_type][,string filename]) URLエンコードされた文字列org_dataをQRコードに変換しimage_typeのイメージで出力します。
image_typeは’jpeg’または’png’を指定できます。
省略した場合はpngになります。
また第3引数にファイル名を指定した場合、そのファイルに出力を行います。
string image_out(string data [,string image_type][,string filename]) (0,1,\n)で構成されるQRコードテキストデータをimage_typeのイメージで出力します。
image_typeは’jpeg’または’png’を指定できます。
省略した場合はpngになります。
また第3引数にファイル名を指定した場合、そのファイルに出力を行います。

 
参考サイト:

  1. http://itpro.nikkeibp.co.jp/article/COLUMN/20061110/253264/?ST=start4 (◎)
  2. http://www.s-memo.net/blog/2006/11/phpqrqrcode_perl_cgi_php_scrip.php
  3. http://d.hatena.ne.jp/rsky/20070427/1177680276
  4. http://d.hatena.ne.jp/rsky/20070501
  5. http://www.jinlingren.com/eid15.html

MySqlのDBデータをエクセルのように書き換えるAjax+PHP『DrasticGrid』

http://www.drasticdata.nl/DDDrasticGrid.php

データベース内の登録情報(例えば商品IDや価格など)をちょっと変更したいときに、ブラウザ上で、エクセルを編集するような操作で編集が出来るようにするツールコードです。

こちらのドラスティックシリーズ(?)には、GOOGLEMAPとのマッシュアップやタグ食らうどのツールもダウンロードできるようになっており、例えば、GOOGLEMAPで設定した位置情報に関するタグクラウドとDB情報を一緒に表示させて、その場で編集、などということも可能です。

詳しくは、サイト内のEXAMPLEを見ていただければ、なるほどな、と思っていただけるのではないでしょうか。

ニュースティッカー

Fantastic News Ticker Newsvine-like using Mootools
http://woork.blogspot.com/2008/07/fantastic-news-ticker-newsvine-like.html

ニュースが定期的にスクロールする、そう、アレです。

これって上手く使えば、MTとかWPのブログソフトで、該当するフィールドをカスタムフィールドにして、ニュース更新できますよね。

↓こちらは、CSSで実装するものです。

CSS Message Box collection

http://woork.blogspot.com/2008/03/css-message-box-collection.html

タブ式のスライドウィジェットを簡単作成できるjS「jFlow」

kweansphere


単なるタブUIではなく、ページの切り替えにスライドアニメーション機能を加えたというもの。
利用にはjQueryが必要。

ドコモのCSSをインラインに埋め込んでくれるPHPライブラリ「toInlineCSSDoCoMo」

 toInlineCSSDoCoMo.tar.gz

HTML::DoCoMoCSS (こっちは元になったPERL版)

 http://ke-tai.org/blog/2008/07/09/toinline/ (記事はこちら:KE-TAI.ORGさん参照) 

インストールは簡単。

# pear install HTML_CSS

で、必要なPEARライブラリをインストールして、ダウンロードしたファイルを展開するだけ。
中に入っている「sample.php」にアクセスすれば、サンプルが表示されるらしい。

require_once ‘../lib/toInlineCSSDoCoMo.php’;

$document = file_get_contents(‘sample.html’);
try {
echo toInlineCSSDoCoMo::getInstance()->setBaseDir(‘./’)->apply($document);
} catch (RuntimeException $e) {
var_dump($e);
} catch (Exception $e) {
var_dump($e->getMessage());
}
?>

以下、仕様の説明。(ゆどうふブログさん(http://d.hatena.ne.jp/Yudoufu/20080709/1215626811)

toInlineCSSDoCoMoの仕様なんですが、はてブとかで「外部参照をインライン化」だと思ってる人とかがいるみたいなので言っとくと、外部参照だけじゃなくて内部参照のsytleタグもよしなにパースしてくれます。

外部参照やstyleタグ指定が複数あってもそれらを全てsytle要素に突っ込んでくれるので、定義が多段になってる状態でもきちんとできます。sytle要素が個別に定義してあるタグでも、ちゃんとマージします。

無論、class指定が複数記述してあっても、*1全部適用します。
 

また、パースし終わった外部参照・内部参照のlinkタグ・styleタグは除去されるので、通常ブラウザベースで開発を行っていても、ざっくりとしたデザインの確認に支障が出ることはありません*2。(除去されないと、専用エミュレータか実機での確認が必要)*3

あと子孫セレクタとかその辺は、結構ちゃんとやってくれます。ただ、ブログにも書いたとおり疑似クラスはa:link,・・・の4つしか対応してません。

一応、それらの疑似クラスは全部内部参照としてCDATAつけてstyleタグに突っ込むようになっています。*4

それ以外はDoCoMoではどのみち無効ということもあって無視しています。

このあたりは、携帯のCSSだし、元々あんまり使ってる人いないようなので、ひとまずざっくり仕様で。

ホーム > スクリプト系 > PHP・PERL

Search
Feeds
Meta

Return to page top