<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>PAOLOG &#187; PHP</title>
	<atom:link href="http://scianto.net/archives/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://scianto.net</link>
	<description>趣味のウェブデザインと管理人PAONの日記</description>
	<lastBuildDate>Wed, 25 Aug 2010 12:57:48 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://scianto.net/archives/tag/php/feed" />
		<item>
		<title>Amazon Product Advertising APIの導入準備</title>
		<link>http://scianto.net/archives/2010/02/23182003.php</link>
		<comments>http://scianto.net/archives/2010/02/23182003.php#comments</comments>
		<pubDate>Tue, 23 Feb 2010 09:20:03 +0000</pubDate>
		<dc:creator>paon</dc:creator>
				<category><![CDATA[web design]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Product Advertising API]]></category>

		<guid isPermaLink="false">http://scianto.net/?p=770</guid>
		<description><![CDATA[

PHPもしばらく触っていないとまったく初心者に逆戻り。なので再びの勉強ということでAmazonの「Product Advertising API」を使った商品検索をPHPで作ってみることにします。

Acce [...]]]></description>
			<content:encoded><![CDATA[
<p><img class="alignnone size-full wp-image-766" title="product advertising api" src="http://scianto.net/paolog-wp/wp-content/uploads/2010/02/20100221-01.png" alt="" width="500" height="250" /></p>
<p>PHPもしばらく触っていないとまったく初心者に逆戻り。なので再びの勉強ということでAmazonの「Product Advertising API」を使った商品検索をPHPで作ってみることにします。</p>
<p><span id="more-770"></span></p>
<h2 class="level-2">Access Key IDとSecret Access Keyの確認</h2>
<p>以前にもこのWebサービスを使ったことがあるのでAccess Keyはすでに取得済み。なのでSecret Access Keyの確認をします。</p>
<p>まずは<a href="http://aws.amazon.com/">http://aws.amazon.com/</a>にアクセス。ログインします。</p>
<p><img class="alignnone size-full wp-image-767" title="amazon web service トップページ" src="http://scianto.net/paolog-wp/wp-content/uploads/2010/02/20100221-02.png" alt="" width="500" height="386" /></p>
<p>ここもよくデザインが変わるので確認ページを探すのも少し手惑います。現時点では右上の「Account」から。</p>
<p><img class="alignnone size-full wp-image-768" title="accountをクリック" src="http://scianto.net/paolog-wp/wp-content/uploads/2010/02/20100221-03.png" alt="" width="488" height="281" /></p>
<p>ページの真ん中あたりにAccess Key IDとSecret Access Keyが書いてあるはず。</p>
<p><img class="alignnone size-full wp-image-769" title="IDとsecret keyを確認" src="http://scianto.net/paolog-wp/wp-content/uploads/2010/02/20100221-04.gif" alt="" width="500" height="377" /></p>
<h2 class="level-2">サンプルソースでアクセスする</h2>
<p>APIへアクセスするためのコードは以下のサイトで紹介されているものを転載させてもらいます。</p>
<p><a href="http://d.hatena.ne.jp/p4life/20090510/1241954889">Amazon Product Advertising API への対応（PHP版） &#8211; もやし日記</a></p>
<pre class="brush:php">&lt;?php

// Access Key ID と Secret Access Key は必須です
$access_key_id = 'Access Key IDを入力';
$secret_access_key = 'Secret Access Keyを入力';

// RFC3986 形式で URL エンコードする関数
function urlencode_rfc3986($str)
{
  return str_replace('%7E', '~', rawurlencode($str));
}

// 基本的なリクエストを作成します
// - この部分は今まで通り
$baseurl = 'http://ecs.amazonaws.jp/onca/xml';
$params = array();
$params['Service']        = 'AWSECommerceService';
$params['AWSAccessKeyId'] = $access_key_id;
$params['Version']        = '2009-11-01';
$params['Operation']      = 'ItemSearch'; // ← ItemSearch オペレーションの例
$params['SearchIndex']    = 'Books';
$params['Keywords']       = 'photoshop';// ← 文字コードは UTF-8

// Timestamp パラメータを追加します
// - 時間の表記は ISO8601 形式、タイムゾーンは UTC(GMT)
$params['Timestamp'] = gmdate('Y-m-d\TH:i:s\Z');

// パラメータの順序を昇順に並び替えます
ksort($params);// canonical string を作成します
$canonical_string = '';
foreach ($params as $k =&gt; $v) {
$canonical_string .= '&amp;'.urlencode_rfc3986($k).'='.urlencode_rfc3986($v);
}
$canonical_string = substr($canonical_string, 1);

// 署名を作成します
// - 規定の文字列フォーマットを作成
// - HMAC-SHA256 を計算
// - BASE64 エンコード
$parsed_url = parse_url($baseurl);
$string_to_sign = "GET\n{$parsed_url['host']}\n{$parsed_url['path']}\n{$canonical_string}";
$signature = base64_encode(hash_hmac('sha256', $string_to_sign, $secret_access_key, true));

// URL を作成します
// - リクエストの末尾に署名を追加
$url = $baseurl.'?'.$canonical_string.'&amp;Signature='.urlencode_rfc3986($signature);//echo $url; // ← この URL にアクセスすれば、API リクエストができます

//返り値をXMLで出力する
header("Content-type: text/xml; charset=utf-8");
echo file_get_contents($url);

?&gt;</pre>
<p>最後だけちょこっと変更して取得したXMLをそのまま表示するようにしてます。</p>
<p>「<a href="https://affiliate.amazon.co.jp/gp/associates/help/t126/a10?ie=UTF8&amp;pf_rd_t=501&amp;ref_=amb_link_84046416_2&amp;pf_rd_m=AN1VRQENFRJN5&amp;pf_rd_p=&amp;pf_rd_s=center-1&amp;pf_rd_r=&amp;pf_rd_i=assoc_help_t126_a9">署名の作成方法</a>」というページがAmazonアソシエイトのヘルプにあるので処理の流れについてはそちらも参考にしてみてください。</p>
<p>署名認証の仕組みはよく理解できませんが流れとしては理解できます。</p>
<p>今回はここまで。</p>
<p>次回はXMLをHTMLに整形して表示する部分をやってみます。</p>
]]></content:encoded>
			<wfw:commentRss>http://scianto.net/archives/2010/02/23182003.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://scianto.net/archives/2010/02/23182003.php" />
	</item>
		<item>
		<title>PHPで画像のサムネイルをつくる</title>
		<link>http://scianto.net/archives/2008/09/28231808.php</link>
		<comments>http://scianto.net/archives/2008/09/28231808.php#comments</comments>
		<pubDate>Sun, 28 Sep 2008 14:18:08 +0000</pubDate>
		<dc:creator>paon</dc:creator>
				<category><![CDATA[web design]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://scianto.net/wpmemo/?p=271</guid>
		<description><![CDATA[
このブログではトップページやカテゴリ一覧ページなど、記事に含まれる画像を取り出してサムネイル表示をしているページがあります。それを実現するために「エントリー内の画像をリストアップするプラグイン(MT4専用版) &#8 [...]]]></description>
			<content:encoded><![CDATA[<p class="photo"><img src="http://scianto.net/photo/20080928_01.gif" alt="" width="500" height="300" /></p>
<p>このブログではトップページやカテゴリ一覧ページなど、記事に含まれる画像を取り出してサムネイル表示をしているページがあります。それを実現するために「<a href="http://www.h-fj.com/blog/archives/2007/07/12-080625.php#more">エントリー内の画像をリストアップするプラグイン(MT4専用版) &#8211; The blog of H.Fujimoto</a>」と「<a href="http://www.gen-x-design.com/projects/php-thumbnailer-class/">PHP Thumbnailer Class v2.0</a>」を組み合わせて使っています。</p>
<p>しかし、ちょっとした問題が起こっています。それは通常どおりにアップロードしたりFTPした画像なら思ったようにサムネイル表示できるのですが、携帯から投稿（モブログ）した写真のほうがどうも表示されない様子です。原因はPHP Thumbnailerにあるようで、exif_read_data関連のエラーがでてますが勉強不足でわかりません。</p>
<p>とりあえずわからないことは後回し。というわけで、自分で簡単なスクリプトをつくってそれを徐々に成長させていくことにしました。最終的にはある程度使えるものになるといいな～ってくらいの気持ちでいきます。</p>
<p><span id="more-271"></span></p>
<pre name="code" class="php">// 画像を読み込む
$file_path = $_GET["filename"];
$image = ImageCreateFromJPEG($file_path);

// 画像のサイズを取得
$width = ImageSX($image);//横幅（ピクセル）
$height = ImageSY($image);//縦幅（ピクセル）

// 横幅を基準に縮小後の画像サイズを決める
$new_width = 150;
$rate = $new_width / $width;

//圧縮比
$new_height = $rate * $height;

// 空の画像を作成する
$new_image = ImageCreateTrueColor($new_width, $new_height);

//画像の再サンプル
ImageCopyResampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

//画像を表示
header('Content-type: image/jpeg');
ImageJpeg($new_image, null, 100);

//画像をメモリから開放
imagedestroy ($image);
imagedestroy ($new_image);
</pre>
<p>上のコードは画像のファイル名（パス）をgetでリクエストして、それを幅150ピクセル（高さは成り行き）のサムネイルに変換して表示するということをしています。これだとjpegファイルしか変換できません。次回はもうちょっと使えるようにします。</p>
<p>たったこれだけなのに結構面倒くさいんですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://scianto.net/archives/2008/09/28231808.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://scianto.net/archives/2008/09/28231808.php" />
	</item>
		<item>
		<title>ロリポップでPHPを使うときにぶつかるパーミッションの壁 (2/2)</title>
		<link>http://scianto.net/archives/2007/03/05000638.php</link>
		<comments>http://scianto.net/archives/2007/03/05000638.php#comments</comments>
		<pubDate>Sun, 04 Mar 2007 15:06:38 +0000</pubDate>
		<dc:creator>paon</dc:creator>
				<category><![CDATA[web design]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[パーミッション]]></category>
		<category><![CDATA[レンタルサーバー]]></category>

		<guid isPermaLink="false">http://scianto.net/wpmemo/?p=211</guid>
		<description><![CDATA[ 
ロリポップでPHPを使うときにぶつかるパーミッションの壁（1/2）の続きです。前回はパーミッションの基本を理解しいている範囲でということで書きました。今回はPHP関連のパーミッションの設定について。


例を挙げたほ [...]]]></description>
			<content:encoded><![CDATA[<p class="pict"> <img src="http://power.scianto.net/img/entryimage/permission03.gif" alt="" width="180" height="120" /></p>
<p><a href="http://power.scianto.net/php/note/id48.php">ロリポップでPHPを使うときにぶつかるパーミッションの壁（1/2）</a>の続きです。<br />前回はパーミッションの基本を理解しいている範囲でということで書きました。<br />今回はPHP関連のパーミッションの設定について。</p>

<span id="more-211"></span>
<p>例を挙げたほうがわかりやすいと思うので、次のようなファイル構成を持つ簡単なアプリケーションの場合を考えます。index.phpは商品データを登録するスクリプトで、商品データをitem.csvというファイルで保存するものだとします。item.csvはdataというディレクトリに入ります。ファイル構成は次のようにします。</p>
<ul id="fileDir">
<li class="fileDir-php">index.php</li>
<li class="fileDir-dir">data
<ul>
<li class="fileDir-file">item.csv</li>
</ul></li>
</ul>
<p>ロリポップではPHPファイルは「６４４」または「６０４」で動作するようなので特に問題はありません。普通にファイルをサーバーにアップロードするだけでいいようです。ただ、できれば「<span class="fs-2">６０４</span>」にしたようがいいかもしれません。</p>
<p class="fs-1"><strong>ロリポップサーバーではPHPファイルパーミッションは「６０４」</strong></p>
<p>パーミッションで引っかかるのはPHPから作成されるファイルがあるときです。例のようなものではitem.csvがこれにあたります。このファイルは商品の登録時にindex.phpから読み込みまたは書き込みをする必要があります。はじめてデータを登録するときにはスクリプトからitem.csvを作成することから始めるかもしれません。</p>
<p>例のようなデータファイルやログファイルなどをPHPから作成するときはそのデータを入れておくディレクトリのパーミッションにも注意しなければなりません。このときのディレクトリのパーミッションは「<span class="fs-2">７０７</span>」になります。そうしないとPHPからディレクトリ内のファイルにアクセスすることができません。</p>
<p class="fs-1"><strong>読み書きを必要とするファイルを収納するディレクトリは「７０７」</strong></p>
<p>さらに書くとitem.csvのようなPHPスクリプトから作成～読み書きをするファイルのパーミッションは「<span class="fs-2">６０６</span>」にしないと「Permission denied」というエラーがでてしまします。</p>
<p class="fs-1"><strong>読み書きをするファイルは「６０６」</strong></p>
<p>なぜ「Permission denied ～」といったエラーがでるかというと次のことに基づいているようです。<br /><strong>モジュール版のPHPは「apache権限」で動作する</strong></p>
<p>ファイルには誰がそのファイルの持ち主かということを表わす「所有者」という項目があります。（ロリポップFTPではわからないのでFFFTP等で確認。）<br />アップロードしたファイルやディレクトリは所有者が「lolipop.jp-dp+自分のID」という英数字で表わされています。つまり自分のことです。<br />しかし、PHPから作成されたファイルは所有者が「apache」になります。よってパーミッションの一番右の桁に「読込み権限」+「書き込み権限」=「６」を与えないとファイルを書き換えることが出来ません。</p>
<p>これが「apche権限」で動作するということのようです。ディレクトリに「７０７」を与えるのも同じ理由だと思います。</p>
<p>以上をまとめると</p>
<ul>
<li>PHPファイルは「６０４」</li>
<li>読み書きするファイルは「６０６」</li>
<li>読み書きするファイルを収納するディレクトリは「７０７」</li>
</ul>
<p>となります。</p>
<h2>PHPからファイルを作成する時の注意</h2>
<p>最後に気づいたことを追記しておきます。</p>
<h3>PHPからファイルを作成するときはchmod関数でパーミッションを明示する</h3>
<p>もし、「６４４」や「６０４」でファイルを作成してしまった場合、所有者が「apache」のためFTPソフトからパーミッションを「６０６」等に変更することができない。削除はできるようです。</p>
<p class="fs-small">「まだまだ勉強不足で理解が間違っていたり、言葉足らずな部分もあると思うので、間違っている箇所は指摘していただけると幸いです。」</p>]]></content:encoded>
			<wfw:commentRss>http://scianto.net/archives/2007/03/05000638.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://scianto.net/archives/2007/03/05000638.php" />
	</item>
		<item>
		<title>PHPの基本：変数の種類と使い方</title>
		<link>http://scianto.net/archives/2007/01/25145437.php</link>
		<comments>http://scianto.net/archives/2007/01/25145437.php#comments</comments>
		<pubDate>Thu, 25 Jan 2007 05:54:37 +0000</pubDate>
		<dc:creator>paon</dc:creator>
				<category><![CDATA[web design]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://scianto.net/wpmemo/?p=207</guid>
		<description><![CDATA[PHPを扱うときに基本となるのが変数です。変数はデータを入れておくための入れ物だと覚えておけばいいのですが、変数にはさらにグローバル変数とローカル変数というものがあり使い方に気をつけないと思ったようにプログラムが動いてく [...]]]></description>
			<content:encoded><![CDATA[<p>PHPを扱うときに基本となるのが変数です。変数はデータを入れておくための入れ物だと覚えておけばいいのですが、変数にはさらにグローバル変数とローカル変数というものがあり使い方に気をつけないと思ったようにプログラムが動いてくれません。</p>

<span id="more-207"></span>
<h2>変数の基本</h2>
<p>PHPでは変数は英数字の前に「 $ 」記号をつけて$hogeのような形で書きます。</p>
<pre>$hoge = 0;</pre>
<p>とすると変数$hogeに0を入れるということになります。文字列を入れたいときは次のように、</p>
<p>$hoge = &quot;変数はPHPの基本です。&quot;;</p>
<p>「&quot;~&quot;」とダブルクォーテーションで囲みます。</p>
<h2>変数の種類</h2>
<p>変数にはグローバル変数とローカル変数があります。<br />
グローバル変数はスクリプト中でどの関数にも含まれていない部分で定義された変数、ローカル変数は関数内だけで有効な変数と定義されるようです。</p>
<p>どこで定義するかによって変わるということですね。</p>
<p><strong>関数内部から関数外部にあるグローバル変数を使うことはできない</strong></p>
<p>という決まりになっているようなのでこの点は注意しておきましょう。<br />
たとえば次のコードは動きません。</p>
<textarea name="code" class="php">&lt;?php
$a = &quot;hoge&quot;;
function foo( ) {
echo $a;
}
foo( );
?&gt;</textarea>
<p>結果として hoge が表示されてもいいような感じですが、関数内部からグローバル変数である$aにはアクセスできないので動かないようです。次のようにすると動きます。</p>
<textarea name="code" class="php">&lt;?php
$a = &quot;hoge&quot;;&nbsp;
function foo() {
global $a;
echo $a;
}
foo( );
?&gt;</textarea>
<p>変数 $a はグローバル変数だよと教えてあげるわけです。別の方法としては関数 foo( ) の引数として$aを指定してあげます。</p>
<textarea name="code" class="php">&lt;?php
$a = &quot;hoge&quot;;
function foo( $arg ) {
echo $arg;
}
foo( $a );
?&gt;</textarea>
<h2>参考サイト</h2>
<p class="outlink"><a href="http://www.stackasterisk.jp/tech/php/php01_02.jsp">PHP第１回：PHP基礎（スタックアスタリスク）</a></p>]]></content:encoded>
			<wfw:commentRss>http://scianto.net/archives/2007/01/25145437.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://scianto.net/archives/2007/01/25145437.php" />
	</item>
		<item>
		<title>PHP初級者が陥りがちなプログラミングミスTOP１０</title>
		<link>http://scianto.net/archives/2007/01/11165050.php</link>
		<comments>http://scianto.net/archives/2007/01/11165050.php#comments</comments>
		<pubDate>Thu, 11 Jan 2007 07:50:50 +0000</pubDate>
		<dc:creator>paon</dc:creator>
				<category><![CDATA[web design]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://scianto.net/wpmemo/?p=209</guid>
		<description><![CDATA[
初級PHPプログラマがおかしがちなミスＴＯＰ１０:phpspot開発日誌
という記事。


主にセキュリティー関連の問題が取り上げられています。PHP初級の自分も納得&#38;反省・・・です。


自分で書いたPHPを [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://phpspot.org/blog/archives/2007/01/php_71.html">初級PHPプログラマがおかしがちなミスＴＯＰ１０:phpspot開発日誌</a><br />
という記事。
</p>
<p>
主にセキュリティー関連の問題が取り上げられています。PHP初級の自分も納得&amp;反省・・・です。
</p>
<p>
自分で書いたPHPをテストするときなどはついつい簡単なスクリプトにしてしまうのですが、テストしている段階から、このようなことに気をつけながら書かないと悪いクセになってしまいそうです。<br />
</p>
<a href="http://www.sourcerally.net/regin/8-The-PHP-coder's-top-10-mistakes-and-problems"></a>

<span id="more-209"></span>

<ol>
<li>生でクエリを出力しない<br />
（Not escaping entities）</li>
<li>SQLクエリに＄_GET,＄_POST,＄_REQUESTの値を直接含めない<br />
（Not Escaping SQL input）<br />
</li>
<li>header, session_otart, setcookieを何か出力した後に実行<br />
（Wrong use of HTTP-header related functions: header(), session_otart(), setcookie() ）</li>
<li>ユーザクエリを元にincludeしない<br />
（Requiring and including files using untrusted data）<br />
</li>
<li>php.iniのmagic_quotes設定による自動エスケープの罠<br />
（Double escaping quotes）<br />
</li>
<li>メモ帳などの使いにくいエディタはやめる<br />
（Syntax errors）<br />
</li>
<li>オブジェクト指向しよう<br />
（No or little use of Object Orientation）<br />
</li>
<li>フレームワークを使わない開発<br />
（Not using a framework）<br />
</li>
<li>標準関数をもっと知ろう<br />
（Not knowing about existing functionality）<br />
</li>
<li>古いバージョンのPHPは使わない<br />
（Using old PHP versions）<br />
</li>
</ol>
<p>
元記事：<a href="http://www.sourcerally.net/regin/8-The-PHP-coder's-top-10-mistakes-and-problems">The PHP coder&#8217;s top 10 mistakes and problems @ SourceRally.net PHP Community</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://scianto.net/archives/2007/01/11165050.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://scianto.net/archives/2007/01/11165050.php" />
	</item>
		<item>
		<title>XAMPP設定（PHP編）</title>
		<link>http://scianto.net/archives/2006/12/09172736.php</link>
		<comments>http://scianto.net/archives/2006/12/09172736.php#comments</comments>
		<pubDate>Sat, 09 Dec 2006 08:27:36 +0000</pubDate>
		<dc:creator>paon</dc:creator>
				<category><![CDATA[web design]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XAMPP]]></category>

		<guid isPermaLink="false">http://scianto.net/wpmemo/?p=183</guid>
		<description><![CDATA[XAMPPにおけるPHPの設定を紹介しています。PHPの文字コードをすべてUTF-8にすることで話を進めています。]]></description>
			<content:encoded><![CDATA[<p>
<img src="http://power.scianto.net/img/entryimage/xampp05.gif" width="150" height="120" alt="" class="pict" /><a title="XAMPP設定（セキュリティー編）" href="http://power.scianto.net/php/xampp/id68.php">XAMPP設定（セキュリティー編）</a>でXAMPPのセキュリティー設定を行ったので、次はPHPの文字コードの設定をします。PHPには.phpファイルを保存するときの文字コードとPHP内部の文字コードの２つを設定する必要があります。
</p>

<span id="more-183"></span>
<h2>php.iniファイルの設定</h2>
<h3>設定の前に</h3>
<p>
この設定は次のことに基づいています。<br />
</p>
<ul>
<li>XAMPPのインストール先は<span class="fs-1">C:XAMPP</span></li>
<li><span class="fs-1">PHPの文字コードはすべてUTF-8<br />
</span></li>
</ul>
<p>
これ以外でPHPを動かしたいときはそれぞれの環境にあわせた設定を行なってください。
</p>
<h3>変更するファイル</h3>
<p>
変更が必要なファイルは以下になります。<br />
</p>
<pre>C:xamppapachebinphp.ini
C:xamppphpphp.ini
C:xamppphpphp5.ini
C:xamppphpphp4php.ini
C:xamppphpphp4php4.ini
</pre>
<p>
これらのファイルすべてに同じ変更を加えます。
</p>
<h3>変更内容</h3>
<p>
<span class="fs-red">このファイルをメモ帳などのテキストエディタで開きます。</span>変更する箇所は以下の部分です。
</p>
<textarea class="php" name="code">
;mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
;mbstring.http_input = auto
;mbstring.http_output = SJIS
;mbstring.encoding_translation = Off
;mbstring.detect_order = auto
;mbstring.substitute_character = none
;mbstring.func_overload = 0
</textarea>
<p>
これらの先頭の「;」を削除します。修正箇所の検索はテキストエディタの検索機能をつかって「mbstring」で検索すると早いです。間違ってほかの文字を消さないように注意しましょう。
</p>
<p>
文字コードをすべてUTF-8に変更するため以下の箇所を変更します。
</p>
<p>
変更前 ： mbstring.internal_encoding = EUC-JP<br />
変更後 ：  mbstring.internal_encoding = UTF-8<br />
</p>
<p>
変更前 ： mbstring.http_input = auto<br />
変更後 ：   mbstring.http_input = UTF-8
</p>
<p>
変更前 ： mbstring.http_output = SJIS<br />
変更後 ：    mbstring.http_output = UTF-8<br />
</p>
<p>
すべてのファイルを変更し、保存したらXAMPPのコントロールパネルでApacheを再起動してください。再起動しないと設定が有効になりません。
</p>
<p>
これでPHPの基本的な設定は終わりです。
</p>
<h3>各種設定の意味（PHPマニュアル参考）</h3>
<p>
以下の内容はPHPマニュアル「<a href="http://www.php.net/manual/ja/ref.mbstring.php">マルチバイト文字列関数</a>」を参考にしています。&nbsp;
</p>
<h4>mbstring.language</h4>
<p>
mbstring で使用される言語設定のデフォルト値。 ここでは「Japanese」に設定。
</p>
<h4>mbstring.encoding_translation</h4>
<p>
入力される HTTP クエリに関して、 文字エンコーディング検出および内部文字エンコーディングへの変換を行う 透過的な文字エンコーディングフィルタを有効にします。
</p>
<h4>mbstring.internal_encoding</h4>
<p>
内部文字エンコーディングのデフォルト値を定義します。 PHPが動作する文字コードを指定します。UTF-8、EUC-JPは大丈夫ですが、SJIS（Shift-JISのこと）はダメ。ここでは「UTF-8」に設定。
</p>
<h4>mbstring.http_input</h4>
<p>
HTTP 入力文字エンコーディングのデフォルト値を定義します。 ここでは「UTF-8」。
</p>
<h4>mbstring.http_output</h4>
<p>
HTTP 出力文字エンコーディングのデフォルト値を定義します。 ここでは「UTF-8」。
</p>
<h4>mbstring.detect_order</h4>
<p>
文字コード検出順序のデフォルト値を定義します。 ここでは「UTF-8」。
</p>
<h4>mbstring.substitute_character</h4>
<p>
無効な文字を代替する文字を定義します。 ここでは「none」（文字を出力しない）。
</p>
<h4>mbstring.func_overload</h4>
<p>
シングルバイト対応の関数を mbstring 関数の対応する関数でオーバーロード (置換)します。ここでは「0」（オーバーロードしない）。
</p>
<h2>参考</h2>
<p>
<a href="http://www.php.net/manual/ja/ref.mbstring.php#mbstring.overload">マルチバイト対応版関数による既存関数のオーバーロード</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://scianto.net/archives/2006/12/09172736.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://scianto.net/archives/2006/12/09172736.php" />
	</item>
		<item>
		<title>MovableTypeをPHP化しよう～PHP化について～</title>
		<link>http://scianto.net/archives/2006/12/07164936.php</link>
		<comments>http://scianto.net/archives/2006/12/07164936.php#comments</comments>
		<pubDate>Thu, 07 Dec 2006 07:49:36 +0000</pubDate>
		<dc:creator>paon</dc:creator>
				<category><![CDATA[web design]]></category>
		<category><![CDATA[MovableType]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://scianto.net/wpmemo/?p=181</guid>
		<description><![CDATA[MovableTypeの初期設定で出力されるページはHTMLファイル（拡張子が.html）ですがこれをPHP化（拡張子が.php）することでいろいろとメリットが生まれます。MovableTypeでアフィリエイトをする場合 [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="mt-php.gif" src="http://power.scianto.net/img/entryimage/mt-php.gif" width="150" height="66" class="pict" />MovableTypeの初期設定で出力されるページはHTMLファイル（拡張子が.html）ですがこれをPHP化（拡張子が.php）することでいろいろとメリットが生まれます。MovableTypeでアフィリエイトをする場合でもとても有効な選択肢だと思いますので、今回はそのPHP化のメリットを紹介します。
</p>

<span id="more-181"></span>
<h2>はじめにPHP化しよう</h2>
<p>
「新しいブログを作るときにはじめからPHP化をする」ことをお薦めします。
</p>
<p>
HTMLでつくっていたブログを途中でPHP化したいときもあると思いますが、PHP化すると拡張子が「.html」から「.php」に変わります。するとGoogleやYahooに登録されていたURLが変更されることになり、しばらくはこれまでのページが検索に引っかからなくなります。これはアクセスの減少につながるのでとても痛いです。新しいブログはPHPで作り始めることをお薦めします。
</p>
<h2>PHP化のメリット・デメリット</h2>
<p>
PHP化するとメリットのほうが大きいですが、すこしだけデメリットもあるのでその辺りは自分で判断してください。それでもPHP化することをおすすめします。
</p>
<p>
メリットとしては次のようなことがあげられます。
</p>
<ul>
<li>PHPをページ内に埋め込める</li>
<li>テンプレートの軽量化</li>
<li>PHP化すると使えるようになるプラグインがあります（MTPagenate等）</li>
<li>PHP+MySQL などデータベースと連動したサイトが作れます（アフィリエイトサイト等で有効）</li>
</ul>
<p>
デメリットはあまり思いつかないのですが・・・。
</p>
<ul>
<li>既存のHTMLページへのリンクが切れる</li>
</ul>
<p>
ことが一番でしょうか？
</p>
<p>
次はそれぞれについて少しだけ話をすすめます。
</p>
<h3>PHPをページ内に埋め込める</h3>
<p>
PHP化する一番の特徴はテンプレートや記事内にPHPを埋め込めるようになることです。HTMLと親和性の高いPHPならではといえるでしょう。
</p>
<p>簡単な例として下のようなスクリプトをエントリーの途中に書いてみましょう。</p>
<textarea class="php" name="code">
&lt;?php
echo&quot;&lt;p&gt;&lt;em&gt;この部分はPHPで出力しています。&lt;/em&gt;&lt;/p&gt;&quot;;
?&gt;
</textarea>
<p><em>この部分はPHPで出力しています。</em>（出力例）</p>
<p>と出力されます。このようにHTMLのなかにスクリプトを埋め込むことができるのがPHPの手軽さです。</p>

<h3>テンプレートの軽量化</h3>
<p>
テンプレートを変更することになった場合、 記事が多いほどすべてを再構築するのに多くの時間を必要とします。
</p>
<p>
そこで再構築の時間を短縮できるようにテンプレートを軽量化します。
</p>
<p>
テンプレートを軽量化するには各ページ共通している部分、たとえばヘッダやフッタ部分を外部ファイルにしておき、ページにアクセスしたときにその部分を読み込むようします。共通部分を外部ファイルにすることを「モジュール化」といいます。
</p>
<p>
ファイルを読み込むにはPHPのinclude関数にファイルのURLを指定するだけです。たとえばヘッダ部分をheader.tmplとして外部ファイルにしたとき、テンプレートには下のように記述します。
</p>
<textarea class="php" name="code">
&lt;?php
include&quot;header.tmpl&quot;;
?&gt;&nbsp;
</textarea>
<p>
更新はこのheader.tmplを書き換えるだけです。MovableTypeを再構築する必要はありません。
</p>
<p>
共通部分はできるかぎり外部ファイルにしておくといいでしょう。<br />
</p>
<h3>PHP化すると使えるようになるプラグインがあります</h3>
<p>
MovableTypeのプラグインのなかにはPHP化していないと使えないものがあります。
</p>
<p>
たとえばMTPagenateプラグインです。これはカテゴリーアーカイブを分割することができるプラグインですが、PHP化していないと使えません。とても使えるプラグインなので、これを使うためにもPHP化したほうがいいでしょう。
</p>
<h3>PHP+MySQL などデータベースと連動したサイトが作れます</h3>
<p>
PHPはMySQLなどのデータベースを使ったサイトが作りやすいプログラム言語です。アフィリエイトサイトの場合、データベースに商品データを登録することでPHPから検索、一覧表示などを行なうことができます。
</p>
<p>
使いどころとしてはMovableTypeのカテゴリー名をキーワードとして、カテゴリーに関連する商品をカテゴリーアーカイブなどに表示するといった感じでしょうか。
</p>
<p>
CSV形式で商品データを提供しているＥＣサイトも増えてきているので、大量の商品リンクを作りたいときにはデータベースの利用は欠かせなくなると思います。
</p>
<h3>唯一のデメリット</h3>
<p>
唯一のデメリットとして「既存サイトをPHP化するとURLが変わってしまう」というのがありますが、はじめに書いたように最初の記事を書く前にPHP化しておきましょう。
</p>
<p>
途中でPHP化したいときは「.htaccess」ファイルで旧URLから新URLへリダイレクトする方法があります。（未記事）<br />
</p>]]></content:encoded>
			<wfw:commentRss>http://scianto.net/archives/2006/12/07164936.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://scianto.net/archives/2006/12/07164936.php" />
	</item>
		<item>
		<title>XAMPPって何？</title>
		<link>http://scianto.net/archives/2006/11/26205933.php</link>
		<comments>http://scianto.net/archives/2006/11/26205933.php#comments</comments>
		<pubDate>Sun, 26 Nov 2006 11:59:33 +0000</pubDate>
		<dc:creator>paon</dc:creator>
				<category><![CDATA[web design]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XAMPP]]></category>

		<guid isPermaLink="false">http://scianto.net/wpmemo/?p=186</guid>
		<description><![CDATA[
PHPを勉強するにはまず自分のパソコン上にその環境を作ることからはじめます。それには本を片手にApach（サーバー）をはじめ、PHP、MySQL（データベース）のインストールとそれらの設定などなど・・・初心者にはとても [...]]]></description>
			<content:encoded><![CDATA[<p>
<img alt="xampp00.gif" src="http://power.scianto.net/img/entryimage/xampp00.gif" width="180" height="235" class="pict" />PHPを勉強するにはまず自分のパソコン上にその環境を作ることからはじめます。それには本を片手にApach（サーバー）をはじめ、PHP、MySQL（データベース）のインストールとそれらの設定などなど・・・初心者にはとても大変な作業が待っています。
</p>
<p>
しかし、<a href="http://www.apachefriends.org/en/index.html">XAMPP</a>はそんな大変なPHP開発環境を一括で整えてくれるすごいソフトです。PHPを勉強したいと思ったらまずはこのソフトを自分のパソコンにインストールしましょう。
</p>

<span id="more-186"></span>
<p>
XAMPPの特徴は次のようなものです。&nbsp;
</p>
<ul>
<li>数分でインストールできます</li>
<li>PHP5とPHP４を簡単に切り替えることができます</li>
<li>多くのPEARがはじめからインストールされています</li>
<li>phpmyadminが使えます<br />
</li>
</ul><h2>インストールされる主なもの</h2>
<p>
（この構成はversion1.5.4aのものです）
</p>
<ul>
<li>Apache 2.2.3</li>
<li>MySQL 5.0.24a</li>
<li>PHP 5.1.6 + PHP 4.4.4 + PEAR</li>
<li>SQLite 2.8.15</li>
<li>phpMyAdmin&nbsp; 2.9.0.1&nbsp;</li>
</ul>
<h2>インストール手順</h2>
<h3>1.ダウンロード</h3>
<p>
<a href="http://www.apachefriends.org/en/xampp-windows.html">&gt;&gt;XAMPP for windowsのページへ</a>
</p>
<p>
Installerをクリックした先のダウンロードページからソフトをダウンロードします。しばらくかかります。
</p>
<p>
<img width="450" height="230" alt=" " src="http://power.scianto.net/img/entryimage/xampp01.gif" />
</p>
<h3>2.ダウンロードしたファイルを実行</h3>
<p>
言語は「Japanese」を選択します。
</p>
<p>
<img width="294" height="160" src="http://power.scianto.net/img/entryimage/xampp02.gif" />
</p>
<p>
そのまま次へ
</p>
<p>
<img width="400" height="249" src="http://power.scianto.net/img/entryimage/xampp03.gif" />
</p>
<p>
インストール先はそのままでもいいし、自分の好きな場所にインストールしましょう。できるだけ階層が浅いほうがあとあと作業がしやすいです。（例）D:\XAMPPなど
</p>
<p>
<img width="400" height="249" src="http://power.scianto.net/img/entryimage/xampp04.gif" />
</p>
<p>
基本的にはこれで終わりです。
</p>
<p>
<img width="400" height="249" src="http://power.scianto.net/img/entryimage/xampp04.gif" />
</p>
<p>
このあと、ApacheやMySQLをサービスとしてインストールするか聞かれるのですべて『はい』を選択しておけばいいでしょう。<br />
たったこれだけでPHP環境の出来上がりです！
</p>]]></content:encoded>
			<wfw:commentRss>http://scianto.net/archives/2006/11/26205933.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://scianto.net/archives/2006/11/26205933.php" />
	</item>
		<item>
		<title>PHPをはじめてみよう</title>
		<link>http://scianto.net/archives/2006/11/26184413.php</link>
		<comments>http://scianto.net/archives/2006/11/26184413.php#comments</comments>
		<pubDate>Sun, 26 Nov 2006 09:44:13 +0000</pubDate>
		<dc:creator>paon</dc:creator>
				<category><![CDATA[web design]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://scianto.net/wpmemo/?p=180</guid>
		<description><![CDATA[

PHPはプログラムがまったく初めてという人でも手軽にはじめられるプログラム言語です。PHP入門者の自分にとってはデメリットが見つからないという印象の優れたプログラム言語だと思います。そこで、今回はそのPHPの基本を少 [...]]]></description>
			<content:encoded><![CDATA[<p>
<img width="120" height="120" alt=" " class="pict" src="http://power.scianto.net/img/entryimage/php001.gif" />
PHPはプログラムがまったく初めてという人でも手軽にはじめられるプログラム言語です。PHP入門者の自分にとってはデメリットが見つからないという印象の優れたプログラム言語だと思います。そこで、今回はそのPHPの基本を少しだけ・・・
</p>

<span id="more-180"></span>
<h2>PHPとは？</h2>
<p>
PHPはHypertext Preprocesserの略で動的なWebページをつくるためのオープンソースのプログラム言語です。
</p>
<p>
動的なページを作る手段としては他にPerl等のプログラムをWebサーバーで実行し、その処理結果をHTMLとしてWebブラウザに送る「CGI」と呼ばれるものがあります。しかし、CGIはプログラムでHTMLファイルのすべてを作り出しているので、プログラム初心者には難しくなります。
</p>
<p>
しかし、PHPではHTMLファイルの中に部分的にプログラムを埋め込むことができるためCGIのようにすべてをプログラムに任せる必要はなくなります。ファイルのほとんどをHTMLで記述し、必要な部分だけPHPにすればいいのでCGIとくらべてはるかに簡単です。
</p>
<h2>PHPで何ができる？<br />
</h2>
<p>
基本的にはなんでもできます。PDFやExcelファイルなどの各種ファイルを出力したり、jpgやpngなどの画像も扱うことができます。
</p>
<p>
データベースとの連携も簡単で魅力的です。データベースを利用することで大量の商品データを簡単に扱えるようになるのでアフィリエイトの収入アップにつながる可能性もあります。
</p>
<p>
最近流行のWebサービスも簡単なスクリプトで利用できます。<br />
</p>
<p>
もちろんこれらができるようになるには覚えないといけないこともありますが、基本的なスクリプトの書き方といくつかの関数を覚えるだけでも十分な機能をもったWebサイトを作れるようになるのがPHPの魅力です。
</p>
<p>
プログラムというと難しそうに聞こえますが、PHPで基本的にやることは以下の3つくらいしかありません。
</p>
<ul>
<li>条件分岐</li>
<li>繰り返し処理<br />
</li>
<li>ファイルの読込み・書き込み&nbsp;</li>
</ul>
<p>
はじめのうちはこれだけ覚えれば十分です。あとは必要になったときに少しずつ覚えればいいと思います。
</p>
<p>
データベース連携とWebサービス活用は当面の目標なので少しずつ紹介していきますね。
</p>]]></content:encoded>
			<wfw:commentRss>http://scianto.net/archives/2006/11/26184413.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://scianto.net/archives/2006/11/26184413.php" />
	</item>
	</channel>
</rss>
