<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
   <channel>
      <title>RedLine Magazine</title>
      <link>http://redline.hippy.jp/</link>
      <description>webデザイナによるwebデザインに関するさまざまな情報を掲載しています。</description>
      <language>ja</language>
      <copyright>Copyright 2010</copyright>
      <lastBuildDate>Fri, 26 Feb 2010 20:32:33 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/RedlineMagazine" /><feedburner:info uri="redlinemagazine" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
         <title>Firefox　検索バーに好きなの追加</title>
         <description>&lt;p&gt;Firefoxの検索バーから直接PHPのマニュアルを検索できるプラグインを 発見したので勢いで入れてみました。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://sks.s101.xrea.com/mozsearch/php/" target="_blank"&gt;sks - PHPマニュアル検索プラグイン&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;チョーー便利！知りたい関数でググっても常にマニュアルが検索結果の一番上にきてくれるわけではないので、これはマジで便利です。ハッピー。&lt;/p&gt;
&lt;p&gt;検索バーが気になって、便利なものを探してたらこういうのがあった！！&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3682" target="_blank"&gt;Add to Search Bar :: Add-ons for Firefox&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このアドオンを入れておくと、「検索」があるサイトのフォーム内で右クリックすると･･･簡単にFirefoxの検索バーに追加できてしまうというすぐれもの。&lt;/p&gt;
&lt;p&gt;例えばこのサイトの右上の検索ボックスの部分で右クリックすると･･･&lt;br /&gt;
マジで簡単に追加でけた！&lt;/p&gt;
&lt;p class="entry_box03"&gt;&lt;img src="http://redline.hippy.jp/images/100228_01.png" alt="キャプチャ・検索ボックス内で右クリック" /&gt;&lt;/p&gt;
&lt;p class="entry_box04"&gt;&lt;img src="http://redline.hippy.jp/images/100228_02.png" alt="キャプチャ・検索バーに追加" /&gt;&lt;/p&gt;
&lt;p class="clear"&gt;これで自分が過去に書いたエントリを探すのも、わざわざサイトを表示してから検索ボックスを利用するっていう手順をふまなくても気になったらスグにちゃちゃっとサイト内検索が利用できますね。&lt;/p&gt;
&lt;p&gt;となると、よく見てる技術系ブログとかで、ブログ内検索を置いてるところとか追加してれば「このCSSバグ、前にあの人のブログで見たことある！」と思った瞬間にその人のブログ内検索をパパパーとできちゃったりするんですね。おーおー。すげーな。バグ等に遭遇したとき、対処方法とか覚えてなくても「この症状、あの人のブログでなんか見たことあるぞ」という記憶だけは結構残ってたりするので、いいな、これ。あとは自分はよく使うショッピングサイトとかTSUTAYA DISCAS（映画好きで利用しているのです）とか追加しました。あとでリファレンス系でいいとこないか探そう。&lt;/p&gt;
&lt;p&gt;グーグル先生で事足りるといえばそうなんですが、これで少し効率がよくなりそう。つーか、なんでこんな便利なアドオン、今まで入れてなかったんだろう･･･。きっと有名だよね。&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=EbE0upU6M_g:AS7Wwn1HwPc:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=EbE0upU6M_g:AS7Wwn1HwPc:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=EbE0upU6M_g:AS7Wwn1HwPc:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=EbE0upU6M_g:AS7Wwn1HwPc:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/EbE0upU6M_g/firefox.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/review/tool/firefox.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">tool</category>
        
        
         <pubDate>Fri, 26 Feb 2010 20:32:33 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/review/tool/firefox.php</feedburner:origLink></item>
            <item>
         <title>PHP修行 MVC復習/改善の巻</title>
         <description>&lt;p&gt;この前書いた&lt;a href="http://redline.hippy.jp/lab/php/phpmvc.php"&gt;「PHP宿題　MVC の勉強」&lt;/a&gt;のエントリのコメントでたくさんアドバイス頂いて、いろいろ改善してだいぶマシになったっぽいので復習日誌。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;まず元々のMVCとか関係ないソース&lt;/h3&gt;
&lt;p&gt;MVCを意識しないでダダダーと書いた元々のソースはこんな感じ。（前回のエントリと同じ内容だけど、名前を入力して送信ボタンを押すと「○○さん、こんにちわ。」という文が表示されるだけの内容）&lt;/p&gt;
&lt;textarea name="code" class="php" cols="40" rows="10"&gt;
&amp;lt;form action=&amp;quot;&amp;lt;?=$_SERVER[&amp;quot;PHP_SELF&amp;quot;]?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;submit&amp;quot; value=&amp;quot;送信&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;/form&amp;gt;

&amp;lt;?php
$name = isset($_POST[&amp;quot;name&amp;quot;]) ? $_POST[&amp;quot;name&amp;quot;] : NULL;
if($name){
	$name = htmlspecialchars($name);
	echo &amp;quot;&amp;lt;p&amp;gt;{$name}さん、こんにちわ。&amp;lt;/p&amp;gt;&amp;quot;;
}else{
	echo &amp;quot;&amp;lt;p&amp;gt;名前を入力してください。&amp;lt;/p&amp;gt;&amp;quot;;
}
?&amp;gt;

&lt;/textarea&gt;
&lt;p&gt;んで、これをMVCを意識して書き直したものを&lt;a href="http://redline.hippy.jp/lab/php/phpmvc.php"&gt;「PHP宿題　MVC の勉強」&lt;/a&gt;に書いたのですが、それに対しての改善案をいろいろ頂いたのです。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;改善・第一弾&lt;/h3&gt;
&lt;p&gt;「&lt;q&gt;おしい！MVCのとこもクラスだったらよかた^^&lt;/q&gt;」と言われたのでこんな感じにしてみました。&lt;/p&gt;
&lt;h4&gt;改善した点&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;モデル部分はクラスを使う！&lt;/li&gt;
&lt;li&gt;それに伴ってコントローラー部分も変更する&lt;/li&gt;
&lt;/ul&gt;
&lt;textarea name="code" class="php" cols="40" rows="10"&gt;
【Model部分】
class Hello{
public $name;
function aisatu(){
if($this-&amp;gt;name){
$this-&amp;gt;name = htmlspecialchars($this-&amp;gt;name);
return &amp;quot;&amp;lt;p&amp;gt;&amp;quot; . $this-&amp;gt;name . &amp;quot;さん、こんにちわ。&amp;lt;/p&amp;gt;&amp;quot;;
}else{
return &amp;quot;&amp;lt;p&amp;gt;名前を入力してください。&amp;lt;/p&amp;gt;&amp;quot;;
}
}
}

【Controller部分】
require_once(&amp;quot;sample_model.php&amp;quot;);
$name = isset($_POST[&amp;quot;name&amp;quot;]) ? $_POST[&amp;quot;name&amp;quot;] : NULL;
$sample = new Hello;
$sample-&amp;gt;name = $name;
$Hello = $sample-&amp;gt;aisatu();
require_once(&amp;quot;sample_view.html&amp;quot;);
	

&lt;/textarea&gt;
&lt;h3 class="tit_h3"&gt;改善・第二段&lt;/h3&gt;
&lt;p&gt;上の改善第一弾に対して更に以下のアドバイスを頂いたのでやってみました。&lt;/p&gt;
&lt;h4&gt;改善した点&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;クラスのプロパティはprivateにしてsetter/getterの仕組みを利用&lt;/li&gt;
&lt;li&gt;Helloモデル中でhtmlspecialchars()やPタグを使ってるが、これはviewに任せるべき。&lt;/li&gt;
&lt;li&gt;1クラス1ファイルにしてクラス名とファイル名を一致させるとよい。&lt;/li&gt;
&lt;/ul&gt;
&lt;textarea name="code" class="php" cols="40" rows="10"&gt;
【Model部分　ファイル名をClass_Hello.phpに変更】
class Hello{
private $name;

public function getName() { return $this-&amp;gt;name;}
public function setName($x) { $this-&amp;gt;name = $x;}

function aisatu(){
if($this-&amp;gt;name){
return $this-&amp;gt;name . &amp;quot;さん、こんにちわ。&amp;quot;;
}else{
return &amp;quot;名前を入力してください。&amp;quot;;
}

}
}


【Controller部分】
function __autoload($class){
require_once(&amp;quot;Class_&amp;quot; . $class . &amp;quot;.php&amp;quot;);
}
$name = isset($_POST[&amp;quot;name&amp;quot;]) ? $_POST[&amp;quot;name&amp;quot;] : NULL;
$sample = new Hello;
$sample-&amp;gt;setName($name);
$Hello = $sample-&amp;gt;aisatu();
require_once(&amp;quot;sample_view.html&amp;quot;);


【View部分】
&amp;lt;form action=&amp;quot;&amp;lt;?=$_SERVER[&amp;quot;PHP_SELF&amp;quot;]?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;submit&amp;quot; value=&amp;quot;送信&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;?=htmlspecialchars($Hello,ENT_QUOTES)?&amp;gt;&amp;lt;/p&amp;gt;
	
&lt;/textarea&gt;
&lt;h4&gt;改善した理由&lt;/h4&gt;
&lt;p&gt;setter/getterの仕組みや使う理由については&lt;a href="http://redline.hippy.jp/lab/php/php_settergetter.php"&gt;こちら&lt;/a&gt;。&lt;br /&gt;
ちょっと疑問に思ったけど、今回の内容のみで完結するような場合は（後で機能追加とか絶対ない場合）ここのgetName()は外から直接は使わないから書かなくてもいいんかなって思いました。それとも慣習的にsetNameおくならgetNameも必ずセットにして書いておくもの･･･？ま、ビビリなので確実に毎回セットにしてしまいそうな自分なのですが。あーでもオブジェクト指向という考え方自体が「後からでも手を入れやすい」とか「再利用しやすい」という考えを前提でやってるから必ずセットで入れておいた方がいいのか。&lt;/p&gt;
&lt;p&gt;モデル内でhtmlspecialchars()やPを使わない理由は後で表示のみ変更したいのにロジックを弄らなければならなくなるから、とのこと。&lt;/p&gt;
&lt;p&gt;そういえばSmartyでもテンプレート側でデザイナ(というかページの見た目担当の人)が{$hoge|escape}とか入れるのは同じ理由ってことですよね。となると、Smartyで修飾子つけて値を加工してるような部分ってのは全部Viewに任せちゃえばいいってことなんかな。そう考えると私的には役割分担がすごく分かりやすかったりするのだけれども･･･。&lt;/p&gt;
&lt;p&gt;1クラス1ファイルにしてクラス名とファイル名を一致させるとよい理由は、ソースが見やすくなるのと__autoload()関数なんかが使えて便利だからとのこと。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://www.php.net/manual/ja/language.oop5.autoload.php" target="_blank"&gt;クラスのオートローディング&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;確かに使ってみて「おおおおーー便利!」と実感しました。スゲーな。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;もっとちゃんと考えること　変数の命名規則&lt;/h3&gt;
&lt;p&gt;同コメント内にて、「&lt;q&gt;後は変数の命名規則に気をつけるとよいです。$Helloという変数名は違和感があります^^;&lt;/q&gt;」というお話も頂きました。んで参考サイトもお教え頂いた。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://blogs.yahoo.co.jp/nob_ll/46611277.html" target="_blank"&gt;変数名はどう付けよう？ - ホリデープログラミング入門 - Yahoo!ブログ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;よく使われる変数名やPEAR、Zendの命名規則の説明が書かれてた。メモメモ。なんかそれぞれに似てる部分と異なる部分があるのね。無難なの考えねば。とりあえず私もcamelCapsでこれから変数名は書いてみます。んでもってクラス名はUpper Camel、と。なんせちゃんと自分でルール決めて統一していけるように頑張ります。つーか、その前に英単語の勉強した方がいい気も･･･汗。&lt;/p&gt;
&lt;p&gt;知らない事いっぱい。でもすっごく楽しいですｗｗｗｗ&lt;br /&gt;
いろいろとアドバイスくださった方々、ホントにありがとうございます！&lt;/p&gt;

&lt;script type="text/javascript" src="http://redline.hippy.jp/js/dp.SyntaxHighlighter/shCore.js"&gt;&lt;/script&gt;  
&lt;script type="text/javascript" src="http://redline.hippy.jp/js/dp.SyntaxHighlighter/shBrushPhp.js"&gt;&lt;/script&gt; 
&lt;script type="text/javascript"&gt;  
   dp.SyntaxHighlighter.HighlightAll('code');  
&lt;/script&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=cKV8dsV7q8o:0USTH5A0Sps:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=cKV8dsV7q8o:0USTH5A0Sps:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=cKV8dsV7q8o:0USTH5A0Sps:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=cKV8dsV7q8o:0USTH5A0Sps:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/cKV8dsV7q8o/php_mvc.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/lab/php/php_mvc.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
        
        
         <pubDate>Tue, 23 Feb 2010 11:47:37 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/lab/php/php_mvc.php</feedburner:origLink></item>
            <item>
         <title>PHP修行 「setter/getter」を知るの巻</title>
         <description>&lt;p class="note02"&gt;&lt;ins&gt;&lt;a href="#ins_100217"&gt;2010.02.17追記　PHPでは「カプセル化」でググる&lt;/a&gt;&lt;/ins&gt;&lt;br /&gt;
