副業PHP
ここには説明文を表示します。
説明文は「モジュールの設定」にて編集できます。
説明文は「モジュールの設定」にて編集できます。
| メイン | 簡易ヘッドライン |
現在データベースには 1055 件のデータが登録されています。
最新 RDF/RSS/ATOM 記事
外部認証サーバーを経由するとパラメーターが受け渡せない?
in
Q&A掲示板
(2008-11-11 17:19:18)
レンタルサーバー(アイル)を借りて商品販売ページを
運営しているお客様が
『外部認証サーバーが現在アイルじゃないためアイルのものにしたい』
という考えから認証サーバーを切替えました。
その際特にphpの内容は変えていないのですが
共用SSLの場合 https:// SSLサーバー名/www.お客さまのドメイン名/
にしてくださいといわれそのようにしたところ
セッション情報の受け渡しが出来なくなりましたと連絡を受けました。
外部認証サーバーを通さずにやり取りをすると上手く動く為
やはり外部認証サーバーを通している為に起きているようなのですが
①外部認証サーバーを通す場合にはこうしなければセッションが渡せない
というようなことはありますでしょうか?
②こういう点をまずは見てもらわないと何もいえない
など
自分がPHPの経験がないためとお客様環境のために
聞けない部分がありあいまいな質問になってしまい申し訳ありませんが
ヒントでもいいのでご教授いただければと思います
以上
第3水準漢字をMACで見る
in
Q&A掲示板
(2008-11-11 10:17:06)
windows(2000,xp)下のIEでは正常に表示できるJIS第3水準の漢字が、MACでは表示されない問題があります。一説によると、その漢字だけをUTF-8とすればよいらしいのですが、具体的にどうすれば良いか、お教え願いたいのです。第3水準(及び以降)を検出すること、その字だけをUTF-8で表すこと、のいずれの問題もよくわかりません。もっともmacでは、一切第3水準が扱えないのならあきらめざるを得ないとは思いますが。
第3水準が出る可能性のあるページの例(このページに実際あるかどうか不明)
http://sigesplants.chicappa.jp/mkpage2.php?jmp=specgaku&th=s&spno=0&spec=Abies_homolepis
このページのMETA行
<META http-equiv="Content-Type" con_tent="text/html; charset=EUC-JP">
copyの使い方
in
Q&A掲示板
(2008-11-10 16:49:20)
osにはfreeBSDを用いています。
あるファイルをコピーする関数のcopyを実行しても上手く動いてくれないので
質問させていただきました。後々で画像のコピーを行いたいと思っています。
<html>
<head>
<title>copy-test</title>
</head>
<body>
<?php
$fname = ' test.txt ' ;
$fname_to = ' testx.txt ' ;
if ( copy ( $fname , $fname_to )){
echo " <p> $fname を $fname_to にコピーしました。: " ;
}
else {
echo " <P> $fname から $fname_to へのコピーに失敗した。: " ;
}
?>
</body>
</html>
これでもcopyは上手く動いてくれません。
PHPの基本文字コードはutf-8を使用しています。
もしかしたら文字コードが原因かもしれないと思いますが、自信がありません。
php.iniの”File Upload”変更は以下のようにしています。
file_uploads = on
upload_tmp_dir =
upload_max_filesize = 2M
何かまずいところがあればご指摘お願いいたします。
画像のアップロード
in
Q&A掲示板
(2008-11-10 10:23:47)
formからの画像アップロードに挑戦しています。
<html>
<head><title>ファイルのupload</title></head>
<body>
アップロードテスト
<form enctype="multipart/form-data" action="up.php" method="POST">
ファイル選択:<input type="file" name="upfile" /><br>
<input type="submit" value="Send File" /><br>
</form>
</body>
</html>
<?php
$file_name = $_FILES [ ' upfile ' ][ ' name ' ] ;
$tmp_file = $_FILES [ ' upfile ' ][ ' tmp_name ' ] ;
$file_size = $_FILES [ ' upfile ' ][ ' size ' ] ;
$file_type = $_FILES [ ' upfile ' ][ ' type ' ] ;
$file_error = $_FILES [ ' upfile ' ][ ' error ' ] ;
print_r ( $_FILES ) ;
if ( FALSE !== $file_error )
{
if ( 0 != $file_size )
{
if ( FALSE !== strPos ( $file_type , ' image/ ' ))
{
$base = baseName ( $file_name ) ;
copy ( $file_type , $base ) ;
echo " <IMG src=' " . $base . " '> " ;
}
else {
echo " imgではない。 " ;
}
}
else {
echo " ファイルが選択されていない " ;
}
}
else {
echo " そもそもupload自体が成功していない " ;
}
?>
のfrom.htmlとto.phpの二段で構成しています。
print_r($_FILES)で確認したところ
Array ( [userfile] => Array ( [name] => jpg.JPG [type] => image/jpeg [tmp_name] => /var/tmp/phpAS9AYV [error] => 0 [size] => 3527 ) )
と表示されるのでアップロードは出来ていると思われるのですが、
その後のcopyが上手くいきません。
画像が表示されるべき場所にはバツがついていますし、
PHPプログラムがおいてあるディレクトリにはcopyされるべき画像も見当たりません。
どなたかお力添えをお願いいたします。
初心者です、メールの自動返信について教えてください。
in
Q&A掲示板
(2008-11-8 1:29:31)
メールがサーバーに受信すると自動返信するプログラムを作成しています。
その際、メールアドレスを2つ設定していて、メールアドレスごとに
異なるメールを偏したいと考えています。
ですが、何度やっても同じメールが送信されてしまいます。
どこをどう修正したらよいのかまったくわかりません。
宜しくお願い致します。
<?php
define ( ' SF_ROOT_DIR ' , realpath ( dirname ( __FILE__ ) . ' /.. ' )) ;
define ( ' SF_APP ' , ' mobile ' ) ;
define ( ' SF_ENVIRONMENT ' , ' dev ' ) ;
define ( ' SF_DEBUG ' , true ) ;
require_once ( SF_ROOT_DIR . DIRECTORY_SEPARATOR . ' apps ' . DIRECTORY_SEPARATOR . SF_APP . DIRECTORY_SEPARATOR . ' config ' .
DIRECTORY_SEPARATOR . ' config.php ' ) ;
//sfContext::getInstance(); // sessionが開始され書込エラーが発生した。->Databse へ session管理を変更し動作確認
// main
main () ;
/*
* main
*/
function main ()
{
try
{
// -----------------------------------------------
// 初期値
// -----------------------------------------------
// db control info
$program_id = substr ( __FILE__ , - 1 * 25 ) ;
//$member_id = 0;
$machine_id = ' 127.0.0.1 ' ;
// -----------------------------------------------
// メールデータ取得
// -----------------------------------------------
// 補足
// php5 では strict の関係で変更が必要(symfony instanceを作成時のみ)
// 1. Mail_mimeDecode::decode($params);をインスタンス化する。
// 2. 下記のpear関係を記述修正
// /usr/share/pear/Mail/mimeDecode.php on line 311 [ $obj = &new Mail_mimeDecode($body); ] -> [ $obj = new Mail_mimeDecode($body); ]
// /usr/share/pear/PEAR.php on line 569 [ $a = &new $ec($code, $mode, $options, $userinfo); ] -> [ $a = new $ec($code, $mode, $options, $userinfo); ]
// /usr/share/pear/PEAR.php on line 572 [ $a = &new $ec($message, $code, $mode, $options, $userinfo); ] -> [$a = new $ec($message, $code, $mode, $options, $userinfo);]
// /usr/share/pear/Mail/mimeDecode.php on line 394 [$obj = &new Mail_mimeDecode($body);] -> [$obj = new Mail_mimeDecode($body);]
// 標準出力
$input_mail_data = file_get_contents ( " php://stdin " ) ;
$input_mail_data .= " \n " . ' ' ;
// body がないメール対応
// メール受信用クラスをインスタンス化
$receive_mail = new myReceiveMail ( $input_mail_data ) ;
// 送信者のメールアドレスを抽出
$mail_from = $receive_mail -> getMailFrom () ;
// 送信元のメールアドレス
$mail_to = $receive_mail -> getMailTo () ;
// 送信日時を取得
$mail_date = $receive_mail -> getMailDate () ;
// 件名を取得
$mail_subject = $receive_mail -> getMailSubject () ;
myLogger :: outLog ( "" ) ;
myLogger :: outLog ( ' date : ' . date ( "
Y-m-d H:i:s " , time ())) ;
myLogger :: outLog ( ' strlen($input_mail_data) : ' . strlen ( $input_mail_data )) ;
myLogger :: outLog ( ' mail_from : ' . $mail_from ) ;
myLogger :: outLog ( ' mail_to : ' . $mail_to ) ;
myLogger :: outLog ( ' mail_date : ' . $mail_date ) ;
myLogger :: outLog ( ' mail_subject : ' . $mail_subject ) ;
// echo $input_mail_data . "\n";
// echo var_dump($receive_mail->getStructure()) . "\n";
// structure 取得
$structure = $receive_mail -> getStructure () ;
// body取得など
switch ( strtolower ( $structure -> ctype_primary ))
{
case " text " : // シングルパート(テキストのみ)
$mail_body = $structure -> body ;
myLogger :: outLog ( ' mail_body : ' . $mail_body ) ;
break ;
case " multipart " : // マルチパート(画像付き)
foreach ( $structure -> parts as $part )
{
switch ( strtolower ( $part -> ctype_primary ))
{
case " text " : // テキスト
$mail_body = $part -> body ;
break ;
case " image " : // 画像
//画像の拡張子を取得する(小文字に変換
$type = strtolower ( $part -> ctype_secondary ) ;
//JPEGチェック(GIFやPNG形式の画像チェックなども可
if ( $type != " jpeg " and $type
!= " jpg " ){
continue ;
}
//添付内容をファイルに保存
$fp = fopen ( "
/home/dosanko/www/symfony_dosanko/tmp/picture.jpg " . $type , " w " ) ;
$length = strlen ( $part -> body ) ;
fwrite ( $fp , $part -> body , $length ) ;
fclose ( $fp ) ;
break ;
}
}
break ;
default :
$mail_body = "" ;
}
// メール返信
return executeSendNewMail ( $mail_from ) ;
}
catch ( Exception $e )
{
myLogger :: outLog ( $e -> getMessage ()) ;
return false ;
}
}
/**
* 新規登録メール本文の作成取得
*
* @access public
* @param string $mail_from fromメールアドレス
* @return boolean
*/
function executeSendNewMail ( $mail_from )
{
// 空メールを送ってきた人に返すため変数名を加工
$to_email = $mail_from ;
// メール送信
//$to_email = $email;
$from_name = ' 道産子 ' ;
$from_email = ' $mail_to; ' ;
$subject = ' お知らせ ' ;
$bccs = '' ;
$mail = new sfMail () ;
foreach ( explode ( " , " , $bccs ) as $_bcc )
{
$mail -> addBcc ( $_bcc ) ;
}
$mail -> addAddress ( $to_email ) ;
$mail -> setSender ( $from_email ) ;
$mail -> setFrom ( myUniversalUtility :: encodeMailSubject ( $from_name , ' ISO-2022-JP ' ) . ' <
' . $from_email . ' > ' ) ;
$mail -> setSubject ( myUniversalUtility :: encodeMailSubject ( $subject , ' ISO-2022-JP ' )) ;
$mail -> setCharset ( ' ISO-2022-JP ' ) ;
$mail -> setPriority ( 3 ) ;
$mail_body = getNewMailBody ( $mail_from ) ;
$mail -> setBody ( mb_convert_encoding ( $mail_body , ' ISO-2022-JP ' , ' UTF-8 ' )) ;
$mail -> send () ;
}
/**
* 新規登録メール本文の作成取得
*
* @access public
* @param string $mail_from 送信アドレス
* @return string メール本文
*/
function getNewMailBody ( $mail_from )
{
if ( $mail_to == ' XXX@shinjukudosanko.com ' ){
$body = null ;
$body .= '' . " \n " ;
$body .= ' 新規ご登録のお知らせ ' . " \n " ;
$body .= '' . " \n " ;
$body .= ' ご登録ありがとうございます。 ' . " \n " ;
$body .= ' 後日、お得なクーポンを配信させていただきます。 ' . " \n " ;
$body .= '' . " \n " ;
$body .= ' http://www.shinjukudosanko.com/m/index.html ' . " \n " ;
$body .= '' . " \n " ;
$body .= '' . " \n " ;
$body .= ' ※本メールには返信しないでください。 ' . " \n " ;
$body .= '' . " \n " ;
$body .= ' ※メッセージに覚えがない方 ' . " \n " ;
$body .= ' 大変申し訳ありませんが、下記までご一報くださいますようお願いいたします。 '
. " \n " ;
$body .= '' . " \n " ;
$body .= '' . " \n " ;
$body .= ' ―――――――――――――――――――― ' . " \n " ;
$body .= ' 北海料理 道産子 ' . " \n " ;
$body .= '' . " \n " ;
$body .= ' お問い合わせ: YYY@dosankosinjuku.com ' . " \n " ;
$body .= '' . " \n " ;
$body .= ' 運営会社 : 豊実企業 ' . " \n " ;
$body .= ' ―――――――――――――――――――― ' . " \n " ;
}
else if ( $mail_to == ' ZZZ@shinjukudosanko.com ' ){
$body = null ;
$body .= '' . " \n " ;
$body .= ' 配信解除のお知らせ ' . " \n " ;
$body .= '' . " \n " ;
$body .= ' メール配信を解除しました。 ' . " \n " ;
$body .= ' 尚、行違いで配信される場合もございます。 ' . " \n " ;
$body .= ' ご了承ください。 ' . " \n " ;
$body .= '' . " \n " ;
$body .= '' . " \n " ;
$body .= ' ※本メールには返信しないでください。 ' . " \n " ;
$body .= '' . " \n " ;
$body .= '
※メッセージに覚えがない、または過去に配信を解除したにもかかわらずメールが配信された場合等は ' .
" \n " ;
$body .= ' 大変申し訳ありませんが、下記までご一報くださいますようお願いいたします。 '
. " \n " ;
$body .= '' . " \n " ;
$body .= '' . " \n " ;
$body .= ' ―――――――――――――――――――― ' . " \n " ;
$body .= ' 北海料理 道産子 ' . " \n " ;
$body .= '' . " \n " ;
$body .= ' お問い合わせ: YYY@dosankosinjuku.com ' . " \n " ;
$body .= '' . " \n " ;
$body .= ' 運営会社 : 豊実企業 ' . " \n " ;
$body .= ' ―――――――――――――――――――― ' . " \n " ;
}
return $body ;
}
?>
正規表現で で あいうえお を抜きたい
in
Q&A掲示板
(2008-11-7 19:59:34)
いつもお世話になります。
http://www.thetruth.jp/yumiblogp1.php
RSSから抜き出して写真を表示させるのをしているのですが、CDDATAが抜けません。
<title type="html"><![CDATA[たいとる!]]></title> となっていたら、
$ptns["title"] = '/<title type="html"><(.*?)><\/title>/sU'; と書いたら、
当然ですが、![CDATA[たいとる!]] が抜き取れます。
この![CDDATA[ と ]] を抜きたいのですが、それがどうもうまくいきません。
これを抜くのは面倒なんでしょうか?
いろいろ書いてみたのですが…。
よろしくお願いします。
三連休の大阪・神戸旅行
in
アシアルブログ
(2008-11-7 11:12:33)
一年もあと二ヶ月となった今日この頃皆さんはいかがお過ごしでしょうか。先の三連休、私は友人の結婚式に出席するため、またついでに観光するため、まるまる三日間関西方面に行ってきました。
日程はというと、一日目は大阪市内を観光し、二日目は結婚式等々に出席し、最終日は神戸市内を観光。こんな感じです。
まず一日目の大阪。大阪というと高校の修学旅行で一度行ったきりで、しかもその時のイメージがあまり良くなかったのか、どこを見て回ったのか覚えていません。しかししかし、今なら私的に大阪城を一度じっくり見てみたいという願望があります。そんなことでついに実現しました!
ついでに運良く重要文化財の千貫櫓・多聞櫓の特別公開があったり、
天守閣では特別展ということで「徳川大坂城 ―西国支配の拠点―」が開催されていたりと、
日本史好きの私にとってとても満足できる内容で、
何だかんだ見て回り外に出てみるとすっかり暗くなっていました。
二日目は結婚式ということで宝塚市へ行きお祝いしてきたわけですが、この結婚式というのが今までに出席したことがあるキリスト教式や神前式とは違い、
お寺さんで行われる仏前結婚式ということでなかなか興味深いものでありました。
三日目は神戸市内観光ということでいろいろ雑貨屋さんを巡ったりしたのですが、
なんといっても神戸は私好みの洋風な建築物が多くてとても興奮します。
そんなことで先の三連休は関西を思う存分楽しみました。もちろん、お好み焼きにたこ焼きに豚まん等々食べ物もしっかりと食してきました。
しかし、心残りが一つ。串カツを食せなかったのが残念無念。次回こそは、串カツ、食したいです!
日程はというと、一日目は大阪市内を観光し、二日目は結婚式等々に出席し、最終日は神戸市内を観光。こんな感じです。
まず一日目の大阪。大阪というと高校の修学旅行で一度行ったきりで、しかもその時のイメージがあまり良くなかったのか、どこを見て回ったのか覚えていません。しかししかし、今なら私的に大阪城を一度じっくり見てみたいという願望があります。そんなことでついに実現しました!
ついでに運良く重要文化財の千貫櫓・多聞櫓の特別公開があったり、
天守閣では特別展ということで「徳川大坂城 ―西国支配の拠点―」が開催されていたりと、
日本史好きの私にとってとても満足できる内容で、
何だかんだ見て回り外に出てみるとすっかり暗くなっていました。
二日目は結婚式ということで宝塚市へ行きお祝いしてきたわけですが、この結婚式というのが今までに出席したことがあるキリスト教式や神前式とは違い、
お寺さんで行われる仏前結婚式ということでなかなか興味深いものでありました。
三日目は神戸市内観光ということでいろいろ雑貨屋さんを巡ったりしたのですが、
なんといっても神戸は私好みの洋風な建築物が多くてとても興奮します。
そんなことで先の三連休は関西を思う存分楽しみました。もちろん、お好み焼きにたこ焼きに豚まん等々食べ物もしっかりと食してきました。
しかし、心残りが一つ。串カツを食せなかったのが残念無念。次回こそは、串カツ、食したいです!
みなさんのお気に入りのニュースサイト
in
Q&A掲示板
(2008-11-6 21:38:21)
初めまして。phpビギナーです。
私のphpレベルとして、
phpとmysqlを用いて趣味程度ななwebアプリケーション( 掲示板やブックマークサイト、添付メール送信 )を作れるぐらいです。
それなので、初級者ぐらいだと思っています。
定期的にphpやwebプログラミングに関しての知識・情報をニュースサイトで得たいと思っています。
みなさんがお気に入りのニュースサイトを教えて下さい。
宜しくお願いしますm(_ _)m
ギャングオブフォー
in
アシアルブログ
(2008-11-6 20:33:36)
最近PHPで製造を行っていてもよく耳にするようになった依存関係やインスタンス化など
オブジェクト指向の用語ですが、オブジェクト指向の概念(5原則など)を学ぶのではなく
手っ取り早く実際にオブジェクト指向を使って考えられたデザインパターンに触れてみましょう。
デザインパターンと言ってもいろいろあるんですが、今回は【オブジェクト指向における再利用のためのデザインパターン(ソフトバンクパブリッシング刊】
で有名なGoFのデザインパターンを取り上げます。
GoFって何?って人はGoFでググってください。GoFに付いてはいたる所で説明されているので割愛します。
GoFのデザインパターンとはオブジェクト指向言語で再利用できる汎用的な設計パターンの事です。
ここで言う設計とはクラス設計の事を言います。クラス設計を行う場合毎回と言っていいほど役割や機能をどのクラスのどんなメソッドに持たせるか悩む事があるんじゃないでしょうか?
そんな時、ある程度形になったクラス設計のパターンの中から必要に応じて選択していけば効率的にクラス設計が行えるのではないでしょうか。このクラス設計のパターンがデザインパターン
と呼ばれている物です。
デザインパターンを選択する方法はいろいろあると思いますが、私がパターンを選択する場合以下の3点で判断します。
1.目的があっているか(どんなプログラムのための物なのか)
2.効果(そのパターンに従うとどんなメリットがあるか)
3.背景(自分が今どんな問題に直面しているか)
この3つのポイント、デザインパターンを理解する上でこのポイントと名前さえ覚えればパターンを理解出来ていると言っても言いぐらい重要な要素になります。
GoFのデザインパターンは23個あるので、今日を含めても23回はネタが切れないなんていいブログネタなんでしょう。なので毎回だらだらとデザインパターンに付いて書いても読みづらいと
思うので目的、効果、背景、実際のコードを書いていきたいと思います。おおこれ使えるかもってパターンがあったら実際にデザインパターンを考案したGoFが書いた【オブジェクト指向における再利用のためのデザインパターン(ソフトバンクパブリッシング刊】
を読んでみてください(Blogではこんなパターンがあるよを目的に書くのでかなり浅い内容になります)。
では手始めに一番簡単なSingletonパターンを紹介します。って一回目にSingletonパターンを持ってくるあたりがセンスないですが、
意外とGoFのデザインパターンって知らずに使っている人が多いようなのであえて今日はSingletonです。
目的
複数のクラスから共通して使われるクラスのオブジェクトを1回インスタンス化したらそれ以上インスタンス化したくない!
背景
普通のクラスではnewすればするほどインスタンスが出来ますが、たまに1回だけインスタンス化したら
それ以上インスタンス化をしたくない場合があります。コードを書くときに1回だけnewするようにすればいいじゃんって思えますが、マルチスレッドの場合
どのクラスがまたはどのクラスのインスタンスがnewするのかを制御しようと思った時に結構めんどくさくないですか?だって一番最初に呼ばれるインスタンスを特定しなくちゃいけないんですよ。。
効果
インスタンス化されているか、されてないかをsupplierは意識する必要がない。
※supplierとはは呼び出し元のクラスです。
実際のコードはとっても簡単
しかしコンストラクターが呼び出せてしまうと、インスタンス化されてしまうので、MyClassのコンストラクターにprivate修飾を付けることによりアク禁にしてます。
php版 小川先生提供です。
と言うわけで、Singletonでした。
終わり。
オブジェクト指向の用語ですが、オブジェクト指向の概念(5原則など)を学ぶのではなく
手っ取り早く実際にオブジェクト指向を使って考えられたデザインパターンに触れてみましょう。
デザインパターンと言ってもいろいろあるんですが、今回は【オブジェクト指向における再利用のためのデザインパターン(ソフトバンクパブリッシング刊】
で有名なGoFのデザインパターンを取り上げます。
GoFって何?って人はGoFでググってください。GoFに付いてはいたる所で説明されているので割愛します。
GoFのデザインパターンとはオブジェクト指向言語で再利用できる汎用的な設計パターンの事です。
ここで言う設計とはクラス設計の事を言います。クラス設計を行う場合毎回と言っていいほど役割や機能をどのクラスのどんなメソッドに持たせるか悩む事があるんじゃないでしょうか?
そんな時、ある程度形になったクラス設計のパターンの中から必要に応じて選択していけば効率的にクラス設計が行えるのではないでしょうか。このクラス設計のパターンがデザインパターン
と呼ばれている物です。
デザインパターンを選択する方法はいろいろあると思いますが、私がパターンを選択する場合以下の3点で判断します。
1.目的があっているか(どんなプログラムのための物なのか)
2.効果(そのパターンに従うとどんなメリットがあるか)
3.背景(自分が今どんな問題に直面しているか)
この3つのポイント、デザインパターンを理解する上でこのポイントと名前さえ覚えればパターンを理解出来ていると言っても言いぐらい重要な要素になります。
GoFのデザインパターンは23個あるので、今日を含めても23回はネタが切れないなんていいブログネタなんでしょう。なので毎回だらだらとデザインパターンに付いて書いても読みづらいと
思うので目的、効果、背景、実際のコードを書いていきたいと思います。おおこれ使えるかもってパターンがあったら実際にデザインパターンを考案したGoFが書いた【オブジェクト指向における再利用のためのデザインパターン(ソフトバンクパブリッシング刊】
を読んでみてください(Blogではこんなパターンがあるよを目的に書くのでかなり浅い内容になります)。
では手始めに一番簡単なSingletonパターンを紹介します。って一回目にSingletonパターンを持ってくるあたりがセンスないですが、
意外とGoFのデザインパターンって知らずに使っている人が多いようなのであえて今日はSingletonです。
目的
複数のクラスから共通して使われるクラスのオブジェクトを1回インスタンス化したらそれ以上インスタンス化したくない!
背景
普通のクラスではnewすればするほどインスタンスが出来ますが、たまに1回だけインスタンス化したら
それ以上インスタンス化をしたくない場合があります。コードを書くときに1回だけnewするようにすればいいじゃんって思えますが、マルチスレッドの場合
どのクラスがまたはどのクラスのインスタンスがnewするのかを制御しようと思った時に結構めんどくさくないですか?だって一番最初に呼ばれるインスタンスを特定しなくちゃいけないんですよ。。
効果
インスタンス化されているか、されてないかをsupplierは意識する必要がない。
※supplierとはは呼び出し元のクラスです。
実際のコードはとっても簡単
- final
class MyClass { -
private static final MyClass instance = new MyClass(); -
private MyClass(){}; -
public static MyClass getInstance(){ -
return instance; -
} -
-
public void hogehoge(){ -
System.out.println("hogehogeメソッド"); -
} - }
- class
Test{ -
public static void main(String aa[]){ -
MyClass m = MyClass.getInstance(); -
m.hogehoge(); -
} - }
しかしコンストラクターが呼び出せてしまうと、インスタンス化されてしまうので、MyClassのコンストラクターにprivate修飾を付けることによりアク禁にしてます。
php版 小川先生提供です。
- <?php
-
- class
Singleton - {
-
private static $instance = null ; -
-
private function __construct () {} -
-
public static function getInstance () -
{ -
if ( is_null ( self :: $instance )) { -
$class = __CLASS__ ; -
self :: $instance = new $class ; -
} -
-
return self :: $instance ; -
} - }
-
- $obj1
= Singleton :: getInstance () ;
と言うわけで、Singletonでした。
終わり。
Imagickを利用してリサイズができないのでご教授おねがいします。
in
Q&A掲示板
(2008-11-6 13:47:13)
環境は以下です。
php 4.4.9
imagemagick 6.0.7
php imagick 0.9.11
$handle=imagick_readimage("sample.jpg");
imagick_resize($handle,150,150,IMAGICK_FILTER_UNKNOWN,1);
imagick_writeimage($handle,getcwd()."./sample.jpg");
この部分なんですが、まずイメージをリードした時点で$handleにはResource id #10というものが
入っているんですが、これのせいで以後の処理ができないんでしょうか?
そうならこれの対処する方法をご教授お願いします。
ちなみに、上記のプログラムのリサイズとファイルの書込みはコメントアウトしないと500エラーがでてしまいます。
PHP初心者の為、なにがなんだかわからなくて。
絶対パスと相対パスの転送速度の違い
in
Q&A掲示板
(2008-11-6 10:21:48)
PHPとは直接関係が無いのですが、PHPでスクリプトを書く中で、
リンクを絶対パスにするか相対パスにするかで迷っています。
今までは、絶対パスによる記述を行ってきました。
ベースURLを定義して、それを使うといった感じです。
『絶対的な記述量の差』以外に、転送速度が変わるといったことがあるのでしょうか。
少なくともFirebugやGoogle Chrome上では違いがわかりませんでした。
HTTPのセッションを保持したまま転送をかけるから速いといった、
具体的な理由などがあれば絶対パスと相対パスを選択できると思います。
Googleで検索して調べた感じでは、相対パスのほうが早いという話しか載って無かったです。
検証できなかったので『絶対的な記述量の差』以外に、転送速度が変わるといったことがあるのかが知りたいと思います。
PHPプロ!Weekly PECL リリース @ 08/11/06号
in
PHPプロ!ニュース
(2008-11-6 10:11:12)
PHPプロ!Weekly PECLリリースでは、前週からの1週間にリリースされたPECLパッケージを、毎週まとめてご紹介します。
本記事では、10月30日から11月06日までの間にリリースされたパッケージ一覧を掲載しています。
php.iniの設定方法について・・・・
in
Q&A掲示板
(2008-11-5 14:46:04)
レンサバ.comを使っておりますがPHP5の設定の仕方が全くわかりません。
php.iniを設定すれば使えるとの事ですがphp.iniの意味もわかりません。
何かファイルをアップロードするのでしょうか?
単純にPHP5が使えれば問題無いのですが・・・・
php.iniの記述の仕方と
php.iniの具体的な事を教えて頂ければと思います。
宜しくお願い致します。
引数(ひきすう?)ってどういう意味になるのでしょうか?
in
Q&A掲示板
(2008-11-4 23:06:29)
http://www.gensu.co.jp/info.php
という古いphpのサーバーに簡単な書き込みphpを作ろうと思いましたが、これまでのプログラムが使えず、こちらで以前教えていただいた、
$POST を $HTTP_POST_VARS に書き換えたりしてなんとか作ることができました。
以下は書き込み完了のphpですが、
topcomment.txt に書きこんだら、 それをまた読み込んでwhile を使って
fgets($file,1024);で読み込んで表示させます。
http://www.gensu.co.jp/kakiko/kakikomiup.php
<?php
$contents = $HTTP_POST_VARS [ ' contents ' ] ;
if ( $contents ) {
$fp = fopen ( ' topcomment.txt ' , ' w ' ) ;
fputs ( $fp , $contents ) ;
fclose ( $fp ) ;
print " 書き込み完了しました。<br> " ;
}
print " <br>====書込内容====<br><br> " ;
$file_name = " topcomment.txt " ;
$file = @ fopen ( $file_name , " r " ) or die ( " openエラー $file_name " ) ;
while ( ! feof ( $file )) {
$string = fgets ( $file , 1024 ) ;
echo $string . " <br> " ;
}
flock ( $file , LOCK_UN ) ;
fclose ( $file ) ;
?>
私が聞きたいのは、fgets($file,1024);で読み込んで表示させるというのは、引数(いんすう?)がいるというので、たまたま見つけて書いてみたらできたという感じです。
http://www.phppro.jp/phpmanual/php/function.fgets.html
引数というものは、その行の長さを単純に指定していると考えていいのでしょうか?
「handle で指定したファイルポインタから最大 length - 1 バイト読み出し、その文字列を返します。」
という説明だと最大1バイト?というのが、たったそれだけ?という気がして、気にせず動いたらいいと思いながらも、恥ずかしながら教えてもらいたいです。
ちなみに、ここの数字を1025にしても動きましたが、1にしたら動かなかったです。
よろしくお願いします。 いつもありがとうございます。
お陰で、ほんのちょっとだけPHPを書くのを好きになってます。
この本をまるうつしで書いている書き方も、もうちょっと美しく書けるような気もするので、よかったらアドバイスお願いします。
PHP関数とSymfonyでためになったこと
in
PHPプロ!TIPS+
(2008-11-4 21:15:32)
PHPの関数やSymfonyで意識して機能をとっさに思い出して使うことってなかなか難しいことだと思います。そのようなPHPとSymfony機能で「そんなこともできるんだね」とか「忘れてたよ」とか「便利だなぁ」と思ったことをいくつかまとめてみました。自分のメモ的な意味も含めてご紹介したいと思います。
PHPプロ!Weekly PEAR リリース @ 08/11/04号
in
PHPプロ!ニュース
(2008-11-4 12:43:37)
PHPプロ!Weekly PEARリリースでは、前週からの1週間にリリースされたPEARパッケージを、毎週まとめてご紹介します。
本記事では、10月28日から11月04日までの間にリリースされたパッケージ一覧を掲載しています。
MagpieRSSでの表示件数制御
in
Q&A掲示板
(2008-11-4 12:12:03)
MagpieRSSについて質問です。
RSSの記事を新着から4件だけ表示したいのですが、以下のコードを
どのように変更すればよいでしょうか?
アドバイスお願いします。
<?php
require_once 'magpie/rss_fetch.inc';
define('MAGPIE_OUTPUT_ENCODING','UTF-8');
define('MAGPIE_FETCH_TIME_OUT', 10);
define('MAGPIE_CACHE_ON', TRUE);
define('MAGPIE_CACHE_DIR', './cache');
define('MAGPIE_CACHE_AGE', 60 * 60);
$url = ($_GET['url'] == '') ? 'http://○○.rdf' : $_GET['url'];
$rss = fetch_rss($url);
mb_convert_variables('UTF-8', 'auto', $rss);
?>
<?php foreach($rss->items as $data){
$pd = ($data['pubdate'] == null) ? $data['dc']['date'] : $data['pubdate']; ?>
<a href='<?php print($data['link']); ?>' target="_blank"><br>
<?php print($data['title']); ?></a>
<?php print(date('y.m.d', strtotime($pd))); ?><br>
<?php print($data['description']); ?>
<?php } ?>
会員管理システムにマイページ機能をつけたいのですが・・・
in
Q&A掲示板
(2008-11-4 3:14:13)
phpとsmartyを使って簡単な認証システムを作成しました。
新たに、ログインした会員にマイページ機能を使ってマイページに行くシステムにしたいのですが、どのようにしたらいいのですか?
php初心者なのでアドバイスお願いいたします。
symfonyのプロジェクトをコマンドラインから生成
in
Q&A掲示板
(2008-11-3 14:22:46)
symfonyのプロジェクト、アプリケーション等をコマンドラインから作るのですが、コマンドラインから作られたファイルの文字コードがS-JISになってしまい、うまく動作してくれません。symfonyに限らず何でもそうだと思うのですが、コマンドラインからファイルを作る場合、その生成されるファイルの文字コードを指定するにはどうしたらよいのでしょうか?よろしくお願いいたします。
seleniumをEclipseから自動的に起動したいんですがどうしたらよいのでしょうか?
in
Q&A掲示板
(2008-11-2 18:17:59)
下記のようにテストケースを作ったのですが
これをeclipseから自動的に起動することは可能でしょうか?
今はわざわざコマンドプロンプトから起動していますが
よろしくお願いします。
<?php
require_once ' C:\xampp\php\PEAR\Testing ' ;
$oSelenium = new Testing_Selenium (
" *iexplore " ,
" https://www.tst.com " ) ;
$oSelenium -> start () ;
$oSelenium -> open ( " / " ) ;
if ( ! $oSelenium -> isElementPresent ( " id_=login_button " )) {
$oSelenium -> click ( " logout " ) ;
$oSelenium -> waitForPageToLoad ( 10000 ) ;
if ( ! $oSelenium -> isElementPresent ( " id_=login_button " )) {
echo " Failed to log out
\n\n " ;
exit ;
}
} ``
$oSelenium -> type ( " login " , " my_username " ) ;
$oSelenium -> type ( " password " , " my_password " ) ;
$oSelenium -> click ( " login_button " ) ;
$oSelenium -> waitForPageToLoad ( 10000 ) ;
$oSelenium -> click ( " top_nav_campaigns " ) ;
$oSelenium -> stop () ;
?>
execution time : 0.238 sec