&lt;ins&gt;&lt;a href="#ins_100217_2"&gt;2010.02.17追記　オブジェクト、getter/setterについての解説&lt;/a&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;この前書いた&lt;a href="http://redline.hippy.jp/lab/php/phpmvc.php"&gt;MVC勉強&lt;/a&gt;のコメントにて添削をして頂いてる最中なのですが、その中でまたもや新たなキーワードが出てきまして･･･。添削して頂いてる最中ですが、分からないコトが出てきたので、先にそっちの勉強して出直してきます。先生、すみません。しばしお待ちを･･･。そんでもって、分からなかったのがこの一文。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;q&gt;setterで値セット、getterで値取り出し。setter,getterを使うことで複数人で開発時に"誰かが勝手なルールで"$nameの値を変更してしまうことを防げる。&lt;/q&gt;&lt;/p&gt;
&lt;p&gt;ちょっと待って。「setter」「getter」は初耳。教えて！google先生(n'∀')η&lt;/p&gt;
&lt;p class="note02"&gt;(n ▼ω▼ ) ＜ &lt;a href="http://www.google.co.jp/search?hl=ja&amp;amp;source=hp&amp;amp;q=setter+getter%E3%80%80%E3%81%A8%E3%81%AF&amp;amp;btnG=Google+%E6%A4%9C%E7%B4%A2&amp;amp;lr=&amp;amp;aq=f&amp;amp;oq=&amp;amp;as_qdr=y15" target="_blank"&gt;setter getter　とは - Google 検索&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;PHPのそれについて書かれているサイトがなかなか見当たらないのだけれども、とりあえず言語を問わず、「オブジェクト指向」に関するキーワードのようだ。多分。ここからはいろんなサイトで情報をあさりつつ、足りない頭をフル回転して自分なりに自問自答、解釈した内容。間違ってたらツっこみお願いします＞＜&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;「setter/getter」は何のために？&lt;/h3&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;publicなプロパティは隠したい。これがことの始まり。&lt;/li&gt;
&lt;li&gt;隠したいのはなぜ？→外から直接アクセスするのはよくないから。&lt;/li&gt;
&lt;li&gt;なんで直接アクセスはダメなのか？→クラスのプロパティにクラスの外から直アクセスして値を書き換えるコト自体が基本的によくないの！&lt;/li&gt;
&lt;li&gt;なんで？→そういうものなの！『複数人で開発時に誰かが勝手なルールでプロパティの値を変更してしまうことを防げる。』ってコメントで教えてもらっただろーがー！ああ、なるほど。&lt;/li&gt;
&lt;li&gt;んじゃ直アクセスせずにどうしようか？→だから「setter」「getter」の仕組みを使うんだってば。&lt;/li&gt;
&lt;li&gt;どゆこと？→プロパティに直アクセスするんじゃなくて、setメソッドを用意してプロパティの値をセット、getメソッドを用意してそれを返してあげる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、プロパティへ直接アクセスじゃなくて一旦メソッドを経由してプロパティをいじろうね、ということらしい。多分。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;では、そのやり方は？&lt;/h3&gt;
&lt;p&gt;マニュアル探しまくったけど「setter」も「getter」もない。「set」も「get」ない。似た感じで怪しいのはあったんだけど→&lt;a href="http://jp2.php.net/__set" target="_blank"&gt;PHP: オーバーロード - Manual&lt;/a&gt; なんかコレが近い気がする。しかし「&lt;q&gt;オーバーロードメソッドが起動するのは、 宣言されていないプロパティやメソッドを操作しようとしたときです。 &lt;/q&gt;」と書いてある。いや、私はプロパティを宣言している。従ってこれは関係ないと判断。が、「&lt;q&gt;また、現在のスコープからは アクセス不能な  プロパティやメソッドを操作しようとしたときにも起動します。&lt;/q&gt;」とも書いてある。わからん。一体何の話だ。これは日本語なのか？難しいよぉ･･･。とりあえず一旦スルー。&lt;/p&gt;
&lt;p&gt;で、何？結局どうすればよいの？って一瞬ひるんだけど、私は諦めないっ。&lt;br /&gt;
「おう、私はred_hippy、あきらめの悪い女･･･」&lt;br /&gt;
これ便利ですよと教えてもらったジェネレータのURLへアクセス！&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://www.shuchow.com/gettersetter.html" target="_blank"&gt;PHP Getter Setter Generator&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なんか適当に下のExample Codeの変数の辺りをコピペして「Go」クリック！&lt;br /&gt;
何回かやってみたけど意味分からない。「一体何するものコレ？」状態。８回くらい「Go」をクリックしてからやっとピーン！と繋がったｗｗｗｗｗ&lt;br /&gt;
あぁ、自分でそれを用意するのですね。そのためのこのツールなのですね（恥&lt;/p&gt;
&lt;p&gt;気付くの遅くてごめんなさい。愚かな私でごめんなさい。自分の脳内ではそれらは勝手にPHP側で用意してくれてる関数か何かの中に「set」とか「get」とかあってそれを利用するんじゃないかと思い込んでました。全然違ってました。ごめんなさい。自分で用意するのですよ、皆さん。ピーンときたと同時に、このジェネレーターツールが便利というその意味も分かりました。確かにコレ使ったほうが早い。便利だー！&lt;/p&gt;
&lt;p&gt;こういうのを自分で用意すればよい、と。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;「setter」「getter」を使う理由&lt;/h3&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;「setter」「getter」を利用すれば、複数人で作業をする際にも他の人間が勝手に予想外の値を入れたりして「アーーー！」ってなるのを防げる。&lt;/li&gt;
&lt;li&gt;「setter」「getter」を利用していれば、それらの内容が変わっても呼び出す側には影響しない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こんなページも発見。&lt;/p&gt;
&lt;p class="note02"&gt;&amp;gt;&amp;gt;&lt;a href="http://www3.atword.jp/yref/2009/03/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%A7-gettersetter%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%92%E4%BD%BF/" target="_blank"&gt;» オブジェクト指向プログラムで getter/setterメソッドを使わなければならない 10の理由 Pattern: Pattern Ref　—自分用覚書&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;書いてある事の半分も分からないけれども一番最後の理由が超分かりやすい。&lt;/p&gt;
&lt;p&gt;&lt;q&gt;&lt;strong&gt;オブジェクト指向とはそういうものである。&lt;/strong&gt;&lt;/q&gt;&lt;/p&gt;
&lt;p&gt;うおー。なんか超カッケー。そういうものなのですよ、きっと。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;疑問に思ったこと/ググっても分からなかったこと&lt;/h3&gt;
&lt;h4&gt;PHPはsetterで値のチェックはできないの？&lt;/h4&gt;
&lt;p&gt;PHPに拘らずサイト巡りをしていると、setterで値の型をチェックできるという風な話が出ていたのだけれど（数値を入れる変数に文字は入れない様にできるとか）それはPHPではどう書けばいいのだろう？全然見当違いな話なのでしょうか･･･はて？&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;↑自前でチェックコードを記述すればいいだけの話だった。なんか特殊な型を調べる書き方とかあるのかと勝手に思い込んでた＞＜&lt;/ins&gt;&lt;/p&gt;
&lt;h4&gt;なんでPHPではsetter,getterを使わないの？&lt;/h4&gt;
&lt;p&gt;もう一度頂いたコメントを読み返してみると『&lt;q&gt;&lt;strong&gt;※PHPではsetter,getterがない例も多い。&lt;/strong&gt;&lt;/q&gt;』と。それはなぜ？まぁPHPだからとか言語に拘って考えるのが違ってるのかもしれない。オブジェクト指向だからこういうsetter,getterという考え方をするも良いという話なのかもしれない。そういうことにする。&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;↑コメントにて「&lt;q&gt;PHPはスクリプト言語なのでgetter,setterを使うとコードが冗長になって速度面などで不利になるからかなぁなんて思ったり。あとはcakePHPなどのフレームワークを使うとgetter,setterなんかは見えないのでみんな気にしてないんじゃないかな^^;&lt;/q&gt;」という意見を頂いた。&lt;/ins&gt;&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;PHP5では、__set/__get がある！&lt;/h3&gt;
&lt;p&gt;&lt;ins&gt;&lt;strong&gt;&lt;del&gt;追記：すみません。違ってましたｗ　以下すっげー変なコト書いてます。&lt;br /&gt;
ここから下はちょっと間違ってる内容のようです。再びMVCのページのコメントで「未定義のプロパティを取得・設定しようとしたタイミングで呼び出されるメソッドなので、getter,setterとはちょっと違いますね。」と教えていただきました。この部分、全部削除してしまおうかとも思ったんですが、短時間でも一度公開してしまったので、一応そのまま残しておきます。勉強記録的な感じで･･･。が、スルー推奨。&lt;/del&gt;&lt;/strong&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;三度追記･･･いや、「間違い」ではなかったみたい。頂いたコメントより抜粋。コメント「&lt;q&gt;__get,__setはgetter,setterとしても使えるので「間違い」ではないです。下のPHP公式マニュアルのオーバーロードの例ではsetter,getterとして使用してます。&lt;br /&gt;
&lt;a href="http://php.net/manual/ja/language.oop5.overloading.php" target="_blank"&gt;オーバーロード&lt;/a&gt;&lt;/q&gt;」&lt;br /&gt;開発のスタイルにあったものを選択すると良いらしい。&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;で、上で書いた&lt;a href="http://jp2.php.net/__set" target="_blank"&gt;PHP: オーバーロード - Manual&lt;/a&gt;について悶々としてると、ナイスタイミングできのこ先生から追加コメントｷﾀ━━━━(°Д°)━━━━!!!!&lt;/p&gt;
&lt;p class="note02"&gt;&lt;q&gt;PHP5からは__set,__getというマジックメソッドがありますね。プロパティをprivateで宣言すれば、このマジックメソッドが自動で実行されるらしい。自分のルールでset,getしたい場合はこれらのメソッドをオーバーロードすればよいです。&lt;/q&gt;&lt;/p&gt;
&lt;p&gt;先生、ホントにいいタイミングのコメントです。ネ申サンクス。どこかから私の今の様子を覗いているのではないかというくらいのタイミングでした。&lt;/p&gt;
&lt;p&gt;ということで、私はPHP5を修行中なので、こちらの「__set」「__get」を利用するとよいのですね。&lt;/p&gt;
&lt;h4&gt;つーことで、ちと実験タイム&lt;/h4&gt;
&lt;p&gt;こんな感じで試してみました。&lt;/p&gt;
&lt;textarea name="code" class="php" cols="40" rows="10"&gt;
class Test
{
	private $sample;
	public function __set($key, $value){
		echo &amp;quot;__set()しましたー！\n&amp;quot;;
		$this-&amp;gt;$key = $value;
	}
	public function __get($key){
		echo &amp;quot;__get()しましたー！\n&amp;quot;;
		return $this-&amp;gt;$key;
	}
}
	
$test = new Test();

$test-&amp;gt;sample = &amp;quot;これはテストです。&amp;quot;;
echo $test-&amp;gt;sample;
//var_dump($test);
&lt;/textarea&gt;
&lt;p&gt;こうすることで、呼び出す側ではプロパティを直接呼び出してるような感じで実はメソッドを経由して呼び出してるっていう仕組みになるんですね。へぇーー。いやでも「ホントに分かった？」と聞かれるとsetter,getterを使う理由や意味は分かったけど、なんか変なことになってるんです。上に書いたソースがどこか間違っているのかもしれないんですが、何か適当に例えばこういうのを追加すると「$test-&gt;sample2 = "これはテスト２です。";echo $test-&gt;sample2;」それが普通に出てくるんです。頭が半分寝てて何かおかしなことをいってるのかもしれない。あれれ。クラスの中で定義してない変数ってこういう風にしたら出てくるんだっけ･･･。根本的にクラスの所から間違ってるかも･･･。ダメだ。寝てます。もう頭回ってない＞＜&lt;br /&gt;
明日もうちと練習します＞＜&lt;/p&gt;
&lt;p&gt;関係ない話ですが、こういうの教えてもらう時に「○○するとよいです。」って言い切りの形で言ってもらえるとすごくありがたいですね。勇気100倍。100%勇気。眠たくなってきて変なテンションでごめんなさい。&lt;/p&gt;
&lt;h3 class="tit_h3" id="ins_100217"&gt;2010.02.17追記　PHPでは「カプセル化」でググる&lt;/h3&gt;
&lt;p&gt;一夜明けて朝からTwitterで&lt;a href="http://twitter.com/kamiyam" target="_blank"&gt;@kamiyamさん&lt;/a&gt;と&lt;a href="http://twitter.com/redsnow_" target="_blank"&gt;@redsnow_さん&lt;/a&gt;からアドバイスを頂いた。んでもって「PHPだとこのあたり調べるといいかも」と新たなキーワード「カプセル化」という言葉を知った。聞いた事はあったけど、ちゃんと意味わかってなかった。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://www.google.co.jp/search?hl=ja&amp;amp;source=hp&amp;amp;q=PHP+%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96&amp;amp;btnG=Google+%E6%A4%9C%E7%B4%A2&amp;amp;lr=&amp;amp;aq=f&amp;amp;oq=&amp;amp;as_qdr=y15" target="_blank"&gt;&amp;gt;&amp;gt;PHP カプセル化 - Google 検索&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;これはまさに昨日の夜戦ったsetter,getterの考え方なのでは！&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://phpc2.seesaa.net/article/50655776.html" target="_blank"&gt;&amp;gt;&amp;gt;php フレームワーク・オブジェクト指向入門: カプセル化&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.objectphp.jp/category/encapsulation/" target="_blank"&gt;&amp;gt;&amp;gt;「カプセル化」のアーカイブ | オブジェクト指向PHP&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上の方のページのサンプルソースではこの考え方を利用するメリットがよく分かった。確かにそうしておくと仕様変更になった場合でも楽ですねー。&lt;/p&gt;
&lt;p&gt;そしてもう一つ、お約束事みたいなのも書いてあった。「&lt;q&gt;読み込み用のメソッド名は、&lt;strong&gt;getプロパティ名&lt;/strong&gt;、書き込み用のメソッド名は、&lt;strong&gt;setプロパティ名&lt;/strong&gt;&lt;/q&gt;」とするとよいのですね。（多分別にそうでなくてもいいのだけと思うけど、頭にgetやsetを付けると分かりやすいし一般的によく使われてるよという意味なのではないかと思う）&lt;/p&gt;
&lt;p&gt;そして「&lt;q&gt;こういった単純なゲット、セットだけをするメソッドを&lt;strong&gt;アクセサメソッド&lt;/strong&gt;といいます。&lt;/q&gt;」と。getterメソッドとsetterメソッドの総称みたいなものをアクセサメソッドというってことでいいのかな。getterとかsetterの事をまとめてアクセサメソッドって言うよ、みたいな。&lt;/p&gt;
&lt;h3 class="tit_h3" id="ins_100217_2"&gt;オブジェクト、getter/setterについての解説&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://twitter.com/ukstudio" target="_blank"&gt;@ukstudioさん&lt;/a&gt;さんがオブジェクト、getter/setterについての解説エントリを書いてくださいました。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://ukstudio.jp/2010/02/17/php/" target="_blank"&gt;UK STUDIO - PHPについて適当に&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;全然適当じゃない。むしろ理解度がかなりレベルアップした気がします。お忙しい中、わざわざありがとうございました！感謝します！&lt;/p&gt;
&lt;p class="note02"&gt;&lt;q&gt;&amp;gt;例えばあるデータには数値だけ、文字列だけ入れたいというチェックもsetterでやることができる。&lt;/q&gt;&lt;/p&gt;
&lt;p&gt;上の方で疑問に思ったことの部分に書いたけど、やっぱりそういうことできるんだ。&lt;del&gt;やり方が分からない。後でもっとググってみます。&lt;/del&gt;&lt;ins&gt;自前でチェックコードを記述すればいいだけの話だった。なんか特殊な型を調べる書き方とかあるのかと勝手に思い込んでた＞＜&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;メンバ変数をこういう風にまとめたらいいよの例の部分、すごく納得でした。奥深そうでまだ完璧に分かってないけど、なんせ修正する際の手間減るような考え方も必要ってことですよね。なるべくシンプルな書き方をして再利用しやすくしておくってのも大事なのかなと思いました。&lt;/p&gt;
&lt;p&gt;もっともっと知りたくなりました。ホントにありがとうございました！&lt;/p&gt;
&lt;script type="text/javascript" src="http://redline.hippy.jp/js/dp.SyntaxHighlighter/shCore.js"&gt;&lt;/script&gt;  
&lt;script type="text/javascript" src="http://redline.hippy.jp/js/dp.SyntaxHighlighter/shBrushPhp.js"&gt;&lt;/script&gt; 
&lt;script type="text/javascript"&gt;  
   dp.SyntaxHighlighter.HighlightAll('code');  
&lt;/script&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=Lo81l3xo65M:_ZwuCQuTLMA:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=Lo81l3xo65M:_ZwuCQuTLMA:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=Lo81l3xo65M:_ZwuCQuTLMA:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=Lo81l3xo65M:_ZwuCQuTLMA:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/Lo81l3xo65M/php_settergetter.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/lab/php/php_settergetter.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
        
        
         <pubDate>Wed, 17 Feb 2010 00:39:55 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/lab/php/php_settergetter.php</feedburner:origLink></item>
            <item>
         <title>素敵★ノンプログラマのためのPHP入門</title>
         <description>&lt;p&gt;この前「&lt;a href="http://redline.hippy.jp/lab/php/php_9.php" target="_blank"&gt;PHPを勉強する事についてデザイナが思う事。&lt;/a&gt;」っていうエントリを書いたのですが、たくさん見てくれてありがとうございますです。Twitterでも「何かあったら聞いてね」的なメッセージを頂けてとても幸せな気持ちになりました。ああいうの書くの恥ずかしかったけど公開してよかったｗ&lt;/p&gt;
&lt;p&gt;どこからアクセスされているのか、リンク元を見るのが大好きなので、いろいろ見てたんですが、Twitter経由のアクセスがすげーーｗｗｗとか思ってました。Twitter恐るべしです。まじで。そんでもって、このつぶやきを発見したのですよ。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://twitter.com/seltzer/status/9011901339" target="_blank"&gt;この記事で思いつきましたが、USTREAMでノンプログラマのためのPHPオンライン講座とか開催したら、参加してくれる人いるかな？＞http://redline.hippy.jp/lab/php/php_9.php&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Followしている方ではなかったので、その場で「お願いします！してください！是非！」とは言わなかったのですが、もし実現したら絶対見たいなーと期待しまくりで待ってたらホントにしてくださった！行動早っ。動き早い人は尊敬しまくりです。自分もそういう人になりたい。素敵素敵素敵★&lt;/p&gt;
&lt;p&gt;んで、そのUSTREAMがこちら。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://www.ustream.tv/recorded/4721906" target="_blank"&gt;vol.01 ノンプログラマのためのPHP入門, Recorded on 10/02/14 h2ospace on USTREAM. Technology&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;そうそうそうそう。ノンプログラマの向けのこういうのを待ってた！ありがたやーありがたやー！タイムリーでは参加できなかったのですが、録画、全力で見ました。朝からめっちゃ勉強になりました！&lt;/p&gt;
&lt;p&gt;すごく分かりやすく初心者向けのお話をしてくださってます。専門用語も初心者にもわかりやすい例えを用いて説明してくださってて、とっつきやすいです。実際にソース内の一部の記号を実体参照に変換するツールを作ろうということで、画面を見ながら一緒に自分用のツールを作るという試みも。目の前で先生が一緒にエディタ使って説明してくれてる感じです。&lt;/p&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;プログラムは外国語を勉強するような感じ。&lt;/li&gt;
&lt;li&gt;言葉だけはしっかり理解する。&lt;/li&gt;
&lt;li&gt;俺ツールを作る。&lt;/li&gt;
&lt;li&gt;叩かれて人は育つ。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ということで、ノンプログラマだけどプログラムに少しでも興味がある人は、是非見るべし！です。とりあえず動画の最後に「こんなツール作ってみたら？」というのがあったので、とりあえずそれを練習しまつ！課題があるのってありがたいですね。やる気出まくり。&lt;/p&gt;
&lt;p&gt;そして、「Zen Coding」にもめっちゃ興味もちました(n'∀')η&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=L5ghwj4wNEI:qslbpQPjDDI:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=L5ghwj4wNEI:qslbpQPjDDI:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=L5ghwj4wNEI:qslbpQPjDDI:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=L5ghwj4wNEI:qslbpQPjDDI:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/L5ghwj4wNEI/php_10.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/lab/php/php_10.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
        
        
         <pubDate>Mon, 15 Feb 2010 10:05:33 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/lab/php/php_10.php</feedburner:origLink></item>
            <item>
         <title>PHPを勉強する事についてデザイナが思う事。</title>
         <description>&lt;p&gt;先日、こちらのエントリを拝見して･･･&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://blog.livedoor.jp/takejune/archives/51421677.html" target="_blank"&gt;デザイナーがwebサービスを10週間で作れるようになる方法。または私は如何にしてPHPを愛するようになったか。 - ウェブ狂の詩&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なんかいいなぁ･･･って。PHPを今勉強している自分としては、こういうお話大好きです。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;激しく同意→「デザイナーはphpを覚えると楽しいよ！」&lt;/h3&gt;
&lt;p&gt;自分はまだ何かwebサービスが作れるとか、そんな高度なレベルではない初心者ですけど、とりあえず今PHPの勉強するのがすごく楽しいです。&lt;/p&gt;
&lt;p&gt;本業はデザインやコーディングがメインで、実務でPHPと言われれば他のプログラマさんが作ったシステムを設置・デザインをカスタマイズする程度。自分で1から何かを使って何か大きな事をするという機会にはまだ遭遇してないんですが（最近ちょこっとしたスクリプトは実務で自分で用意させてもらったりして、それはそれで感動しました）、とりあえず勉強するのはすごく楽しい。知らなかった事と中途半端だった知識がピーン（←ニュータイプの効果音）と連結する瞬間に遭遇した時とか「うひょーー」ってなります。&lt;/p&gt;
&lt;h4&gt;選択肢が増えたよ&lt;/h4&gt;
&lt;p&gt;以前は何かプログラムが必要ならば、プログラマさんにお願いするか、もしくはネットで配布されているものを探すか･･･。選択肢はそういう感じでした。自分で作るという道は考えもしませんでしたし。&lt;/p&gt;
&lt;p&gt;環境によるとおもいますが、基本的にデザイナは、最初から誰かが作ってくれたプログラム一式をこう設置したら動作する、デザイン面はこうやって手を入れる、こう使えばこういう結果が出てくる。それだけ知ってればなんとかなっちゃうんです。プログラムを作ることは求められてないし、基本的な知識があればなお良いけどね、程度のレベルです。あまりテンションの上がる話ではないんですが、私のやってる規模の案件ではそんな感じです。&lt;/p&gt;
&lt;p&gt;もちろん「一応この知識だけは勉強しておかなきゃ」という事は勉強しますが、レベルの高低に関わらず断片的な知識だけが増えていく感じなんです。例えば、MySQL使うモノがあるからとりあえずローカルに環境作らなきゃならないとか、接続方法知っておかなきゃならないとかphpMyAdmin使えなきゃならないとか何かエラーが出てるよ、こうすれば直るんだな、とか。別に自分でデータベース作って何かするわけではないのにそういう断片的な知識だけが増えていくんです。&lt;/p&gt;
&lt;p&gt;それが、ちょこっとした内容のプログラムなら「自分で作れる」という選択肢が増えました。これはとても大きい。自分は代理店から請けてる仕事と個人として請けてる仕事があるんですが、代理店経由の方は向こう側にプログラマさんもいるし、いざとなったら何とでもなるんですが、今まで個人で請けてる案件が問題でした。&lt;/p&gt;
&lt;p&gt;予算はないけどプログラムが必要だ、という状況がたまにあるんですが、予算ないと言われると今までの「自分で作る」選択肢がない時は全力で必要機能を満たしたフリーのスクリプトを探しまくらねばならんかったのです。これが意外と面倒だし大変。当然後から機能を増やしてとか言われても増やせないし。そうなるとまた探しなおしです。自分がプログラマだったらどれだけこの無駄な時間が省略できるだろうとか思ってました。&lt;/p&gt;
&lt;p&gt;まだ自分は大した事はできないですが、少しずつできる事が増えてて、ちょこっとしたものなら自分で提供できるようになりました。楽になった。気持ち的に。会社勤務のデザイナさんはあまりこういう気持ちにはならないかもしれないですが、個人でやってるとデザイナ同士の横の繋がりはできてもプログラマさんとの横の繋がりがなかなか見つからなくて相談できる人もいなくてオロオロする瞬間があるんですね。どうしよっどうしよっ！ってなって、胃かキリキリするような。だから個人でやってるデザイナこそプログラムを勉強すると幸せになれるのでは、とか思ってます。&lt;/p&gt;
&lt;h4&gt;使い道はユーザーに提供する場面だけじゃなかった&lt;/h4&gt;
&lt;p&gt;自分が勉強しはじめるまでは、こういうのって外に公開するために勉強するものだっていう固定観念みたいなものにとらわれてました。だけどちょっと落ち着いて考えてみると、自分の作業を少し楽にするために使うこともできました。下記は以前PHPの勉強日記として書いたエントリなんですが、&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://redline.hippy.jp/lab/php/post_51.php" target="_blank"&gt;全角数字⇔半角数字・全角カナ⇔半角カナ変換&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://redline.hippy.jp/lab/php/dat_xml.php" target="_blank"&gt;dat から１行ずつ抜き出して xml 書き出し&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://redline.hippy.jp/lab/php/php_6.php" target="_blank"&gt;画像にロゴ(ウォーターマーク)を入れる&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;こういうのって探せば専用のフリーソフトやwebサービスもあるとは思うんですが、自分でPHPを使って作ってみると好きにできるので･･･楽しいし手作業でやるよりなんぼか早いよっていうお話。外部に出して使うものでなくても、自分の手元での作業を少しでも楽にしちゃう使い方もできるんだなーと。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;でも、神が身近にいません&lt;/h3&gt;
&lt;p&gt;上記サイトの方は身近な神がいらっしゃるそうですが、自分にはいません。以前は仕事を頂いてる代理店に私なんかにも優しくしてくれる神的な存在がいらっしゃったのですが、今はどこか遠い所へ転職されてしまいました。がーん。&lt;/p&gt;
&lt;p&gt;身近にPHPのこと、気軽に質問できる人がいるのといないのでは随分差が出てくるのではないかとマジで思います。&lt;/p&gt;
&lt;h4&gt;今更聞けない、恥ずかしくてネットで聞けない&lt;/h4&gt;
&lt;p&gt;「多分これって初歩的な事だよね･･･ブログとかTwitterで誰かに聞けばもしかしたら教えてもらえるかもしれない。でも会った事のない誰かに聞くの失笑されそうで恥ずかしいわｗｗｗ」と思う瞬間が多々あります。こんな時、身近に神がいてくれたら･･･と思ふ。&lt;/p&gt;
&lt;p&gt;まぁ、散々このブログでも初歩的な恥を晒しているので今更何を言ってるんだという感じもあるし、元々能力も知識もないのにカッコつけんなって話なんですが。&lt;/p&gt;
&lt;h4&gt;こういうレベルの質問ができる相手が欲しい&lt;/h4&gt;
&lt;p&gt;具体的に言うと、こういう質問がしてみたいです。&lt;/p&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;ソースの最後に「?&gt;」をつけないってどういうこと？まじなの？&lt;/li&gt;
&lt;li&gt;これセキュリティ的にＯＫでしょうか･･･？&lt;/li&gt;
&lt;li&gt;結果としては問題なく動いてるけど、書き方はおかしくないですか？&lt;/li&gt;
&lt;li&gt;などなど･･･&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ググレカスで秒殺できる内容のしょーもない質問は自分で調べろやって話ですが、なんかこういう質問がサラっとできる神がいてくれたら幸せになれる気がするのです。&lt;/p&gt;
&lt;h4&gt;神がいたらモチベーションが保てる気がする&lt;/h4&gt;
&lt;p&gt;あと、技術的な事だけでなく、神がいるからモチベーションが保てるという意味でも存在感大きそうだなと思います。私去年からここのブログでPHPの勉強日記みたいなのを書きはじめたんですが、その前の数年間も勉強する→挫折する→もっかい1から勉強する→モチベーション下がって挫折→もっかい1から（ｒｙ･･･の繰り返しだったんですよ。&lt;/p&gt;
&lt;p&gt;なんでわざわざ「もっかい1から」の手順になるのかといえば、「心機一転！」みたいな気持ちのしきりなおし的な意味でもあるんですが、理解したつもりで完全に理解してないから、なんでしょうねぇ･･･。&lt;/p&gt;
&lt;p&gt;神がいたら「神に前いろいろ教えてもらったし、あーもっと勉強続けなきゃ！」「せっかく親切に教えてくれたんだから頑張って期待に応えたい！」とか、挫折しそうになっても、その人がいるから踏ん張れるみたいな状況になるかもしれない。&lt;/p&gt;
&lt;p&gt;しかし、もし神が身近にいたとしても、私は神から何か教えてもらっても神にお返しできる能力がないや。神がHTMLとかCSSとか興味あるなら返せるかも、だけど。&lt;/p&gt;
&lt;p&gt;そんなこんなで、神がいないので諦めて自分を追い込むためにブログで「そろそろPHPの勉強本気出す」宣言をしてからはなんとか今日まで続いてる。実務に時間とられて、なかなか勉強する時間が確保できない時期も去年後半はあったんですが、「もっかい1からやりなおし」はしてない。多分、ブログに書いた内容まではちゃんと身についてるんだと思う。だから継続して勉強できない時期があっても続きから続きから･･･でやれるようになった。これはなんか成長してる感じがして嬉しい。&lt;/p&gt;
&lt;h4&gt;テンション上げてくれてありがとう&lt;/h4&gt;
&lt;p&gt;私の勉強熱がまだ途切れてないその他の要因。みんなのお陰で続いてます。&lt;/p&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;ついったーで「勉強がんばってるね」って言ってくれてありがとうございます。&lt;/li&gt;
&lt;li&gt;コメントやブクマでいろいろアドバイスしてくれてありがとうございます。&lt;/li&gt;
&lt;li&gt;相方よ、「デザイナ・コーダーなのによくこんなに頑張ってるね」と言ってくれてありがとうございます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;頼む。定期的にそれ言ってくれ。ウソでもいいから言ってくれ。最近PHPの勉強日記書いてないなとふと思った方、気づいた時に言ってくれ。頼むっ。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;デザイナの私が理解できなかったこと・間違ってたこと&lt;/h3&gt;
&lt;p&gt;これは私が馬鹿なだけって話かもしれませんし、すべてのデザイナさんがそういうレベルだと思っているわけでもないです。おそらくプログラマ脳の方からすると何いってんの？バカじゃね？って話だと思うんですけど、最初間違えてたなぁと今になって思う事です。&lt;/p&gt;
&lt;h4&gt;関数をある程度知った後、どうしていいのかわからない&lt;/h4&gt;
&lt;p&gt;私は、関数を組み合わせてロジックを用意するという考え方自体ができませんでした。他の人が書いたソースを見れば「それが何をしているのか」は理解できるんですよ。関数自体は調べながらでも何でも意味はなんとかなるので。でも自分で1から書けと言われると手順がまったく考えられない。分からない。できない。&lt;/p&gt;
&lt;p&gt;だから参考書にそって勉強していっても何もできないまま。最終的に「何か作ってみよう」の章に書いてあるサンプルアプリもそこに見本があるからそのまま写せば動くし、やってる内容は調べながら理解はできるけど、自分では1から書けない。&lt;/p&gt;
&lt;p&gt;とりあえず一通り本の通りに動かしてみた。「で？」という状態から抜け出せない日々が長かったです。実務で「これを作らなきゃならない」という目的があればもっと早くこの段階を乗り越えられたと思うんですよ。だけど如何せん、デザイナには「こういうプログラムを作れ」という指示はおりてきません。ここ、第一の壁でした。&lt;/p&gt;
&lt;h4&gt;作りたいものがないまま勉強してしまう&lt;/h4&gt;
&lt;p&gt;すごく漠然とした言い方なんですが、いくら関数の意味を知っても「何ができるのか」をまったく想像できなかったんです。「日付を取得するにはこれを使います→はい。サンプルソース試した→理解した。」「ファイルに書き込むのはこの関数です→はい。サンプルソース試した→理解した。」それでその後、何もしないままでした。何かを作りたいからその手段を知るために勉強するのではなくて、なんとなく勉強しなきゃならない気持ちになって読書してただけ、みたいな。&lt;/p&gt;
&lt;p&gt;初心者向けの参考書って変数とは何かみたいな所から始まって、繰り返し処理とか条件分岐、関数の説明とか、そういう流れで進んでいって、最後の方の章には何か作ろう、という流れになってるんだけど、そこで高度すぎて挫折したり。&lt;/p&gt;
&lt;p&gt;その中間をどうしていいのか分からなくて、それぞれの関数にサンプルソースは載ってるけど、その後「で？」っていう。「関数の勉強する→関数の意味理解した→終わり」になってたんですね。もったいない時間の使い方をしてました。&lt;/p&gt;
&lt;h4&gt;網羅しなくても全然大丈夫だった&lt;/h4&gt;
&lt;p&gt;それまでは無駄に関数ばっかり追いかけて、網羅しないといけないんじゃないかという錯覚に陥ってたんですが、そんなのは後から調べながらでも十分いけると分かりました。&lt;/p&gt;
&lt;p&gt;CSSやHTMLと一緒である程度よく使うものってのは決まってて、それらは使用頻度が高いから何か自然と覚えられるし、一回自分で1から書いてみると、ふとした時に「あ、この処理、前にもやったことがある！」って自分がやった事を思い出すことが出来るんですね。んでコピペ、みたいな。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;勉強方法を改めたら一歩進めた&lt;/h3&gt;
&lt;h4&gt;いい加減に自分で1から書いてみようぜという気になった&lt;/h4&gt;
&lt;p&gt;去年、ブログで「PHP勉強、本気出す」宣言をしてからは「実際に何かを作る」という目的を先に用意して、どんな機能が必要か、それためにはどんな関数を使えばいいか、どういう手順で処理をしたらいいのかっていう事をちゃんと自分で考える勉強に変えました。&lt;/p&gt;
&lt;p&gt;これ、当たり前の勉強方法ですよね。だけど、なぜか私はずっとこの勉強方法ができなかったんです。人のソース見て分かった気になって終わりじゃいけないと思ってるけど、その段階から先に進めなかったというか。面倒そうに思ってたのかな。必要に迫られてないから。&lt;/p&gt;
&lt;p&gt;人のソースを真似するだけじゃなくて、一旦1から自分で書いて躓いたらマニュアルや他の人のソースを見て自分がやりたい事をやってる部分を探すっていう手順で勉強しはじめたらどんどん『何か』が分かってきた。その『何か』が分かってくるとどんどん楽しくなってきた。残念なことにその『何か』っていうのがうまく文章で説明できないのですが、『何か』というものがそこにはあるんです（ｷﾘｯ&lt;/p&gt;
&lt;p&gt;そしてその段階になると逆引きリファレンスを読むのが楽しくて仕方なくなってきた。あーこの機能つけたいー！とかワクワクするようになってくる。&lt;/p&gt;
&lt;h4&gt;日本語で処理の道筋を考えた&lt;/h4&gt;
&lt;p&gt;私がまったく理解できなかった処理の道筋の立て方についての話ですが、最初からソースを書こうとしても私の頭のキャパオーバーで無理だったので、まずは関数とかそういうの一切無視で日本語で順番にどういうことをすればいいのか考える事にしました。例えばこういう感じ。&lt;/p&gt;
&lt;ol class="entrylist02"&gt;
&lt;li&gt;入力用フォームを作る。&lt;/li&gt;
&lt;li&gt;受け取ったデータを変数に入れる。日付、ログ用ファイルも変数に。&lt;/li&gt;
&lt;li&gt;フォームの送信ボタンが押されたら。&lt;/li&gt;
&lt;li&gt;タイトルと本文の中身が入ってたらエスケープ。本文の改行文字はbrに変換。&lt;/li&gt;
&lt;li&gt;それぞれの変数を配列にしてタブ区切りで結合する。&lt;/li&gt;
&lt;li&gt;ログ用ファイルを開いてロック。&lt;/li&gt;
&lt;li&gt;一行に結合してたデータをログ用ファイルに書き込む。&lt;/li&gt;
&lt;li&gt;ロックを解除してログ用ファイルを閉じる。&lt;/li&gt;
&lt;li&gt;表示のためにログ用ファイルを読み込んで配列に。&lt;/li&gt;
&lt;li&gt;分解して変数に値をセットしてログ用ファイルの中身の数だけループ。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;こういうのってプログラマさんは頭の中でパパーと整理しながら順序だててソースを書けるんだと思うんですが、私は最初まったくできませんでした。どんな処理が必要なのかなって紙に書き出して、順番はどうしたらいいかなって番号順に並べて･･･みたいなことやってました。&lt;/p&gt;
&lt;p&gt;一通り日本語で流れを書いた後に、それぞれがどうやったら処理できるのか、必要な関数やらなんやらを先に調べて日本語で書いた手順をソースに変換してきました。そしたらなんとかなった。もしかしたら変なソースかもしれない。でもやりたいことはとりあえずできた。&lt;/p&gt;
&lt;p&gt;もしもデザイナやコーダー業の方で私と同じように処理の手順を自分で考えられねーっていう同類の方がいらっしゃったら日本語でまず書いてみる方法、オススメします。素人の私がオススメしますって言ってもまったく説得力ないですけど、私は何回か日本語で全部手順考える方法を繰り返してるうちに、知らない間に1から手順を日本語で書かなくても頭の中でこういう手順でやればいいんじゃないかって「予想」していきなりソース書き始められるようになりました。&lt;/p&gt;
&lt;p&gt;いや、もちろん日本語で書いても書かなくても私レベルではどこか何かの処理が抜けててうまくいかなくて後で「あーこれ入れなきゃ」っていうのを追加したりしてるんですが。まぁよかったら試してください。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;余談･･･プログラマさんへ&lt;/h3&gt;
&lt;p&gt;不躾なお願いではありますが、デザイナに渡すデータの中に font とか b とか入れないでくれると嬉しいです。あ。あとHTMLの要素は大文字じゃなくて小文字だともっと嬉しいです。あ、あとbrは&amp;lt;br&amp;gt;じゃなくて&amp;lt;br /&amp;gt;が好みのタイプです。&lt;/p&gt;
&lt;p&gt;いや、もちろん言わんとすることは理解できるんですよ。エラー文だから赤字にしたいですよ、太字にしたいですよ、私も。ええ、わかりますとも。しかしながらですね、できたらそういうタグの代わりにclass=&amp;quot;error&amp;quot;とか、何か、そういうのだと幸せなんだけどなぁとか思っちゃうんです。ええ、もちろんスタイルはあとでこっちで挿入でもOKですとも。&lt;/p&gt;
&lt;p&gt;あ。確かに個々の仕様によりますよね。そうですよね。嫌ならまとめて置換すればって話ですよね。そうですよね。&lt;/p&gt;
&lt;p&gt;直接やりとりできるプログラマさんに何かをお願いするときは、最初にそういう約束事を作ることもできるけど、よその業者さんのプログラムを購入する時とか、ふと上のような事を思ってしまいますっていうお話でした。&lt;/p&gt;
&lt;p&gt;あ、いや、敵に回すつもりは毛頭ないです。ごめんなさい。動きゃーいいですよね。そうですよね。そうできない理由があるんですよね。わがまま言いました。生意気言いました。ごめんなさいごめんなさい。&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=K8djeRGyxFU:fXPl0et8arE:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=K8djeRGyxFU:fXPl0et8arE:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=K8djeRGyxFU:fXPl0et8arE:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=K8djeRGyxFU:fXPl0et8arE:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/K8djeRGyxFU/php_9.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/lab/php/php_9.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
        
        
         <pubDate>Thu, 11 Feb 2010 13:05:17 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/lab/php/php_9.php</feedburner:origLink></item>
            <item>
         <title>PHP宿題　MVC の勉強</title>
         <description>&lt;p&gt;頂いた宿題勉強日誌。今日は「MVC」について。(&lt;a href="http://www.google.co.jp/search?hl=ja&amp;amp;source=hp&amp;amp;q=MVC&amp;amp;btnG=Google+%E6%A4%9C%E7%B4%A2&amp;amp;lr=&amp;amp;aq=f&amp;amp;oq=&amp;amp;as_qdr=y15" target="_blank"&gt;MVC - Google 検索&lt;/a&gt;)&lt;br /&gt;
フレームワークを利用する前にきっちり理解しておくといい内容とのこと。&lt;/p&gt;
&lt;p&gt;実は前にSmartyを使ったことがあって、デザインとロジックを分ける主旨についてはイメージできるのだけれど、MVCと言われると「C」の役割がいまいち分からない。（MとCの境目がイマイチ分からない）&lt;/p&gt;
&lt;p&gt;MVCについて検索してるとフレームワークのお話に行き着く事が多くてなかなか初心者向けの簡単な説明が見つからないのだけれど、いろいろ調べた結果を自分なりに解釈すると、&lt;/p&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;表示担当がView&lt;/li&gt;
&lt;li&gt;入力された内容についてModelに処理をお願いしたり、Viewに表示をお願いしたり、橋渡し的な役割をするのがController&lt;/li&gt;
&lt;li&gt;データの処理がModel（こっちでは入力されたデータの受取とか処理後の結果を直接Viewに渡したりはしない）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という事でいいのかな。オススメして頂いた下記ページを参考にちゃんとやる！&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://www.stackasterisk.jp/tech/php/phpMvc01_01.jsp" target="_blank"&gt;&amp;gt;&amp;gt;PHPでMVC第1回：前編&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.stackasterisk.jp/tech/php/phpMvc02_01.jsp" target="_blank"&gt;&amp;gt;&amp;gt;PHPでMVC第2回：後編(Modelの作成/DAOパターン)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;･･･読んでる途中で何度も心が折れそうになったけど、頑張って最後まで読みました。こういう専門的なサイトで文字の圧力にくじけそうになった時はブラウザの文字サイズを少し大きくすると不思議と難易度が下がった気分になる傾向がある便利な性格なので、そんな錯覚に陥りながら、10%くらいは理解はできました。&lt;/p&gt;
&lt;p&gt;が、やはりやってる内容が難しい。というか、多分字が多すぎて圧倒されてる。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;初歩レベルでMVCの考え方、やってみます&lt;/h3&gt;
&lt;p&gt;ちょっと･･･その･･･あんまり難しい事できないので、私レベルでMVCの考え方だけ、やってみます。間違ってるかも知れんけど、とりあえず普通にこういうファイルがあるという前提で･･･。&lt;/p&gt;
&lt;textarea name="code" class="php" cols="40" rows="10"&gt;
&amp;lt;form action=&amp;quot;&amp;lt;?=$_SERVER[&amp;quot;PHP_SELF&amp;quot;]?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;submit&amp;quot; value=&amp;quot;送信&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;/form&amp;gt;

&amp;lt;?php
$name = isset($_POST[&amp;quot;name&amp;quot;]) ? $_POST[&amp;quot;name&amp;quot;] : NULL;
if($name){
	$name = htmlspecialchars($name);
	echo &amp;quot;&amp;lt;p&amp;gt;{$name}さん、こんにちわ。&amp;lt;/p&amp;gt;&amp;quot;;
}else{
	echo &amp;quot;&amp;lt;p&amp;gt;名前を入力してください。&amp;lt;/p&amp;gt;&amp;quot;;
}
?&amp;gt;
&lt;/textarea&gt;
&lt;p&gt;単純に名前を入力して送信ボタンを押すと「○○さん、こんにちわ。」という文が表示されるだけの内容なんですが、これをMVC役割分担を考えてみますね。&lt;/p&gt;
&lt;p&gt;あ。これは余談ですが、この前勉強したオブジェクト指向の件なんですが、↑上のような内容をclassを作って考えるとしたらコレで合ってますかね･･･。表示される内容自体は同じ結果になるし、変なとこがあっても初心者には分からないという罠。&lt;/p&gt;
&lt;textarea name="code" class="php" cols="40" rows="10"&gt;
class Hello{
	public $name;
	
	function aisatu(){
		if($this-&amp;gt;name){
			$this-&amp;gt;name = htmlspecialchars($this-&amp;gt;name);
			echo &amp;quot;&amp;lt;p&amp;gt;&amp;quot; . $this-&amp;gt;name . &amp;quot;さん、こんにちわ。&amp;lt;/p&amp;gt;&amp;quot;;
		}else{
			echo &amp;quot;&amp;lt;p&amp;gt;名前を入力してください。&amp;lt;/p&amp;gt;&amp;quot;;
		}
		
	}
}

$name = isset($_POST[&amp;quot;name&amp;quot;]) ? $_POST[&amp;quot;name&amp;quot;] : NULL;

$sample = new Hello();
$sample-&amp;gt;name = $name;
$sample-&amp;gt;aisatu();
&lt;/textarea&gt;
&lt;p&gt;んでは、本題に戻って･･･&lt;/p&gt;
&lt;h4&gt;Model部分&lt;/h4&gt;
&lt;p&gt;機能担当ファイル。&lt;br /&gt;
名前が入力されてたら、されてなかったら、それぞれの内容を返す機能。&lt;/p&gt;
&lt;textarea name="code" class="php" cols="40" rows="10"&gt;
//sample_model.php

&amp;lt;?php
function Hello($test){
	if($test){
		$test = htmlspecialchars($test);
		return &amp;quot;&amp;lt;p&amp;gt;{$test}さん、こんにちわ。&amp;lt;/p&amp;gt;&amp;quot;;
	}else{
		return &amp;quot;&amp;lt;p&amp;gt;名前を入力してください。&amp;lt;/p&amp;gt;&amp;quot;;
	}		
}
?&amp;gt;
&lt;/textarea&gt;
&lt;h4&gt;View部分&lt;/h4&gt;
&lt;p&gt;デザイナ・コーダーさんが主に触るであろうファイル。テンプレート的な。&lt;/p&gt;
&lt;textarea name="code" class="php" cols="40" rows="10"&gt;
//sample_view.html

&amp;lt;form action=&amp;quot;&amp;lt;?=$_SERVER[&amp;quot;PHP_SELF&amp;quot;]?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;submit&amp;quot; value=&amp;quot;送信&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;?=$Hello?&amp;gt;
&lt;/textarea&gt;
&lt;p&gt;「&amp;lt;?=$Hello?&amp;gt;」の部分、{$Hello}みたいな分かりやすい書き方したい。（→だからテンプレートエンジンとかフレームワーク使えばいいよってこと？）途中で今回みたいな場合だと&amp;lt;?=$_SERVER[&amp;quot;PHP_SELF&amp;quot;]?&amp;gt;はいらないって気付いたけどまぁ･･･そのまま。&lt;/p&gt;
&lt;h4&gt;Controller部分&lt;/h4&gt;
&lt;p&gt;入力データを受け取ってModelに処理をお願いして結果をViewに渡したりとか。&lt;/p&gt;
&lt;textarea name="code" class="php" cols="40" rows="10"&gt;
//sample_controller.php

&amp;lt;?php
require_once(&amp;quot;sample_model.php&amp;quot;);
$name = isset($_POST[&amp;quot;name&amp;quot;]) ? $_POST[&amp;quot;name&amp;quot;] : NULL;
$Hello = Hello($name);
require_once(&amp;quot;sample_view.html&amp;quot;);
?&amp;gt;
&lt;/textarea&gt;
&lt;p&gt;という感じでMVC役割分担を考えてみたのですが、考え方が間違ってたら教えてください＞＜&lt;/p&gt;
&lt;script type="text/javascript" src="http://redline.hippy.jp/js/dp.SyntaxHighlighter/shCore.js"&gt;&lt;/script&gt;  
&lt;script type="text/javascript" src="http://redline.hippy.jp/js/dp.SyntaxHighlighter/shBrushPhp.js"&gt;&lt;/script&gt; 
&lt;script type="text/javascript"&gt;  
   dp.SyntaxHighlighter.HighlightAll('code');  
&lt;/script&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=oPvclWlcnNo:iaAuy_LHpKM:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=oPvclWlcnNo:iaAuy_LHpKM:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=oPvclWlcnNo:iaAuy_LHpKM:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=oPvclWlcnNo:iaAuy_LHpKM:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/oPvclWlcnNo/phpmvc.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/lab/php/phpmvc.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
        
        
         <pubDate>Sat, 06 Feb 2010 12:38:19 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/lab/php/phpmvc.php</feedburner:origLink></item>
            <item>
         <title>Thunderbird　「更新を確認」のエラー</title>
         <description>&lt;p&gt;メールソフトは&lt;a href="http://mozilla.jp/thunderbird/" target="_blank"&gt;Thunderbird&lt;/a&gt;を利用しているのですが、私の環境で、かなり前から自動更新が出来なくなってたんですね。「ヘルプ」&gt;「ソフトウェアの更新を確認する」を選択しても『更新情報 XML ファイルが整形式になっていません （200） 』っていうエラーが出てしまう状態。&lt;/p&gt;
&lt;p&gt;そういうわけで、まぁ何かのファイルが壊れてるんだろーなーとか思いつつ、定期的にthunderbirdのサイトで新しいバージョンが出てないか確認したりして、もし新しいものがあればmozillaのサイトから最新版をダウンロードして上書きインストール･･･という手順でやってました。&lt;/p&gt;
&lt;p&gt;さっき気が付いたら、3.0.1がリリースされてて「あー更新しなきゃ」と思ったんですが、そろそろいちいちサイトからダウンロードして･･･っていうのが面倒くさくなってきたのでエラー文でググってみると以下のページ発見。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://support.mozilla.com/ja/kb/AUS+Update+XML+File+Malformed+200" target="_blank"&gt;&amp;gt;&amp;gt;更新情報 XML ファイルが整形式になっていません （200）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上記ページはFirefoxについて書かれてるものだし関係ないやろーとか思いつつも、一番上の「拡張機能による干渉」部分の「&lt;a href="https://addons.mozilla.org/ja/firefox/addon/722" target="_blank"&gt;NoScript&lt;/a&gt;を無効にする」っていう手順だけ何気なく実施。(無効っていうかmozilla.comを許可)&lt;/p&gt;
&lt;p&gt;その後、thunderbird側で「ヘルプ」&gt;「ソフトウェアの更新を確認する」を選択してみると･･･普通に更新できたよ。何それ。そんな単純な事だったのか。&lt;/p&gt;
&lt;p&gt;ということで、めでたく楽々更新の日々を取り戻しました。&lt;/p&gt;
&lt;p&gt;でも不思議。Firefoxの方は今までもずっと自動更新できてたんだけど･･･。なぜに？&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=ol_cU5hrS2M:WgWqpsRIkn8:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=ol_cU5hrS2M:WgWqpsRIkn8:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=ol_cU5hrS2M:WgWqpsRIkn8:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=ol_cU5hrS2M:WgWqpsRIkn8:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/ol_cU5hrS2M/thunderbird.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/review/tool/thunderbird.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">tool</category>
        
        
         <pubDate>Wed, 03 Feb 2010 10:11:18 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/review/tool/thunderbird.php</feedburner:origLink></item>
            <item>
         <title>PHP宿題　PDFライブラリを使う</title>
         <description>&lt;p&gt;先日PHPの勉強記録を書いたらいろいろ宿題を頂けたので順番にやってみる。まずは「PDFライブラリ」っていう単語が出てきたので使ってみる。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;FPDFというライブラリを使ってみる&lt;/h3&gt;
&lt;p&gt;まず「PHP PDFライブラリ」辺りでググってみると･･･なんかどうも種類がいろいろあるみたい。どれ使えばいいのか分かんねーぜ。とりあえず一番目に付いた「&lt;a href="http://www.fpdf.org/" target="_blank"&gt;FPDF&lt;/a&gt;」というもので勉強してみますね。&lt;/p&gt;
&lt;p&gt;本家サイトに &lt;q&gt;FPDF is released under a permissive license: there is no usage restriction. You may embed it freely in your application (commercial or not), with or without modifications. &lt;/q&gt;と書いてあったので、もし将来商用利用する機会があってもこれでいけるなー的な感じで。&lt;/p&gt;
&lt;h4&gt;マニュアルのダウンロード&lt;/h4&gt;
&lt;p&gt;英語サイトなんだけど、リファレンスマニュアルは日本語バージョンもあったのでそれを&lt;a href="http://www.fpdf.org/en/download.php" target="_blank"&gt;Downloadsのページ&lt;/a&gt;から拝借。(A Japanese version of the 1.52 manualってやつ)というか、ダウンロードした後に気付いたけど普通にマニュアルのwebページ、あったし。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://www.ryuzee.com/manual/fpdf152ja/" target="_blank"&gt;&amp;gt;&amp;gt;FPDF 1.52 リファレンス　マニュアル&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;本体のダウンロード&lt;/h4&gt;
&lt;p&gt;次に同ページから本体のダウンロード。日本語版マニュアルはバージョン1.52って書いてあるからそれに合わせた方がいい予感はしたけど、初心者にありがちな「無意味に新しいのを使いたい」欲に負けて現時点での最新版1.6をダウンロード。&lt;/p&gt;
&lt;p&gt;そしてそして日本語に対応させるにはモジュールが必要らしいのですが、本家の&lt;a href="http://www.fpdf.org/" target="_blank"&gt;Japanese support&lt;/a&gt;に何か日本語絡みの拡張が2種類あるんですね。日本語の解説サイトなんかを確認してみるとサブ的な扱いになってる方、こちらの&lt;a href="http://www.geocities.jp/rui_hirokawa/php/pdf/" target="_blank"&gt;PHP tools&lt;/a&gt;のものを導入している例ばかりが目に付いたので、こっちの方を使うのが一般的ってことですよね、きっと。&lt;/p&gt;
&lt;h4&gt;インストール・日本語化&lt;/h4&gt;
&lt;p&gt;インストールや日本語化の手順はいろんなサイトで解説されてたので、いくつかのサイトを見比べながら必要な手順を実施。ファビコンが超カワイイこちらのサイトさんとか分かりやすかったです。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://f32.aaa.livedoor.jp/~azusa/?t=php&amp;amp;p=fpdf" target="_blank"&gt;&amp;gt;&amp;gt;FPDFのインストールと日本語対応｜FPDFライブラリてPDF作成｜PHP｜PHP &amp;amp; JavaScript Room&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なんかしらんが元々XAMPPのPEARの中にfpdf.phpってやつが存在してたり、includesディレクトリがなかったりで、上記ページの手順に従っても一瞬うまくいかなかったけど、適当にやったらうまくいったよ。とりあえず「Hello World!」クリア。&lt;/p&gt;
&lt;h4&gt;チュートリアル&lt;/h4&gt;
&lt;p&gt;ダウンロードした日本語マニュアルを眺めつつ、本家サイトの&lt;a href="http://www.fpdf.org/" target="_blank"&gt;Tutorials&lt;/a&gt;にそっていろいろやってみた。&lt;/p&gt;
&lt;p&gt;例えば「Tutorial 1: Minimal example」ここはさっき上に書いたURLのページでHello World!までクリアした通りの内容。&lt;/p&gt;
&lt;textarea name="code" class="php" cols="40" rows="10"&gt;
&amp;lt;?php
require(&amp;#039;fpdf.php&amp;#039;);

$pdf=new FPDF();
$pdf-&amp;gt;AddPage();
$pdf-&amp;gt;SetFont(&amp;#039;Arial&amp;#039;,&amp;#039;B&amp;#039;,16);
$pdf-&amp;gt;Cell(40,10,&amp;#039;Hello World!&amp;#039;);
$pdf-&amp;gt;Output();
?&amp;gt;
&lt;/textarea&gt;
&lt;dl class="entrylist03"&gt;
&lt;dt&gt;require('fpdf.php');&lt;/dt&gt;
&lt;dd&gt;fpdf.phpを読み込む。&lt;/dd&gt;
&lt;dt&gt;$pdf=new FPDF();&lt;/dt&gt;
&lt;dd&gt;new演算子でオブジェクトを作る。&lt;/dd&gt;
&lt;dt&gt;$pdf-&gt;AddPage();&lt;/dt&gt;
&lt;dd&gt;新規ページの追加&lt;br /&gt;
AddPage([string orientation])&lt;/dd&gt;
&lt;dt&gt;$pdf-&gt;SetFont('Arial','B',16);&lt;/dt&gt;
&lt;dd&gt;フォント設定&lt;br /&gt;
SetFont(string family [, string style [, float size]])&lt;br /&gt;
ここではフォントファミリー「Arial」、スタイルは「B（ボールド）」、サイズが16ポイント。&lt;/dd&gt;
&lt;dt&gt;$pdf-&gt;Cell(40,10,'Hello World!');&lt;/dt&gt;
&lt;dd&gt;表（セル(長方形)）を表示&lt;br /&gt;
Cell(float w [, float h [, string txt [, mixed  border [, int ln [, string align [, int fill [, mixed  link]]]]]]])&lt;br /&gt;
なんかこれ、オプションいっぱいあるけど、とりあえず今は幅「40」高さ「10」表示する文字列「Hello World!」&lt;/dd&gt;
&lt;dt&gt;$pdf-&gt;Output();&lt;/dt&gt;
&lt;dd&gt;PDFドキュメントを表示&lt;br /&gt;
string Output([string name [, string dest]])&lt;br /&gt;
nameを指定してないので、doc.pdfという名前で送信される。&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;これが最低限の仕組みらしい。同じようにチュートリアルを順番に進めていくといろいろできることが分かる。すごいな･･･。私自身、何も知らなくてもPDFファイル出来たわ。今回の宿題出してくれた&lt;a href="http://prog.re-d.net/" target="_blank"&gt;かみやん&lt;/a&gt;がコメントで「オブジェクト＝外注とか代行屋さんって感じ」って書いてくれたんですが、なんかちゃんと分かった気がする。&lt;/p&gt;
&lt;p&gt;そしてそして、&lt;a href="http://redline.hippy.jp/lab/php/php_8.php"&gt;先日のオブジェクト指向の勉強記録&lt;/a&gt;の後、かみやん様からプレゼントも頂いたんだぜい→素敵な補習講義的なエントリを書いてくださいました。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://prog.re-d.net/?p=533" target="_blank"&gt;&amp;gt;&amp;gt;オブジェクト指向をあえて車クラスタ目線で書いてみた&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;速攻、印刷+保存しますた。ありがとうありがとう！&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;残りの宿題一覧&lt;/h3&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;MVCの概念を知る&lt;/li&gt;
&lt;li&gt;フレームワーク&lt;/li&gt;
&lt;li&gt;SQLite&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;どんどん高度になってきたよー。初心者向けのPHP参考書でいうと後ろの方の項目に差し掛かってるはず！多分！がんばる！&lt;/p&gt;
&lt;script type="text/javascript" src="http://redline.hippy.jp/js/dp.SyntaxHighlighter/shCore.js"&gt;&lt;/script&gt;  
&lt;script type="text/javascript" src="http://redline.hippy.jp/js/dp.SyntaxHighlighter/shBrushPhp.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;  
   dp.SyntaxHighlighter.HighlightAll('code');  
&lt;/script&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=QQItdBY6CZE:WNNcWptwMjc:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=QQItdBY6CZE:WNNcWptwMjc:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=QQItdBY6CZE:WNNcWptwMjc:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=QQItdBY6CZE:WNNcWptwMjc:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/QQItdBY6CZE/phppdf.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/lab/php/phppdf.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
        
        
         <pubDate>Tue, 02 Feb 2010 12:00:36 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/lab/php/phppdf.php</feedburner:origLink></item>
            <item>
         <title>CSS テキストリンクもボタンっぽくポチっとする</title>
         <description>&lt;p&gt;最近CSS関連の情報ってCSS3のお話が多いんだけど、今日は初歩的なところに戻って昔よくあったみたいな小ネタ。&lt;/p&gt;
&lt;p&gt;こちらのページにテキストリンクもボタンリンクみたいにクリックしたらヘコませようぜっていうお話がありました。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://css-tricks.com/one-pixel-shift-buttons/" target="_blank"&gt;&amp;gt;&amp;gt;Make All Links Feel Subtly More Button-Like | CSS-Tricks&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;テキストリンクって、hover時のスタイルに関しては毎回どうしよっかって迷うけど、個人的にはactiveのタイミングでのスタイルはあまり気にしてなかったかも、と思いました。なんかこういうのちょこっと手を入れるだけで印象が変わりますね。まぁ「ほんの一瞬」なので気付かない人も多いかもしれないけれど。&lt;/p&gt;
&lt;p&gt;上記ページのコメントの部分にポチっとヘコむ時に少し暗い色にしたらどう？ってお話もあってなるほどなーと思ったので、そんな感じで一応サンプルページとか作ってみました。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://redline.hippy.jp/redline_sample/1001/sample_active.html" target="_blank"&gt;&amp;gt;&amp;gt;サンプルページ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;既存のサイトにコレ追加するのも結構楽だなぁとか思ったり。上のページではtop:1px;にしてるだけだけど、外国の方のコメント見てるとleftも加えて斜めとかどうよ？みたいな話も。&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=XZLJL4W3G9E:EnuBKFUslpo:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=XZLJL4W3G9E:EnuBKFUslpo:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=XZLJL4W3G9E:EnuBKFUslpo:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=XZLJL4W3G9E:EnuBKFUslpo:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/XZLJL4W3G9E/css_17.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/lab/css/css_17.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">css</category>
        
        
         <pubDate>Tue, 02 Feb 2010 11:19:08 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/lab/css/css_17.php</feedburner:origLink></item>
            <item>
         <title>FeedBannerパラメータで、はてブ分散の件</title>
         <description>&lt;p class="entry_box03"&gt;PHPの勉強、頑張ろうと思って、はてブのPHPタグのついたエントリのフィードを追いかけてるんですよ。んでね、昨日PHP関連のエントリ書いたらそれがブクマして頂けたみたいなんだけど、朝いつも通りPHPタグのフィードチェックしてたらなぜか2つあるんですよ、昨日のうちのエントリが。&lt;br /&gt;
&lt;br /&gt;
で、そういえば少し前になんかそんなに話をどっかで見た！と思って必死に思い出したら&lt;a href="http://twitter.com/shin1x1" target="_blank"&gt;shin1x1さん&lt;/a&gt;のブログだーと気付いた。&lt;/p&gt;
&lt;p class="entry_box04"&gt;&lt;img width="215" height="27" alt="キャプチャ・LDR" src="http://redline.hippy.jp/images/1001_02.png"/&gt;&lt;br /&gt;
↓なぜか2つある。&lt;br /&gt;
&lt;img width="220" height="259" alt="キャプチャ・LDR" src="http://redline.hippy.jp/images/1001_01.png"/&gt;&lt;/p&gt;
&lt;p class="clear note02"&gt;&lt;a href="http://www.1x1.jp/blog/2009/12/wordpress_how_to_exclude_url_parameters_from_feedburner.html" target="_blank"&gt;&amp;gt;&amp;gt;同じエントリへのはてブがバラバラに付く | Shin x blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;見事なまでに的を得たタイトル。そうそうそうそう。いつの間にかURLにパラメータがついてるなってのは気になってたんですよ。が、まぁとりあえず放置で･･･とか思ってた。でもやっぱなんか気持ち悪いからなんとかしたい。shin1x1さんのブログではWordpressではこうしたらいいって方法が書いてあったけど、もっと根本的にサクっとパラメータ自体を消す方法はないんかなと上記記事で紹介されてたリンク先を拝見してみるとこちらの記事のやり方の方が私の希望に近そう。いや、希望通りでした。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://blog.fkoji.com/2009/11141538.html" target="_blank"&gt;&amp;gt;&amp;gt;FeedBurnerやTwitterFeedを使っていると元のURLにutm_sourceなどのパラメータがついてしまうことがある - F.Ko-Jiの「一秒後は未来」&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;FeedBannerのサイトで「Track clicks as a traffic source in Google Analytics Customize」のチェックをオフに。さっそくフィードを再読み込みしてみると･･･パラメータ消えたよぉーー。歓喜。この方法だとAnalyticsでの解析が無効になるとのことですが、私はまったく気にしないのでこれでいい事にする。&lt;/p&gt;
&lt;p&gt;すっきりしたー。ありがとうございます！&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=NfftiUtkZ24:ssQrIgOcjFo:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=NfftiUtkZ24:ssQrIgOcjFo:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=NfftiUtkZ24:ssQrIgOcjFo:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=NfftiUtkZ24:ssQrIgOcjFo:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/NfftiUtkZ24/feedbanner.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/review/web/feedbanner.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">web</category>
        
        
         <pubDate>Fri, 08 Jan 2010 10:09:24 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/review/web/feedbanner.php</feedburner:origLink></item>
            <item>
         <title>PHP オブジェクト指向の勉強</title>
         <description>&lt;p&gt;相方の知り合いにPHPに強い方がいらっしゃって、相方がその方に私がPHPを勉強してるって話をしたら「んじゃ、オブジェクト指向の勉強した方がいいよ」とアドバイス頂いたのでさっそく勉強してみる。&lt;/p&gt;
&lt;p&gt;実のところ「オブジェクト指向」っていうの、今までも何度も何度も本読んだり、サイト見たりして自分でサンプルに書かれてるソース手打ちして実験したりもしてたんだけど、なんか分かったような分からんような･･･な状態だったんですよね。何が分からないのかと聞かれるとそれもまた分からないんだけど、なんだろう、概念みたいなものが自分の理解であってんのかどうかわかんない + 使いどころはどこ？ + 難しそうで怖いという先入観。まぁ、とりあえずおさらいしてみる。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;手続き型とオブジェクト指向&lt;/h3&gt;
&lt;p&gt;処理を1つ1つ流れに沿って動作させるのが「手続き型」っていう方法。私がPHPに興味を持ち始めた頃「これからはPHP5だからオブジェクト指向だぜ！」みたいな内容の雑誌記事をよく目にしたんだけど、その対となる処理の形としてこの「手続き型」っていう言葉がよく出てきてた。結論としてはPHP4の頃はあまり意識しなかったけど、PHP5になってオブジェクト指向の機能が強化されてるから、今後はそっちメインでプログラミングした方が効率いいよって話っぽい。&lt;/p&gt;
&lt;p&gt;どこで見たのか聞いたのか忘れたけど、イメージとして手続き型のやり方は家を建てるときに適当な長さの木材をその都度大きさを合わせて切って組み合わせて家を建てる。反対にオブジェクト指向は予め大きさや色の決まったレゴブロックを組み合わせて家を建てる、みたいな。&lt;/p&gt;
&lt;h4&gt;無理やりCSS脳で考える&lt;/h4&gt;
&lt;p&gt;私にはCSS脳しかないので、CSSに置き換えて考えてみると、手続き型はいちいちhtmlソース中の任意の要素に1つ1つstyle=&amp;quot;hoge:hoge;&amp;quot;というスタイルを付けていく方法。反対にオブジェクト指向は予め別の場所で.hogeっていうクラスを作っていつでもどこでも好きな場所でそのクラスを指定するだけでスタイルを反映させることができる、みたいな感じですかね？&lt;/p&gt;
&lt;p&gt;時間の流れ的にも、昔はそういう風に要素に直接styleでも普通だったけど、今は「ちょｗｗｗ　なんでこんな大量に要素に直接スタイルつけてんのさ。ソース見難いしｗｗ　別の場所にclass作ってhtml側ではクラス指定した方が早いキレイ便利でしょｗｗ」みたいな流れでオブジェクト指向で行こうぜ！という流れになってるとか？間違ってたら超恥ずかしいけど。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;そもそも「オブジェクト」ってなんぞ？&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798119865/redline0c-22/" target="_blank"&gt;「PHP 逆引きレシピ」&lt;/a&gt;という本によると、『&lt;q&gt;データとそのデータを操作する手続きをまとめたものを「オブジェクト」と呼び、オブジェクトの定義（雛形）を「クラス」と呼びます。PHPでは、オブジェクトは変数（データ）と関数（手続き）をまとめたものです。&lt;/q&gt;』とのこと。うん。なんか分かったような分からんような。&lt;/p&gt;
&lt;p&gt;なんせ普通の関数との違いはそこに一緒に変数を持てるかどうか、ということらしい。で、また専門用語出てきたわ。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;プロパティとメソッド&lt;/h3&gt;
&lt;dl class="entrylist03"&gt;
&lt;dt&gt;プロパティ(属性)&lt;/dt&gt;
&lt;dd&gt;オブジェクトの持つ変数 / メンバー変数、メンバーとも言う。&lt;/dd&gt;
&lt;dt&gt;メソッド&lt;/dt&gt;
&lt;dd&gt;オブジェクトの持つ関数 / メンバー関数とも言う。&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;さすがにこれは私でも意味はわかる。「メンバー」はサイトによっては「メンバ」って書いてあるところもあるけど、多分同じ意味。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;クラスとは&lt;/h3&gt;
&lt;p&gt;上にも書いたけど、クラスはオブジェクトの定義（雛形）らしい。そういえば昔自分の先輩にオブジェクト指向について質問した時に「設計図のこと」って言ってた。その先輩曰く「何か作るときってまず設計図作るやん？設計図の作り方はもう決まってるから、そこに必要な事を入れる。で、設計図だけじゃモノはできないでしょ？だからそれを実体化するわけさ。なんたらかんたら･･･」きっと今なら話聞けば理解できたかもしれないのに、当時はこの人は違う世界の人だと思ってた。失敗した。やっぱり目上の人の話はちゃんと聞かなきゃいかんね。なにはともあれ、その雛形の書き方。&lt;/p&gt;
&lt;h4&gt;クラスを定義する&lt;/h4&gt;
&lt;p&gt;基本的な定義の書き方はこんな感じみたい。参考）&lt;a href="http://www.php.net/manual/ja/language.oop5.basic.php" target="_blank"&gt;PHP: クラスの基礎 - Manual&lt;/a&gt;&lt;/p&gt;
&lt;pre class="short"&gt;&lt;code&gt;class クラス名
{
    // プロパティの宣言
    public $プロパティ名 = 'プロパティの内容';

    // メソッドの宣言
    public function メソッド名(引数){
        メソッドの内容
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「$プロパティ名」の部分で、このクラスはこんなプロパティを持ってますよーっていうのを定義、「function メソッド名(引数)」の部分でこのクラスができる機能っていうか関数を定義。メソッドの定義方法はユーザー定義関数と同じ。&lt;/p&gt;
&lt;h4&gt;アクセス修飾子&lt;/h4&gt;
&lt;p&gt;上の基本形のプロパティ部分では「public」を使用して定義してるけど、PHP5でのではアクセス修飾子というものを使用して、そのプロパティへのアクセス権を指定できるらしい。全部で3つ（4つ）ある。いろんなサイト見てるとここ「var」にしてあるページが多かったけど昔の名残なんかな？&lt;a href="http://php.net/manual/ja/language.oop5.visibility.php" target="_blank"&gt;マニュアル&lt;/a&gt;によると『&lt;q&gt;var で変数を宣言する PHP 4 の方法は、互換性を保つために今でもサポートされています (これは public と同じ扱いになります)&lt;/q&gt;』とのこと。&lt;/p&gt;
&lt;dl class="entrylist03"&gt;
&lt;dt&gt;public&lt;/dt&gt;
&lt;dd&gt;どこからでもアクセス可能（デフォルト）&lt;/dd&gt;
&lt;dt&gt;protected&lt;/dt&gt;
&lt;dd&gt;そのクラス自身と継承したクラス、親クラスからのみアクセス可能&lt;/dd&gt;
&lt;dt&gt;private&lt;/dt&gt;
&lt;dd&gt;定義したクラスからのみアクセス可能&lt;/dd&gt;
&lt;dt&gt;var&lt;/dt&gt;
&lt;dd&gt;public と同じ扱いになります&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;どういう使い分けをしていいのかまだまったく分からないけれども、とりあえずそういうのがあるということだけ覚えておく事にする。&lt;/p&gt;
&lt;h4&gt;public $プロパティ名 = 'プロパティの内容'; の部分&lt;/h4&gt;
&lt;p&gt;上の基本形では変数を宣言して、そこに初期値を入れてるけど、別にここは初期化せずに単に変数の宣言だけでもいいみたい。とりあえずそういうプロパティ持ってますっていうのを宣言すること。&lt;/p&gt;
&lt;p&gt;ここで宣言したプロパティにはクラス内のどこからでも「$this-&amp;gt;●●」という形で取り出したり、値を変えたりできる。この「$this」はオブジェクト自分自身のことやんね。javascriptとかでも使うし、身近な感じするね。&lt;/p&gt;
&lt;p&gt;これ「-&amp;gt;」は何回か使ったことあるけど、&lt;del&gt;何て呼ぶのかは未だ不明。勝手に「矢印」とか「～の（$this「の」●●）」とか脳内では呼んでる。&lt;/del&gt;で、調べてみたら「矢印演算子」っていうものと判明。オブジェクト（インスタンス）のメソッドやプロパティにアクセスするためのものなんだって。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;クラスを使う&lt;/h3&gt;
&lt;p&gt;クラスを利用するには上で作った雛形だけじゃダメ。そこから実体を作る。それには「new演算子」というものを使用する。そうしてクラスから生成されたオブジェクトを「インスタンス」と呼ぶ。また、クラスからインスタンスを生成することを「インスタンス化（実体化）」と呼ぶ。&lt;/p&gt;
&lt;p&gt;1つのクラスからオブジェクト（インスタンス）はいくつでも生成でき、生成されたオブジェクトはそれぞれがプロパティを持つ。これが関数との大きな違いということらしい。&lt;/p&gt;
&lt;p&gt;インスタンスって言葉、CS4使ってると何かたまに見かける。(FlashとかFireworks等等）その場合は一旦シンボルっていう元となる形を作っておいて必要な状況になったらそれを実体化（インスタンス）して使うよね。元になってるシンボルをコピーしてインスタンスにして、必要に応じて個別のインスタンスの色変えたり、大きさ変えたり･･･。クラス＝シンボルって置き換えて考えるとすごく理解しやすいんだけど、同じような事って考えていいんかな。&lt;/p&gt;
&lt;p&gt;話は戻ってPHP。オブジェクトの生成はこんな感じで書く。これで「$変数hoge」の中にオブジェクトが入る。&lt;/p&gt;
&lt;p class="note02"&gt;$変数hoge = new クラス名();&lt;/p&gt;
&lt;p&gt;オブジェクトが元々持ってるプロパティやメソッドにアクセスしたい場合はこんな風に書く。（●●っていうプロパティにアクセスしたい場合）&lt;/p&gt;
&lt;p class="note02"&gt;$変数hoge-&gt;●●&lt;/p&gt;
&lt;p&gt;この前、simplexml_load_fileを使ってRSSフィードをサイト内に表示するっていうのをやったんだけど、なんか意識せずにこういうのやってたってことだよね。&lt;/p&gt;
&lt;h4&gt;ちょっと実験&lt;/h4&gt;
&lt;p&gt;こういうのは手を動かさないと分かった気になって終わってしまう私なので、ちょっと上で勉強した事ふまえて適当なクラス作る～使うまで書いてみたよ。なんかホント意味ない内容で笑われそうだけど＞＜&lt;/p&gt;
&lt;textarea name="code" class="php" cols="40" rows="10"&gt;
class sampleClass{
	public $sampleProperty = &amp;quot;&amp;lt;p&amp;gt;こんにちわー。&amp;lt;/p&amp;gt;&amp;quot;;
	
	public function sampleMethod(){
		echo $this-&amp;gt;sampleProperty . 
        &amp;quot;&amp;lt;p&amp;gt;（↑こっちはメソッドの中から呼んでる「こんにちわー」です）&amp;lt;/p&amp;gt;&amp;quot;;
		echo &amp;quot;&amp;lt;p&amp;gt;現在の日時は、&amp;quot; . date(&amp;quot;Y年m月j日H時i分&amp;quot;) . &amp;quot;です。&amp;lt;/p&amp;gt;&amp;quot;;
	}
}

//オブジェクト生成
$sample = new sampleClass();

//プロパティの中身表示してみる
echo &amp;quot;&amp;lt;p&amp;gt;//プロパティの中身表示してみる&amp;lt;/p&amp;gt;&amp;quot;;
echo $sample-&amp;gt;sampleProperty;

echo &amp;quot;&amp;lt;hr /&amp;gt;&amp;quot;;

//メソッド実行してみる
echo &amp;quot;&amp;lt;p&amp;gt;//メソッド実行してみる&amp;lt;/p&amp;gt;&amp;quot;;
$sample-&amp;gt;sampleMethod();
	

&lt;/textarea&gt;
&lt;p class="note02"&gt;&lt;a href="http://redline.hippy.jp/redline_sample/1001/sample01.php" target="_blank"&gt;&amp;gt;&amp;gt;サンプルページ実行&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;･･･こういう時にササっともっと気の利いたサンプル作れるくらいの賢さが欲しい。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;クラスの継承&lt;/h3&gt;
&lt;p&gt;クラスの継承とは既存のクラスを元に拡張や変更した新しいクラスを作ること。元になったクラスを「親クラス（スーパークラス・基底クラス）」、継承して新しく作ったクラスを「子クラス（サブクラス・派生クラス）」と呼ぶ。親が持ってるプロパティ＆メソッドは子が引き継ぐ。子は親の持ってないプロパティ＆メソッドを定義したり、変更したりする記述のみ加えればいい。&lt;/p&gt;
&lt;p&gt;これはCSS脳には非常に分かりやすい項目なのでは･･･。あの便利な継承だよね、継承。この勉強記録書きながら一番自信あるわ、継承の概念。&lt;br /&gt;
書き方はこんな感じ。&lt;/p&gt;
&lt;p class="note02"&gt;class 子クラス名 extends 親クラス名&lt;/p&gt;
&lt;p&gt;上の方で「クラスを定義する」っていうところに書いた基本形の頭の部分で「このクラスはこの親から派生してます」っていうのをちゃんと書いて上げなきゃいけないっていうことなんですね。了解。&lt;/p&gt;
&lt;p&gt;クラスを継承して子クラスで親クラスと同じメソッド名を定義した場合は子クラスの方が優先され、親クラスのメソッドは上書きされる。（「オーバーライド」と言う）&lt;/p&gt;
&lt;h4&gt;ちょっと実験&lt;/h4&gt;
&lt;textarea name="code" class="php" cols="40" rows="10"&gt;
class parentClass{
	public $sampleProperty = &amp;quot;&amp;lt;p&amp;gt;こんにちわー。&amp;lt;/p&amp;gt;&amp;quot;;
	
	public function sampleMethod(){
		echo &amp;quot;&amp;lt;p&amp;gt;現在の日時は、&amp;quot; . date(&amp;quot;Y年m月j日H時i分&amp;quot;) . &amp;quot;です。&amp;lt;/p&amp;gt;&amp;quot;;
	}
}

class childClass extends parentClass{
	public function sampleMethod(){
		echo &amp;quot;&amp;lt;p&amp;gt;今年の西暦は、&amp;quot; . date(&amp;quot;Y年&amp;quot;) . &amp;quot;です。(親のメソッド上書き)&amp;lt;/p&amp;gt;&amp;quot;;
	}
}

//オブジェクト生成
$parent = new parentClass();
$child = new childClass();

//親のメソッド実行してみる
echo &amp;quot;&amp;lt;p&amp;gt;//親のメソッド実行してみる&amp;lt;/p&amp;gt;&amp;quot;;
$parent-&amp;gt;sampleMethod();
//親のプロパティ表示
echo &amp;quot;&amp;lt;p&amp;gt;//親のプロパティ表示&amp;lt;/p&amp;gt;&amp;quot;;
echo $parent-&amp;gt;sampleProperty;

echo &amp;quot;&amp;lt;hr /&amp;gt;&amp;quot;;

//子のメソッド実行してみる
echo &amp;quot;&amp;lt;p&amp;gt;//子のメソッド実行してみる&amp;lt;/p&amp;gt;&amp;quot;;
$child-&amp;gt;sampleMethod();
//親から継承したプロパティはそのまま
echo &amp;quot;&amp;lt;p&amp;gt;//親から継承したプロパティはそのまま&amp;lt;/p&amp;gt;&amp;quot;;
echo $child-&amp;gt;sampleProperty;
	

&lt;/textarea&gt;
&lt;p class="note02"&gt;&lt;a href="http://redline.hippy.jp/redline_sample/1001/sample02.php" target="_blank"&gt;&amp;gt;&amp;gt;サンプルページ実行&lt;/a&gt;&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;コンストラクタとデストラクタ&lt;/h3&gt;
&lt;p&gt;オブジェクトが生成されるときに自動的に実行されるメソッドの事を「コンストラクタ」と言う。オブジェクトを生成する時に初期化の処理を済ませておきたい時に使うものらしい。（プロパティの初期化・データベースへの接続等）別にこれは必須ではない。&lt;/p&gt;
&lt;p&gt;コンストラクタメソッドのメソッド名の書き方はこんな感じ。&lt;/p&gt;
&lt;pre class="short"&gt;&lt;code&gt;function __construct(引数){
    // コンストラクタで行う処理
 }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;デストラクタはその逆。「特定のオブジェクトへの全てのリファレンスが削除された直後やオブジェクトが明示的に破棄された直後に実行されるメソッド」らしい。なんか難しい説明だけど、なんせそのオブジェクトが消える時に実行したいものがあればデストラクタメソッドを使う。書き方はこう。&lt;/p&gt;
&lt;pre class="short"&gt;&lt;code&gt;function __destruct(引数){
    // デストラクタで行う処理
 }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;デストラクタはよく分からないけど、コンストラクタは意味分かった。前にPEARのAuthを使ってみたいとか言ってた時に「Auth::Auth()はコンストラクタ」って書いてあって『何それ？どゆこと？』状態やったんよね。もう頭の中で専門用語がごじゃごじゃで。ようやく分かった。ありがとうありがとう。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;参考にしたサイト・本&lt;/h3&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;a href="http://www.scollabo.com/banban/php/php_11.html" target="_blank"&gt;クラスとオブジェクト/PHP入門&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.php.net/manual/ja/language.oop5.basic.php" target="_blank"&gt;PHP: クラスの基礎 - Manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://php.net/manual/ja/language.oop5.visibility.php" target="_blank"&gt;PHP: アクセス権 - Manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/toku-hiro/20060826" target="_blank"&gt;PHPなオブジェクト指向入門 vol.0 - 真夜中のプログラミングTips&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/toku-hiro/20060902" target="_blank"&gt;PHPなオブジェクト指向入門 vol.1 - 真夜中のプログラミングTips&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.phppro.jp/phpmanual/php/language.oop5.decon.html" target="_blank"&gt;コンストラクタとデストラクタ - PHPプロ！マニュアル&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798119865/redline0c-22/" target="_blank"&gt;PHP 逆引きレシピ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;script type="text/javascript" src="http://redline.hippy.jp/js/dp.SyntaxHighlighter/shCore.js"&gt;&lt;/script&gt;  
&lt;script type="text/javascript" src="http://redline.hippy.jp/js/dp.SyntaxHighlighter/shBrushPhp.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://redline.hippy.jp/js/dp.SyntaxHighlighter/shBrushCss.js"&gt;&lt;/script&gt;  
&lt;script type="text/javascript"&gt;  
   dp.SyntaxHighlighter.HighlightAll('code');  
&lt;/script&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=odnWAiyxyyA:Bq3f3-CFPGw:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=odnWAiyxyyA:Bq3f3-CFPGw:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=odnWAiyxyyA:Bq3f3-CFPGw:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=odnWAiyxyyA:Bq3f3-CFPGw:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/odnWAiyxyyA/php_8.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/lab/php/php_8.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
        
        
         <pubDate>Thu, 07 Jan 2010 16:44:51 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/lab/php/php_8.php</feedburner:origLink></item>
            <item>
         <title>PHP 添付ファイル付メール送信 勉強メモ</title>
         <description>&lt;p&gt;ブログで「今年こそはちゃんとPHP勉強するよ」宣言したのが効いているのかまだ諦めずに続いてます。PHPの勉強。脱三日坊主。やったぜ。&lt;/p&gt;
&lt;p&gt;ようやく実務でもちょこちょこ自分で1からPHPの何かを作らせてもらえるようになって、調子に乗ってたんですが、「添付ファイル付きのメールを送る」という事態に対して、まったく仕組みがわからなかったんだぜ。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;メールの仕組みをおさらい&lt;/h3&gt;
&lt;p&gt;分かってるようで分かってなかったメールの仕組みをもっかいおさらい。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://www.atmarkit.co.jp/fnetwork/rensai/netpro03/netpro01.html" target="_blank"&gt;メールにかけられた呪文「MIME～前編」&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.atmarkit.co.jp/fnetwork/rensai/netpro04/netpro01.html" target="_blank"&gt;メールにかけられた呪文「MIME～後編」&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;めっちゃ詳しく説明されてる。全力で印刷した。読んだ。とりあえず前半を読んでMIMEってやつの仕組みをしっかり理解しておかないといけない、と初心者ながらに悟った。&lt;/p&gt;
&lt;p&gt;ちょうど上のリンク先の後編は添付ファイルを送るときの仕組みが書かれていたので、それにそって勉強。&lt;/p&gt;
&lt;h4&gt;MIME-Version&lt;/h4&gt;
&lt;p&gt;MIMEのバージョンを示す。現在は1.0しか存在しないらしい。&lt;/p&gt;
&lt;p class="note02"&gt;MIME-Version: 1.0&lt;/p&gt;
&lt;h4&gt;マルチパートであることを宣言&lt;/h4&gt;
&lt;p&gt;複数の異なる種類のデータをメールで送ろうと思ったら絶対このマルチパートさんの力が必要になる、と。今回のケースで使用するのは&lt;/p&gt;
&lt;p class="note02"&gt;Content-Type: multipart/mixed;&lt;/p&gt;
&lt;p&gt;これは最も一般的なマルチパートらしい。個々のパートがそれぞれ別のデータを表す、という意味。&lt;/p&gt;
&lt;h4&gt;パートの境界はバウンダリ(boundary)という任意の文字列で示す&lt;/h4&gt;
&lt;p&gt;添付ファイルを送るときはボディ部分をパートに区切る必要がある。分割の区切りには区切り文字というものを使用する。それがバウンダリ(boundary)という任意の文字列。&lt;/p&gt;
&lt;p class="note02"&gt;--バウンダリ文字列 &lt;br /&gt; 
↑ここから開始&lt;br /&gt;
↓ここで終了&lt;br /&gt;
--バウンダリ文字列--&lt;/p&gt;
&lt;p&gt;頭に「--」が付いてるのが区切りのしるし。おしりにも「--」がついてるのがそれで全部終わりだよのしるし。&lt;/p&gt;
&lt;h4&gt;7ビットの日本語コードは ISO-2022-JP&lt;/h4&gt;
&lt;p&gt;ISO-2022-JPのコード体系はJISとほぼ同じ。でも半角カナ等に該当するコードが空けられているという点が違う。Content-TypeのcharsetでコードがISO-2022-JPであることを表す。ISO-2022-JPは7ビットコードなので、Content-Transfer-Encodingは省略しても構わない。&lt;/p&gt;
&lt;p class="note02"&gt;Content-Type: text/plain; charset=&amp;quot;ISO-2022-JP&amp;quot;&lt;br /&gt;
Content-Transfer-Encoding: 7bit&lt;/p&gt;
&lt;p&gt;ISO-2022-JPに変換できない場合や、正確に送信する必要のある原稿などを添付ファイルにする場合は、BASE64を用いて中身をテキストデータにエンコードする。例えばこういう風にするとよいらしい。&lt;/p&gt;
&lt;p class="note02"&gt;Content-Type: text/plain; charset=&amp;quot;SJIS&amp;quot;&lt;br /&gt;
Content-Transfer-Encoding: base64&lt;/p&gt;
&lt;p&gt;とにかくそのまま送ったらマズいものはエンコードして送ればいいという感じなんかな。なんか難しい。とりあえずメールの仕組みはうっすらと分かった気になったので、実際のソースを見ながら追ってみた。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;ソースを参考させて頂いたページ&lt;/h3&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;a href="http://www.komonet.ne.jp/~php/program/fmail/chap2.htm" target="_blank"&gt;ファイル添付フォームメール&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://labs.unoh.net/2007/08/php_10.html" target="_blank"&gt;ウノウラボ Unoh Labs: さくらインターネットで添付画像付きのマルチパートメールをPHPで送ってみる&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上で予習した内容を元にソースを追ってみると、分かる･･･分かるわ、ママン！状態でウホウホになった。&lt;/p&gt;
&lt;h4&gt;めっさ大まかな流れ&lt;/h4&gt;
&lt;ol class="entrylist02"&gt;
&lt;li&gt;ヘッダの組み立て&lt;/li&gt;
&lt;li&gt;添付画像のエンコード（&lt;a href="http://www.php.net/manual/ja/function.base64-encode.php" target="_blank"&gt;base64でエンコード&lt;/a&gt;して、&lt;a href="http://php.net/manual/ja/function.chunk-split.php" target="_blank"&gt;chunk_split&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;バウンダリを利用してパート化、ボディの組み立て&lt;/li&gt;
&lt;li&gt;mail関数で送信&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 class="tit_h3"&gt;mb_send_mailではなくmailを使ったほうがいい理由&lt;/h3&gt;
&lt;p&gt;いろいろググった情報では「添付を扱う場合はmb_send_mailじゃなくてmailの方を使う」みたいな事が至るサイトに書いてあった。んでもね、最近購入した&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798119865/redline0c-22/" target="_blank"&gt;「PHP 逆引きレシピ」&lt;/a&gt;という本によると「添付ファイル付きのメールを送りたい」のページのソースはmb_send_mailになってるんですよね。んで、このページにたどり着きました。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://blog.goo.ne.jp/zonch/e/257707dbcda13a110196a0360dd8cae2" target="_blank"&gt;mb_send_mailで添付メール - おふぃす・ぞんち開発日記&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なるほど。「&lt;q&gt;結論的には、受け手の環境によるということです。&lt;/q&gt;」とのこと。だからみんなmail関数の方を使って添付ファイルを送ってるってことなんですね。理解。&lt;/p&gt;
&lt;p&gt;分かったような分かってないような状態ながらいろいろ参考になるサイトや本の力を借りてなんとかそういうモノが作れた。けど1から何も見ずに書けと言われたらまだ書けないな･･･。えーん。まぁ１回作ったんだからそれを元に改造していけばいいか。&lt;/p&gt;
&lt;p&gt;なんか添付絡み、スゲーーややこしかったんですけど、PEAR使ったらもっと簡単にできるらしい。道は長いな。&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=tS0NMafL3pI:RRKnBsOGjXE:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=tS0NMafL3pI:RRKnBsOGjXE:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=tS0NMafL3pI:RRKnBsOGjXE:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=tS0NMafL3pI:RRKnBsOGjXE:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/tS0NMafL3pI/php_7.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/lab/php/php_7.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
        
        
         <pubDate>Tue, 10 Nov 2009 11:46:38 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/lab/php/php_7.php</feedburner:origLink></item>
            <item>
         <title>Photoshopブラシ「まとめ」の「まとめ」</title>
         <description>&lt;p&gt;&lt;ins&gt;2009.11.22　2件追加しました。&lt;/ins&gt;&lt;br /&gt;&lt;ins&gt;2010.02.07　5件追加しました。&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;先日&lt;a href="http://redline.hippy.jp/review/tool/photoshopfireworks.php"&gt;Photoshop用ブラシをFireworksで使うためのエントリ&lt;/a&gt;を書いたので、その肝心のブラシまとめ記事のまとめ。ちょっと自分でもこういう系のエントリをブクマしすぎて把握できなくなってきたのでメモ的に。&lt;br /&gt;
勢いでまとめたのでリンクミスとかあったらすいません＞＜&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;今まで自分がブクマとかしたブラシまとめ・紹介ページ&lt;/h3&gt;
&lt;p&gt;とりあえず適当にジャンル分けしてみた。&lt;/p&gt;
&lt;h4&gt;光系・キラキラ系&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;a href="http://phpspot.org/blog/archives/2009/09/photoshop_155.html" target="_blank"&gt;光が超カッコいいPhotoshopのブラシ色々まとめ:phpspot開発日誌&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.creamu.com/mt/2008/08/photoshop200.html" target="_blank"&gt;きらめく光のPhotoshopブラシ200選 | CREAMU&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://e0166.blog89.fc2.com/blog-entry-664.html" target="_blank"&gt;45の光を表現するphotoshopブラシ集[記事紹介]*ホームページを作る人のネタ帳&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.creamu.com/mt/2009/10/photoshop250.html" target="_blank"&gt;光線を描くためのPhotoshopブラシ250+ | CREAMU&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-photoshop-brushes-and-images-lighting-effects.html" target="_blank"&gt;光のエフェクトを描くPhotoshopのブラシと画像の無料素材 | コリス&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;かっこいい系・グランジ系など&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;ins&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-brush-grunge-by-lostandtaken.html" target="_blank"&gt;グランジのテクスチャを作成できるフリーのPhotoshopのブラシ | コリス&lt;/a&gt;&lt;/ins&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.creamu.com/mt/2009/10/photoshop_17.html" target="_blank"&gt;かっこいいフリーのPhotoshopブラシ集 | CREAMU&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-brush-drippy-sprays.html" target="_blank"&gt;スプレーがポタポタと垂れているようなフリーのPhotoshopのブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/build-websites/operation/design/697.html" target="_blank"&gt;汚した感じを作りだす、Photoshopのグランジ ブラシ集 | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-photoshop-brush-grungy-paper.html" target="_blank"&gt;グランジ風のペーパーを描く、Photoshop用の高解像度のブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-photoshop-brush-smoke-effects.html" target="_blank"&gt;スモークのエフェクトを描く、高解像度のPhotoshopのブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ascii.jp/elem/000/000/204/204109/" target="_blank"&gt;ASCII.jp：Photoshopブラシで流行のグランジを取り込もう&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-photoshop-brush-grunge-strokes.html" target="_blank"&gt;汚した感じのグランジのストロークを描く無料のPhotoshopのブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;手書き風&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-photoshop-brush-drawn-with-pen.html" target="_blank"&gt;筆でさっと描いたようなネコのPhotoshopのブラシ素材 | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.css-lecture.com/log/photoshop/hand-drawn-photoshop-brushes.html" target="_blank"&gt;手書き風の雰囲気を出すPhotoshopブラシツール | CSS Lecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/build-websites/operation/design/freebies-photoshop-brush-doodled-trees.html" target="_blank"&gt;手書き風の木を描いた、高解像度のPhotoshopのブラシ -PeHaa | コリス&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;フレーム・罫線・枠・角&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;a href="http://kachibito.net/web-design/29-frame-photoshop-brushes.html" target="_blank"&gt;フリーのフレーム型Photoshopブラシ・29種 - かちびと.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/build-websites/operation/design/690.html" target="_blank"&gt;罫線や枠線、角などのアクセントになるPhotoshopのブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;矢印&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/build-websites/operation/design/2229.html" target="_blank"&gt;フリーの手書き風のアローのPhotoshopのブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/build-websites/operation/design/1525.html" target="_blank"&gt;いろいろなデザインの矢印（アロー）のPhotoshopのブラシ集 | コリス&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;人・シルエット&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;a href="http://design-develop.net/design/humanbrush-vector.html" target="_blank"&gt;人間のシルエットを表現したフリーphotoshopブラシ集&amp;amp;ベクターデータ集 | DesignDevelop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://kachibito.net/web-design/free-human-images.html#chapter4" target="_blank"&gt;フリーの人物素材いろいろ・写真とかPhotoShopブラシとか - かちびと.net&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;植物&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;ins&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-photoshop-brush-high-res-leaf.html" target="_blank"&gt;商用でも無料で利用できる、高解像度の葉っぱのPhotoshopのブラシ | コリス&lt;/a&gt;&lt;/ins&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-photoshop-brush-quality-leaf.html" target="_blank"&gt;高解像度の葉っぱのハイクオリティなPhotoshopのブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://designfruit.com/jasongaylor/blog/2007/01/17/japanese-foliage/" target="_blank"&gt;Japanese Foliage » Designfruit: High-Resolution Photoshop Brushes, Vectors, Illustrator Swatch Patterns and Vinyl Decals&lt;/a&gt;&lt;br /&gt;
※このブログで使ってるブラシ、コレです。&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpspot.org/blog/archives/2009/04/photoshop_132.html" target="_blank"&gt;木、葉っぱ、雲、水など自然に関するPhotoshopブラシセット:phpspot開発日誌&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;季節モノ&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;a href="http://phpspot.org/blog/archives/2008/11/post_274.html" target="_blank"&gt;雪、氷などクリスマスに使えそうなブラシ集:phpspot開発日誌&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tutorialblog.org/christmas-photoshop-brushes/" target="_blank"&gt;Christmas Photoshop Brushes | Photoshop | Tutorial Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://kachibito.net/web-design/free-summer-photoshop-brusfes.html" target="_blank"&gt;夏を感じるフリーのPhotoshopブラシ・まとめ - かちびと.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.nutspress.com/2010/02/01/valentine-vintage-photosho-brushes/" target="_blank"&gt;バレンタインに使えるヴィンテージテイストのフォトショップブラシ | Nutspress&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;その他 多種多様&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;a href="http://www.designwalker.com/2007/12/japanese-brushes.html" target="_blank"&gt;和風なPhotoshopブラシまとめ | DesignWalker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/build-websites/operation/design/670.html" target="_blank"&gt;雪・花・泡・落葉・竹・落書きなどのPhotoshopのブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/build-websites/operation/design/1439.html" target="_blank"&gt;独特な雰囲気がある外国の昔の本のようなPhotoshopのブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/build-websites/operation/design/376.html" target="_blank"&gt;水や炎・爆発をイメージしたPhotoshopのブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/build-websites/operation/design/885.html" target="_blank"&gt;写真やドローイングから作成された高品質なPhotoshopのブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://design-develop.net/design/12-high-quality-photoshop-brush-sets.html" target="_blank"&gt;コーヒーのシミから稲妻までハイクオリティなphotoshopブラシ集「12 high quality Photoshop brush sets」 | DesignDevelop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-font-ffonts.html" target="_blank"&gt;ハイクオリティな商用サイトでも無料で利用できるPhotoshopのブラシ -Fresh eMedia | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/build-websites/operation/design/photoshop-brush-scotch-tape.html" target="_blank"&gt;ポスターを貼るセロハンテープのようなフリーのPhotoshop用のブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-photoshopfreebrushes.html" target="_blank"&gt;多種多様な無料のPhotoshopのブラシがダウンロードできる -Photoshop Free Brushes | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpspot.org/blog/archives/2007/08/100photoshopget.html" target="_blank"&gt;100以上のクールなPhotoShop用ブラシがダウンロードできる「getbrushes.com」:phpspot開発日誌&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpspot.org/blog/archives/2008/06/photoshopx300.html" target="_blank"&gt;ビンテージ風のテクスチャやPhotoshopブラシ素材x300:phpspot開発日誌&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-photoshop-brush-squirrels.html" target="_blank"&gt;かわいらしいリスの写真をベースにしたPhotoshopのブラシ素材 | コリス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/freebies/freebies-photoshop-brush-texture.html" target="_blank"&gt;商用でも無料で利用できる、Photoshopのテクスチャブラシ | コリス&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;海外サイト&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;a href="http://www.noupe.com/photoshop/high-quality-photoshop-brushes-resources-and-tutorials.html" target="_blank"&gt;High Quality Photoshop Brushes, Resources and Tutorials « Noupe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2008/11/10/50-must-have-photoshop-brushes/" target="_blank"&gt;50 Must-Have Photoshop Brushes « Smashing Magazine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.noupe.com/photoshop/1000-free-high-resolution-photoshop-brush-sets.html" target="_blank"&gt;1000+ Free High Resolution Photoshop Brush Sets « Noupe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.sevendv.com/?p=545" target="_blank"&gt;7dv Blog » Designer Tools: Brushes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="tit_h3"&gt;この辺り押さえておけばいいよね&lt;/h3&gt;
&lt;p&gt;ブクマしたまとめページの中でも自分の気に入ったものがなかったらこの辺りで探せばいいよねっていう配布サイト。紹介されてるのってだいたいこの辺りで配布されてんじゃね？っていうサイトをいくつか。&lt;/p&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;a href="http://www.brusheezy.com/" target="_blank"&gt;Photoshop Brushes - Free Photoshop Brushes at Brusheezy!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://myphotoshopbrushes.com/" target="_blank"&gt;Photoshop Brushes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.psbrushes.net/" target="_blank"&gt;PS Brushes.net - Photoshop Brushes, Your Number one source for Photoshop Brushes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.photoshoproadmap.com/Photoshop-downloads/Brushes//Most-popular/1/" target="_blank"&gt;Photoshop downloads: Photoshop Brushes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.brushking.eu/" target="_blank"&gt;Free Photoshop Brushes | BrushKing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://browse.deviantart.com/resources/applications/psbrushes/?order=9&amp;amp;alltime=yes" target="_blank"&gt;Browsing Photoshop Brushes on deviantART&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://getbrushes.com/" target="_blank"&gt;Photoshop Brushes: 150+ High Quality Free Photoshop Brushes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.photoshopbrushes.com/" target="_blank"&gt;Free Photoshop Brushes downloads and Photoshop Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=0VkLFOnng04:TjWbw_UVXzg:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=0VkLFOnng04:TjWbw_UVXzg:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=0VkLFOnng04:TjWbw_UVXzg:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=0VkLFOnng04:TjWbw_UVXzg:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/0VkLFOnng04/photoshop_3.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/review/tool/photoshop_3.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">tool</category>
        
        
         <pubDate>Wed, 21 Oct 2009 21:24:13 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/review/tool/photoshop_3.php</feedburner:origLink></item>
            <item>
         <title>Photoshop用ブラシをFireworksで。</title>
         <description>&lt;p&gt;いろんなサイトでPhotoshopの素敵なフリーのブラシ素材が配付されてて、そんな配付サイトの紹介エントリを目撃するたびに「これFireworksでそのまま使えたらいいのになぁ」なんて思います。まぁそのままブラシとしてFireworks上で使うことはできないのですが、Photoshopの素敵ブラシを使用する機会は多いのでFireworks使いの自分がどう付き合ってるのかっていうエントリです。&lt;/p&gt;
&lt;p&gt;とりあえず前提として、Fireworks上でそのままブラシとして使うことはできない（多分）ということで、感覚的にはスタンプ画像みたいな感じで使ってます。とにもかくにも、まずはどうにかして使いたいブラシをFireworks上に移植にする事からですよね。Fireworks用にスタンプ画像的なものを用意するいくつかの方法から。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;Photoshopからそのままグイーン&lt;/h3&gt;
&lt;p&gt;自分はFireworks使いといってもPhotoshopも持っているので、これは一番楽な方法。Photoshop上でブラシを使って、それをそのままFireworksのカンバスへドラッグ。&lt;strong&gt;但し、透過されないので&lt;/strong&gt;背景が白色になる。&lt;/p&gt;
&lt;p&gt;&lt;img src="http://redline.hippy.jp/images/091004_01.png" alt="キャプチャ・PhotoshopからFireworksへドラッグ" /&gt;&lt;/p&gt;
&lt;p&gt;白背景のデザインでもうそのまま置きたいだけっていう場合はこれが一番早い。逆に透過されてないと困る場合はこの方法じゃ無理。背景色が白、単発で使いまわしもしない場合はコレで事足りる。けど、同じブラシをサイズや色を変えてFireworks上で使い回ししたい場合は不向き。いちいちFireworksとPhotoshopを行ったりきたりしなきゃならないのでその辺りは面倒。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;Photoshopで一旦透過png画像へ&lt;/h3&gt;
&lt;p&gt;使いたいブラシで画像を作って一旦Photoshopから透過png画像として保存。その後Fireworks上へ配置する方法。スタンプ的な感じ。上記の直接グイーンよりもこっちの方がFireworks上でいろいろできる。というか、やっぱり透過されてる方が絶対便利で使いやすい。&lt;/p&gt;
&lt;p&gt;&lt;img src="http://redline.hippy.jp/images/091004_02.png" alt="キャプチャ・Photoshopで書き出した透過png画像をFireworks上に配置" /&gt;&lt;/p&gt;
&lt;p&gt;「あ、もう少し大きくしたい」という場合が多々あるので、予めPhotoshopで大きめの画像にしておく方がオススメです。大きい画像を小さくする分には問題ないのですが、小さいものを大きくするとぼやけて汚くなるので･･･。何回もPhotoshop上で同じ画像をサイズ変更して保存するのは面倒なので、大きすぎるんじゃね？くらいで後々使いやすくなるんじゃないかと。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;Photoshopがないなら「abrViewer」&lt;/h3&gt;
&lt;p&gt;以前にも&lt;a href="http://redline.hippy.jp/review/tool/post_44.php"&gt;紹介した事があるのですが、&lt;/a&gt;Photoshopのブラシをプレビューすることが出来る「abrViewer」というソフトがあります。Photoshopを持ってなくても、これがあればブラシをプレビューして透過png画像として保存、という工程はクリアできます。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://abrviewer.sourceforge.net/" target="_blank"&gt;&amp;gt;&amp;gt;Opensource photohop brush viewer - abrViewer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;「abrViewer」にブラシファイルを読み込んで「Export」&gt;「thumbnail」をクリック。&lt;/p&gt;
&lt;p&gt;&lt;img src="http://redline.hippy.jp/images/091004_03.png" alt="キャプチャ・「abrViewer」へブラシファイルを読み込み「Export」&gt;「thumbnail」をクリック" /&gt;&lt;/p&gt;
&lt;p&gt;任意のフォルダを選択すると、自動的にそのブラシファイルに含まれるすべてのデータが透過png形式で保存されます。&lt;/p&gt;
&lt;p&gt;&lt;img src="http://redline.hippy.jp/images/091004_04.png" alt="キャプチャ・「abrViewer」から書き出しされたブラシの透過png画像" /&gt;&lt;/p&gt;
&lt;p&gt;こんな感じで透過されてるのがわかります。&lt;br /&gt;&lt;img src="http://redline.hippy.jp/images/091004_05.png" alt="キャプチャ・「abrViewer」から書き出しされたブラシの透過png画像をFireworksに読み込んだ" /&gt;&lt;/p&gt;
&lt;p&gt;気に入ってるブラシに含まれるデータをいろいろと使いたいって場合はPhotoshopを開いて1つ1つ選ぶより、こっちの方法で一気に用意してしまった方が早いです。何度も使いまわしたいので共有ライブラリに入れておきたいっていう場合もこっちの方がいいと思います。保存されるサイズはそのブラシのオリジナルサイズになります。ということでPhotoshopがなくてもFireworks上にスタンプ画像を用意する事はできる、と。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;Fireworks上で出来る事&lt;/h3&gt;
&lt;p&gt;本当はこういったブラシに関する事はPhotoshopで仕上げてしまうというのが一番いいのでしょうが、今回はFireworks上で加工もなんとかするぜ！という趣旨なのでそういうノリで書きますね。&lt;/p&gt;
&lt;h4&gt;色の変更&lt;/h4&gt;
&lt;p&gt;色の変更はフィルタ関連のパネルの「カラーを調整」の辺りで調整するか、ツールボックスの「カラーの置き換え」を利用して変更してます。「カラーの置き換え」はビットマップ画像でも特定の色だけを変更するという作業が効率よくできるので結構オススメです。という自分も「カラーの置き換え」は最近知ったツールなんですが･･･。例えばサイトのメインカラーが決まっててそれに合わせて特定の色部分のみ、その決まっている色に変更したい場合なんかにはめちゃめちゃ使いやすいです。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://help.adobe.com/ja_JP/Fireworks/10.0_Using/WS4c25cfbb1410b0021e63e3d1152b00cce0-7ff8.html" target="_blank"&gt;&amp;gt;&amp;gt;Adobe Fireworks CS4 * ビットマップオブジェクトのカラーの置き換え&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://redline.hippy.jp/images/091004_06.png" alt="キャプチャ・フィルタパネル" /&gt;&lt;/p&gt;
&lt;p&gt;「カラーを調整」&gt;「色相・彩度」で色を変更してみた例。&lt;br /&gt;
&lt;img src="http://redline.hippy.jp/images/091004_07.png" alt="キャプチャ・「カラーを調整」&gt;「色相・彩度」で色を変更してみた例" /&gt;&lt;/p&gt;
&lt;p&gt;「カラーの置き換え」で元画像の一番濃い色部分のみを変更してみた例。&lt;br /&gt;
&lt;img src="http://redline.hippy.jp/images/091004_08.png" alt="キャプチャ・「カラーの置き換え」で元画像の一番濃い色部分のみを変更してみた例" /&gt;&lt;/p&gt;
&lt;h4&gt;サイズ・方向の変更&lt;/h4&gt;
&lt;p&gt;普通に「拡大・縮小ツール」や「変更 &gt; 変形 &gt; 数値を入力して変形」等で変更。反転とか角度とかも普通にいつもFireworksで作ってる画像同様に変形すればいい。&lt;/p&gt;
&lt;p&gt;※ちょいメモ。読み飛ばしＯＫ。&lt;br /&gt;
何か理由があって画像補完形式を「バイキュービック法」以外の設定にしてる場合は頻繁にそういう設定を変更するのは面倒だと思うのでエッジが汚くなるのを防御するため、一旦別のカンバス上にその画像を置いて「カンバスをあわせる」&gt;「画像サイズ」で変更。&lt;/p&gt;
&lt;p&gt;&lt;img src="http://redline.hippy.jp/images/091004_09.png" alt="キャプチャ・「バイキュービック法」とそれ以外でサイズを変更" /&gt;&lt;br /&gt;左が「バイキュービック法」以外の形式で小さくしたもの、右が「バイキュービック法」や「画像サイズ」で小さくしたもの。&lt;/p&gt;
&lt;p&gt;実は少し前に何かあって「バイキュービック法」から違う形式に変更していたのを忘れてて、画像の拡大縮小の際にえらくエッジがギサギサでどないなっとるねんって一人で悶々としてたんですね。普段触らない設定をいじると焦りますねぇ。つーことで上の一文は自分がまた焦らないための復習メモってことで。デフォルト設定はちゃんと「バイキュービック法」になっているはずなので気にしないでＯＫです。&lt;/p&gt;
&lt;h4&gt;グラデーションを付ける・その1&lt;/h4&gt;
&lt;p&gt;配置した画像は、そのままグラデーションをかけるのは無理なので、方法を2つほど。&lt;/p&gt;
&lt;p&gt;まずはマスクを利用する方法。長方形でも円形でもいいので、普通にグラデーションの付いた矩形を用意してマスク（Alt+M+M+G）。もしくは「コマンド」&gt;「クリエイティブ」&gt;「ベクトルマスク」とか。&lt;/p&gt;
&lt;p&gt;&lt;img src="http://redline.hippy.jp/images/091004_10.png" alt="キャプチャ・グラデーションのかかってる矩形と重ねてマスク" /&gt;&lt;/p&gt;
&lt;p&gt;グラデーションの種類は線形でも円形でもその他の種類でもＯＫ。&lt;br /&gt;
&lt;img src="http://redline.hippy.jp/images/091004_11.png" alt="キャプチャ・グラデーションの種類「しわ」とマスク" /&gt;&lt;/p&gt;
&lt;p&gt;マスクに使用するグラデーションは何色にしてもマスクかけた画像の色自体は変わらないのでそこはやっぱり手動で変更。&lt;br /&gt;
&lt;img src="http://redline.hippy.jp/images/091004_12.png" alt="キャプチャ・グラデーションつけた元画像の色を変更" /&gt;&lt;/p&gt;
&lt;p&gt;「コマンド」&gt;「クリエイティブ」&gt;「ベクトルマスク」でも同じような結果になる。（自分が使ってるバージョンはCS4なんですが、以前使ってたバージョンでは「イメージのフェード」っていう名称だった気がします）&lt;/p&gt;
&lt;h4&gt;グラデーションをかける・その2&lt;/h4&gt;
&lt;p&gt;これは以前FireworksのTipsを紹介してるサイトで見かけた（どこのサイトだったか忘れました。すみません＞＜）方法なのですが、一旦そのpng画像と同じサイズくらいのグラデーションをかけたオブジェクトを作ります。（元画像がすっぽり入るように）グラデーションの種類は線形でも円形でも何でもいけます。&lt;/p&gt;
&lt;p&gt;&lt;img src="http://redline.hippy.jp/images/091004_13.png" alt="キャプチャ・png画像と同じサイズのグラデーションをつけたオブジェクトを作る" /&gt;&lt;/p&gt;
&lt;p&gt;そのグラデーションをかけたオブジェクトを元pngの上にピッタリ重ねてから「カット」（CTRL+X）。そして元pngを選択した状態で「編集」&gt;「内部にペースト」（CTRL+Shift+V）&lt;/p&gt;
&lt;p&gt;&lt;img src="http://redline.hippy.jp/images/091004_14.png" alt="キャプチャ・内部にペーストしてグラデーション効果を与える" /&gt;&lt;br /&gt;左が元png画像、右がグラデーションを入れたもの。&lt;/p&gt;
&lt;p class="entry_box03"&gt;ただ、ブラシの種類によってはエッジがかなり目立つ感じになるのでそこは何とかせねばならんかもです。&lt;br /&gt;
また、ブラシの中で色の濃淡による模様が入ってる場合はなくなっちゃうので、濃淡も活かしたいって場合は･･･元ファイルを下に重ねてみる･･･とか？&lt;/p&gt;
&lt;p class="entry_box04"&gt;&lt;img src="http://redline.hippy.jp/images/091004_15.png" alt="キャプチャ・元ファイルとグラデーションを付けた画像を重ねて模様を無理やり再現" /&gt;&lt;/p&gt;
&lt;p class="clear"&gt;グラデージョンをかけたオブジェクトをカットする際、必ず元png画像の上にピッタリ重ねる必要があります。ここちゃんと重なってないと内部にペーストできないです。&lt;/p&gt;
&lt;h4&gt;フィルタをかける&lt;/h4&gt;
&lt;p&gt;デザインに合わせて、フィルタパネルの中から適当なフィルタ効果をかけて加工。なんかちょっとだけ作ってみた。ちょっと立体的にしたり、ノイズ入れたり。なんやかんや・・・。&lt;/p&gt;
&lt;p&gt;&lt;img src="http://redline.hippy.jp/images/091004_16.png" alt="キャプチャ・いろいろフィルタをかけてみたサンプル" /&gt;&lt;/p&gt;
&lt;p&gt;というわけで、自分はこんな感じでPhotoshopブラシをFireworks上で使ってます、というお話でした。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;意外と知られていないペースト機能&lt;/h3&gt;
&lt;p&gt;ここからはブラシ関係ない話なんですが、上でちょっと触れたので、ついでに書いてみます。Fireworksの「編集」メニューの中には普通のペースト以外にも3つのペースト機能があります。これが意外と便利なんですよ。&lt;/p&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;&lt;a href="http://help.adobe.com/ja_JP/Fireworks/10.0_Using/WS4c25cfbb1410b0021e63e3d1152b00d169-7fec.html#WS4c25cfbb1410b0021e63e3d1152b00d169-7feb" target="_blank"&gt;マスクとしてペースト（CTRL+ALT+V）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://help.adobe.com/ja_JP/Fireworks/10.0_Using/WS4c25cfbb1410b0021e63e3d1152b00d169-7fec.html#WS4c25cfbb1410b0021e63e3d1152b00d169-7fea" target="_blank"&gt;内部にペースト（CTRL+Shift+V）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;属性をペースト（CTRL+ALT+Shift+V）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;属性をペーストのマニュアルのページがどこか分からない＞＜&lt;br /&gt;これは一度作ったオブジェクトのスタイルだけをコピーして別のオブジェクトに適応させてくれる使い勝手のいいペースト機能です。よく使うものはスタイルパネルに登録という方法もあるんですが、そこまでするまでもないっていうケースでいい感じです。&lt;/p&gt;
&lt;p&gt;&lt;img src="http://redline.hippy.jp/images/091004_17.png" alt="キャプチャ・属性をペーストしたサンプル" /&gt;&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;今回エントリで使用させて頂いたブラシ&lt;/h3&gt;
&lt;p&gt;今回、上で使用させて頂いた蝶のブラシは&lt;a href="http://hawksmont.com/" target="_blank"&gt;hawksmont Universe :)&lt;/a&gt;さんで配付されていたものなんですが、なにやらセキュリティ問題に遭遇してブラシ配付が停止になってるっぽいです。（2009年10月4日現在）ブラシのページにいくとNot Foundになっちゃう。ブラシを紹介してるいろんなブログで取り上げられてたのに残念＞＜&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=uzHBuFiTlas:mkIUirYKhDo:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=uzHBuFiTlas:mkIUirYKhDo:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=uzHBuFiTlas:mkIUirYKhDo:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=uzHBuFiTlas:mkIUirYKhDo:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/uzHBuFiTlas/photoshopfireworks.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/review/tool/photoshopfireworks.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">tool</category>
        
        
         <pubDate>Sun, 04 Oct 2009 13:39:29 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/review/tool/photoshopfireworks.php</feedburner:origLink></item>
            <item>
         <title>CSS 画像の一部を使う3つの方法</title>
         <description>&lt;p&gt;こちらの記事でCSSを利用して画像の一部分だけを表示させる3つのテクニックが載ってました。タイムリーに実務で使うかも！とか思ったのでメモがてらにエントリ。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://cssglobe.com/post/6089/3-easy-and-fast-css-techniques-for-faux-image" target="_blank"&gt;3 Easy and Fast CSS Techniques for Faux Image Cropping | Css Globe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ちなみに上記エントリでは、これらの方法を「Faux Image Cropping」って呼んでます。私の拙い英語力ではCropって「作物」としか記憶してなくて一瞬何のこっちゃと思ったんですが、辞書引いてみると「刈る」とかいう意味もあるんですね。なるほどなるほど。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;ネガティブマージンを利用する方法&lt;/h3&gt;
&lt;p&gt;まず１つ目はネガティブマージンを利用する方法。&lt;/p&gt;
&lt;h4&gt;必要条件&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;親要素に「overflow:hidden;」を指定&lt;/li&gt;
&lt;li&gt;一部分を利用する画像に対してのネガティブマージンの指定&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="note02"&gt;&lt;a href="http://redline.hippy.jp/redline_sample/0909/sample1.html" target="_blank"&gt;&amp;gt;&amp;gt;ネガティブマージンを利用したサンプルページ　その1&lt;/a&gt;&lt;/p&gt;
&lt;pre class="short"&gt;&lt;code&gt;【CSS部分】
.crop{
	float:left;
	overflow:hidden;  /* これが重要 */
	border:2px solid #630;
	}
.crop img{
	margin:-20px -15px -40px -55px;　/* 位置コントロール */
	}
   
【HTML部分】
&amp;lt;p class=&amp;quot;crop&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;090929_01.jpg&amp;quot; alt=&amp;quot;サンプル画像&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;一応上記サイトのソースを元にサンプルを用意したので.crop に float が入ってるけど、別にそれはなくてもいい。ただ、同ページの解説によると「親要素（ここではP）はフロートしてるはず、もしくは明確に幅が指定してあるに違いない」となってる。（英訳おかしかったらツっこんでくだせー＞＜）まぁこの方法はそのブロック要素が全幅ブロックの場合はうまくいかず不都合があるんじゃないかな、ということらしい。同じく.crop に入ってる border は画像がカットされてますっていうのを判りやすいように入れているだけなのでなくても大丈夫。ネガティブマージンの値は、自分好みの位置になるまでいじいじしまくるべし。&lt;/p&gt;
&lt;p&gt;当然、親要素に幅・高さを指定した場合はそのサイズになる。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://redline.hippy.jp/redline_sample/0909/sample2.html" target="_blank"&gt;&amp;gt;&amp;gt;ネガティブマージンを利用したサンプルページ　その2&lt;/a&gt;&lt;/p&gt;
&lt;pre class="short"&gt;&lt;code&gt;【CSS部分】
.crop{
	width:150px;
	height:150px;    
	overflow:hidden;  /* これが重要 */
	border:2px solid #630;
	}
.crop img{
	margin:-20px -15px -40px -55px;　/* 位置コントロール */
	}
   
【HTML部分】
&amp;lt;p class=&amp;quot;crop&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;090929_01.jpg&amp;quot; alt=&amp;quot;サンプル画像&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;いろんなサイズの画像をズラーと並べて一覧みたいにしたい時はこっちの方が絶対見栄えはいいと思われ。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;絶対配置を利用する方法&lt;/h3&gt;
&lt;h4&gt;必要条件&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;親要素に幅・高さを必ず指定（領域確保用）&lt;/li&gt;
&lt;li&gt;親要素に「position:relative;」を指定&lt;/li&gt;
&lt;li&gt;親要素に「overflow:hidden;」を指定&lt;/li&gt;
&lt;li&gt;一部分を利用する画像に対しての「position:absolute; 」と位置の指定&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="note02"&gt;&lt;a href="http://redline.hippy.jp/redline_sample/0909/sample3.html" target="_blank"&gt;&amp;gt;&amp;gt;絶対配置を利用したサンプルページ&lt;/a&gt;&lt;/p&gt;
&lt;pre class="short"&gt;&lt;code&gt;【CSS部分】
.crop{
	float:left;
	overflow:hidden; /* これが重要 */
	position:relative; /* これが重要 */
	border:2px solid #630;
	width:150px;
	height:150px;
	}
.crop img{
	position:absolute; /* 絶対配置で位置コントロール */
	top:-20px;
	left:-55px;
	}
   
【HTML部分】
&amp;lt;p class=&amp;quot;crop&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;090929_01.jpg&amp;quot; alt=&amp;quot;サンプル画像&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ここでも.crop に floatは別に必ず必要なものではないけど一応入れてみた。親要素に幅や高さを指定が必ず必要なのは position を利用するので、表示の領域確保用。幅・高さの指定がなかったらスペースが詰まって画像消えちゃうと思う。該当画像に対しては position:absolute; を指定して親要素からの位置合わせを。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;Clipプロパティを利用する方法&lt;/h3&gt;
&lt;h4&gt;必要条件&lt;/h4&gt;
&lt;ul class="entrylist01"&gt;
&lt;li&gt;親要素に幅・高さを必ず指定（領域確保用）&lt;/li&gt;
&lt;li&gt;親要素に「position:relative;」を指定&lt;/li&gt;
&lt;li&gt;一部分を利用する画像に対しての「position:absolute; 」と位置の指定&lt;/li&gt;
&lt;li&gt;一部分を利用する画像に対して「clip」の指定&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="note02"&gt;&lt;a href="http://redline.hippy.jp/redline_sample/0909/sample4.html" target="_blank"&gt;&amp;gt;&amp;gt;Clipプロパティを利用したサンプルページ&lt;/a&gt;&lt;/p&gt;
&lt;pre class="short"&gt;&lt;code&gt;【CSS部分】
.crop{
 	float:left;
 	position:relative;
	width:150px;
	height:150px;
	border:2px solid #630;
	}
.crop p{
	margin:0;
	position:absolute;
	top:-20px;
	left:-55px;
	clip:rect(20px 205px 170px 55px);
	}	
   
【HTML部分】
&amp;lt;div class=&amp;quot;crop&amp;quot;&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;http://redline.hippy.jp/images/090929_01.jpg&amp;quot; alt=&amp;quot;サンプル画像&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;親要素に幅・高さを与えるのはその分の領域を確保しておかないと詰まってスペースがなくなっちゃうのを回避するため。クリップされる要素に position:absolute; を指定するのは、それを指定しないと clip が有効にならないため。&lt;/p&gt;
&lt;p&gt;ややこしいのは clip のrect で指定する値。並びは margin やら padding  といったプロパティと同じ上右下左の順番。ただ、それらが上右下左の各点の端から距離を計算すればいいのに対して、clip は右と下の値に左・上からそこまでの距離を指定する必要がある。日本語難しいから図にするとこんな感じ。（↓）&lt;/p&gt;
&lt;p&gt;&lt;img src="http://redline.hippy.jp/images/090929_02.jpg" alt="図・clipプロパティのrectの値" /&gt;&lt;/p&gt;
&lt;p&gt;clipプロパティについてはこちら。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://w3g.jp/css/display_position/clip" target="_blank"&gt;clip CSS 表示と配置&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.htmq.com/style/clip.shtml" target="_blank"&gt;clip－スタイルシートリファレンス&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;CSS2とCSS2.1でちょこっと仕様が違うみたい。『&lt;q&gt;CSS2 では半角スペース、またはカンマ（,）のどちらかで区切って指定することになっていましたが、CSS2.1 ではカンマ（,）で区切らなければなりません。ただし、現状では CSS2 仕様に準拠している UA が多いことと、Windows版Internet Explorer 6 においては「top」「right」「bottom」「left」の部分に対応する値をカンマ（,）区切りにすると、表示に反映されないので、CSS2 仕様の半角スペース区切りによる指定を行う方が無難です。&lt;/q&gt;』とのことで、今のところ値の区切りは半角スペースでよさそう。IE6以外ではどっちでも問題ない。&lt;/p&gt;
&lt;h3 class="tit_h3"&gt;おまけ&lt;/h3&gt;
&lt;p&gt;そういえば随分前にこんなエントリも書いた。遊びだけどもしよかったら･･･。&lt;/p&gt;
&lt;p class="note02"&gt;&lt;a href="http://redline.hippy.jp/lab/css/css_14.php" target="_blank"&gt;RedLine Magazine : CSSで文字サイズに画像サイズを合わせる&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=zeEQOv0-sfE:TsuWtuYePoE:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=zeEQOv0-sfE:TsuWtuYePoE:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RedlineMagazine?a=zeEQOv0-sfE:TsuWtuYePoE:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RedlineMagazine?i=zeEQOv0-sfE:TsuWtuYePoE:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://feedproxy.google.com/~r/RedlineMagazine/~3/zeEQOv0-sfE/css_3_1.php</link>
         <guid isPermaLink="false">http://redline.hippy.jp/lab/css/css_3_1.php</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">css</category>
        
        
         <pubDate>Mon, 28 Sep 2009 12:49:18 +0900</pubDate>
      <feedburner:origLink>http://redline.hippy.jp/lab/css/css_3_1.php</feedburner:origLink></item>
      
   </channel>
</rss>
