WordPress(ワードプレス)

WordPressは、今までブログを依頼された時に使っていた。
独立後、この「takanix.com」を立ち上げるのに当たり、管理しやすくデザインしやすいので、構築するのに使用している。

PHPのパッケージなので、カスタマイズするにはやはりPHPを理解していないと難しい。
多少理解しておけば、カスタマイズからプラグインのインストールと、WordPressはとても扱いやすい。
デザインのテーマも世界中で日々ユーザーが作っているので、自分でカスタマイズしなくてもテーマは数え切れないほどある。

ブログだけでなく、通常のWEBサイトを構築するのにも使えるので、
動的なページや新着情報など、結構更新の多いサイトには適している。

ユーザーサイトやヘルプサイトなども充実していて、英語のみならず日本語で分かりやすく説明するサイトも多い。

いろんなプラグインも用意され、WordPressの管理画面から簡単にインストール出来、携帯サイトやスマートフォンサイト、スパムフィルターなど多種多様である。

多少PHPの知識がないと難しいかもしれないが、いろいろ機能が拡張できるのでオススメです。

最新バージョンは下記から。

WordPress日本語版

カテゴリー:フェイバリットコメント(0)

HTML

昔、僕がまだ紙でデザインをしていた頃。
参考書や色見本を見なくても、「CMYK」で色を表現できた。

紙広告の基本は、「CMYK」の4色カラー。
C=シアン(青)
M=マゼンタ(ピンク)
Y=イエロー(黄色)
K=ブラック(黒)
この4色で、紙に出力する色が成り立っている。もちろん銀や金や蛍光色などの「特色」も別にある。

赤は、M100% Y100%。
緑は、C100% Y100%。
紫は、C100% M100%。
オレンジは、Y100% M50%などなど。
パーセントは0から100までで設定する。
C36%M72%Y100%K40%などと茶色を指定もする。

近くにある物の色や服の色なども、CMYKで表現していた。
表現することは勉強だったから。
色指定を何も見ずに頭で考えられれば作業は一段とはかどるからだ。

今は、ホームページ言語のHTMLとデザイン言語のCSSは、頭の中で考えて構成させる。
昔は、HTMLのタグさえ分からなかったのに、今では図形や映像もHTMLとCSSで表現させる事ができる。

WEBメインでやっているから当たり前の事だが。
でも、今思うと本当にHTMLをやって良かったと言うこと。

僕にやりたいことが見つかったのだから。
HTMLをやっていなければ、CSSも理解出来なかったし、XHTMLやXMLも理解できなかった。それに僕を決定づけた「PHP」も理解出来なかった。
今ではHTML同様、PHPでも表現させる事が出来ているのだ。

WEBでの基本のHTMLというテキスト言語。
細かい決まりが僕にピッタリ。
HTMLは僕の人生を変えてしまった。現に僕は別の道を歩き、独立をしたからだ。
HTMLは僕のフェイバリットである。

カテゴリー:フェイバリットコメント(1)

【PEAR】さくらサーバーで、画像添付メールの画像をプログラムで取り出す。

まず、さくらインターネットサーバーで以下の2点は完了しておいて下さい。
以前僕がブログ内で書いたものです。

  1. 【PEAR】さくらインターネットサーバーでPEARを使う
  2. 【空メール】さくらインターネットで、空メールからPHPプログラムを実行する。

2番で用意したPHPファイルに記述します。

1番で行ったPEARのインストール場所で記述しています。
文字エンコードは、UTF-8で書いています。

————–ここから—————–

#!/usr/local/bin/php   //←さくらサーバーはこの記述

<?php
//PEARのパスを設定
$path = ‘/home/(ユーザー名)/pear/PEAR/’;
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once ‘/home/(ユーザー名)/pear/PEAR/Mail/mimeDecode.php’;

//受信メールから読み込み

$params['include_bodies'] = true;
$params['decode_bodies'] = true;
$params['decode_headers'] = true;
$params['input'] = file_get_contents(“php://stdin”);
$params['crlf'] = “\r\n”;  //Shift_JISで記述する場合は、\を¥で。

if (!$params['input']) {

// 読み込み失敗

exit();

}

$structure = Mail_mimeDecode::decode($params);

//送信者のメールアドレスを抽出

$mail = $structure->headers['from'];
$mail = addslashes($mail);
$mail = str_replace(‘”‘,”,$mail);
$mail = preg_replace(‘/(^.*<|>$)/’, ”, $mail);

// 件名を取得

$subject = $structure->headers['subject'];

// 本文、添付ファイル(画像)を抽出

switch (strtolower($structure->ctype_primary)) {
case “text”:

// シングルパート(テキストのみ)

$body = $structure->body;
break;
case “multipart”:

// マルチパート(画像付き)

foreach ($structure->parts as $part) {
switch (strtolower($part->ctype_primary)) {
case “text”:
$body = $part->body;
break;
case “image”:

// 画像の拡張子を取得する

$type = strtolower($part->ctype_secondary);

// 添付ファイル保存

$photo = “sample”.$type;

$tmpName = ‘/home/(ユーザー名)/www/dir/’ . $photo; //画像の保存場所です。

//↑必ずサーバーパスで記述します。./dir/などの相対パスでは駄目です。
今回は、サンプルで画像名は、sampleにしています。

if ($fp = fopen($tmpName, “w”)) {

$length = strlen($part->body);

fwrite($fp, $part->body, $length);

fclose($fp);

}

break;
}
}
break;
default:
$body = “”;
}

?>

————–ここまで—————–

 

保存する「dir」ディレクトリは、権限を777にして下さいね。
エラーや保存できない理由の多くは、ディレクトリの権限です。

/home/(ユーザー名)/pear/PEAR/ さくらはこれがサーバーパスです。

ちなみに、Drive Networkは、/home/(ユーザー番号)/(ドメイン)/(保存ディレクトリ)/pear/PEAR/です。

 

件名は、$subject
本文は、$bodyで取得できます。
送信者メールアドレスは、$mailで取れます。

取得したメールアドレスや件名は、データーベースに登録するなり、テキストファイルに保存するなり、メールで送りなりして下さい。

カテゴリー:PHP, Tips, さくらインターネットコメント(1)

台東区のホームページ制作・プログラム制作会社

僕らの会社が位置するのは、ちょうど浅草橋と秋葉原の間あたり。
秋葉原駅からは、徒歩で10分くらいかかってしまうし、浅草橋駅からでも6分ほどかかる。

住所は、浅草橋なので最寄り駅は浅草橋になるのだが、僕は川崎から来てる事もあり、秋葉原で降りた方が近いと思っている。
途中、秋葉原駅の周りにある店にも寄れるし、秋葉ヨドバシもある。
マクドナルドもあるし、弁当やが数件あるし、薬局や本屋や銀行もある。
だから、何か必要なものがあれば、出社途中で購入できるので便利なのだ。

浅草橋駅だと、中央線に乗り換えなければいけないし、ホームは別なので階段の上り下りもあり、結構時間がかかるのだ。
なので、僕の最寄り駅は秋葉原駅。

中央口から出れば、秋葉ヨドバシを通り、昭和通りを渡り、 会社まで行くことができる。

前会社の仕事も僕らが継続して受注していて、データなどを持っていかなければならないので、同じ浅草橋にしたのである。
この先、会社が大きくなっていけば、もっと別のところに移りたいと思っているのだが、
まずは、ここが僕らのスタート地点なので、この浅草橋を愛し頑張ろうと思う。

近くには、スーパーや吉野屋、ドラッグストア、大好きな任天堂もあり、場所はとってもいい。
同じビルに、韓国料理店も入っていて、僕は韓国料理が好きなので結構行っている。

台東区にあるホームページ制作とプログラム制作を行っている、僕らの会社エクスプロード。
近くに来ることがあれば見回してみてほしい。僕らが働くこの地域を。
穏やかな場所で僕らは成長している。そうこの瞬間にでも。

カテゴリー:社長ブログコメント(0)

PHP

今から6年ほど前に、前の会社で受注できる仕事を増やすため、WEB事業に取り組むことになった。
その際に、もともと携帯サイトを作っていた部署があったのだが、その部署と僕ら制作が一緒になり、仕事を行い始めたのだ。

最初は、もちろん僕もHTMLなど初心者で、手探りの状態から始めていった。

WEBデザインも良いと言えるほどのデザインでもなく、見よう見まねの作業が続いていた。
数ヶ月たち、XHTMLとCSSでの作業に移り、会社関連の仕事も入るようになっていた。

だが、その時期は、WEBデザイン事務所が既に多く、素人でもワープロ感覚でホームページを作れる安価なソフトまで出ていて、僕としては今後どうするか考えていたのだ。

いずれ何年かたてばもっとWEBは進化し、HTMLを書くだけでは生き残れないと僕は思っていたのだ。
何か、目玉となるものを持たなければ。。。

そこで、Flashやプログラムに目が行った。

Flashは、作り込めばすごいものが出来るのは分かっていたのだが、全てのホームページに必要ではない。
今となっては、iPhoneやiPadでは見れないし、その他のスマートフォンや携帯でも重い。
Flashは、とりあえずバナー程度、ナビゲーション程度に僕の中で抑えていたので、僕はプログラムを選択した。

最初は何も分からず、意味も分からず、仕組みも分からず、失敗もしたし、長い時間がかかったこともあった。
でも僕はこれだと決めて、今までやってきた。

ホームページのどこかしらで、一つは使うだろうプログラム。
CGIは、サーバーに負担がかかるので、僕はPHPを選んだのだ。

今も進化しているし、出来る事も多くなり、PHPは出来ないものはないくらいになっている。

世の中には、もっともっと出来る人がいっぱいいるだろうが、その中の一人のプログラマーとして、今後も進み続けるであろう。
JavaScriptとAjaxもかねて、色々模索しているのだ。

プログラマー兼社長。
大変だが、きっと最後には笑っているんだと僕は信じて歩いている。

カテゴリー:社長ブログコメント(0)

【空メール】さくらインターネットで、空メールからPHPプログラムを実行する。

さくらインターネットで、空メールからPHPプログラムを実行するやり方をメモ。
メールの着信をトリガーにしてPHPプログラムを起動する方法です。

  1. サクラコントロールパネルで、空メールにしたいメールアドレスを新規で作成する。例) test@test.com
  2. 作成したメールアドレスにメール転送設定を行う。すぐに消去するので、転送するアドレスは何でもいい。設定したら、すぐに転送設定を消去する。
  3. FTPでサーバーに接続し、「/home/ユーザー名/MailBox/test/」の「.mailfilter」にこの後の内容を入力する。最初は何も書いていないファイルです。もし、このファイルが存在しなかったら、「.mailfilter」のファイルを新規で作ります。
  4. 「.mailfilter」の中身を以下のようにする。cc “| /home/ユーザー名/www/test.php”
    ※サーバーによって変わるので、ご自身のサーバーのドキュメントルートを記述して下さい。
    通常さくらは、/home/ユーザー名/www/です。
    ユーザー名は、さくらインターネットの契約時に決められた名称を入れてください。
    CCの後、|の後には半角スペースが入るので注意してください。
  5. 「.mailfilter」は、パーミッション(属性)を600に変更してする。
    これで、メールを受信したら自動的に、/home/ユーザー名/www/test.phpのPHPプログラムが実行されることになる。
  6. 実行させるPHPプログラムには、空メールで受け取った際に実行したいコードを記述します。
    一行目には必ず、「#!/usr/local/bin/php」 を入れる。
    あとは、通常のPHPを書くのと同じです。ただ、ファイルを保存したりする保存場所は、間接指定「../」や直接指定「http://www〜」は使用せずに、サーバードキュメントルート「 /home/ユーザー名/www/」で指定してください。
  7. 実行させるPHPは、パーミッション(属性)を744に変更してする。
  8. 以上

これで、空メールがきたら、自動的に指定のプログラムが起動する事となります。

上記、【4】での【CC】の部分ですが、空メールをメールソフトでも受信したい場合は、【CC】にします。

ただ、【CC】だと空メールがくるたびに、メールソフトで受信しないと溜まっていきます。
メールソフトで受信せずに、プログラムを実行させるだけなら、【to】 を使います。

うまくプログラムを記述すれば、データーベースに登録したり、PEARを使えば、メールに添付された画像を取り込む事ができます。

カテゴリー:Tips, さくらインターネットコメント(2)

【HTML】正規表現

文字列処理で、フォームから送られた文字列などから特定の文字列を抽出したり、ある特定のパターンにマッチする文字列を処理する式。

プロパティ

match( /正規表現/ ) ()内で指定した式にマッチするかを判断する。マッチの時はtrue。その他はfalse
replace(/正規表現/, 置換文字) 第一引数でマッチした文字列を第二引数(置換文字)で置き換える。
search(/正規表現/) マッチしたらマッチ箇所を番号で返す。マッチしなかった場合は、-1が返る

バックスラッシュ【\

【.】【-】【/】【¥】【+】【*】【$】など正規表現内で使用される記号を文字列として使用したい場合は、記号の前に【\】を付けます。これを【エスケープする】と呼びます。

 

【例題】Javascriptです。

match(/0123/)   【0123】にマッチ。012、123にはマッチしない。

match(/[0123]/)  【[]】内の文字のどれかにマッチ。

match(/[0123]+/)  【+】は、1文字以上にマッチ。

match(/[0123]\.[0123]+/)  【.】はバックスラッシュでエスケープ

match(/[^0123]\.[0123]+/)  【[^]】は【[]】内以外にマッチ。

match(/^[0123]\.[0123]+/)  【^[]】は文字の最初にマッチ。

match(/^[0123]+@[0123]+\.(com|co.jp)$/)  【com】【co.jp】のどちらかの場合は【()】で囲み【|】で分ける。【$】は文字の最後にマッチ。

match(/[あいうえお]/) あいうえおのどれかにマッチ。

 

【例題】PHPです。

if (!eregi(“^[a-z0-9]([a-z0-9]|\-|\_|\.)+@[a-z0-9]([a-z0-9]|\-)+[a-z0-9]([a-z0-9]|\-|\.)+[a-z]{1,4}$”, $mail )){ print “エラー”; }

  • ^[a-z0-9]([a-z0-9]|\-|\_|\.)+ → 一文字目がa〜zか0〜9のいずれか一文字。その後に続くのは、a〜zか0〜9か-_.のいずれか何文字でも可。
  • @[a-z0-9]([a-z0-9]|\-)+ → @の文字のあとa〜zか0〜9のいずれか一文字が続き、その後に続くのは、a〜zか0〜9か-のいずれか何文字でも可。
  • [a-z]{1,4}$ → 最後尾の文字から数えて1文字〜4文字は、a〜zのいずれか。
  • eregiは、上記ですと$mail変数に、正規表現による文字列を検索する関数です。文字が見つかったらTRUE、なければFALSEが返り値となって返ってきます。
    !が付いているのは、反対の動作で、【文字が含まれなかったら】という意味です。
    例題では、指定の変数に正規表現の文字列が含まれていなかったら、エラーですと表示させるスクリプトです。

カテゴリー:HTML, Tipsコメント(2)

【PHP】Shift_JIS対策 「\」が入る場合

携帯サイトでShift_JISのエンコードで作らなきゃ駄目な場合、以下の文字が文字化けする。

「\」が入ってしまうのだ。この対策のメモ。

「表」→「表\」
「申」→「申\」
「ソ」→「ソ\」

となってしまうので、PHPで変数に代入するときや出力するときは
stripslashes()を使えばいい。

変数 = stripslashes( "文字列"または変数 );

$test = stripslashes($_POST['test']);

print stripslashes($_POST['test']);

変数に入れて使用するか、printを使用して、出力してもいいし。

 

セキュリティホールになる可能性があるが、php.iniか.htaccessで

php_value magic_quotes_gpc Off

magic_quotes_gpcをOFFにすれば早いのだが。。。

その場合は、逆に

変数 = addslashes( "文字列"または変数 );

$test =addslashes($_POST['test']);

print addslashes($_POST['test']);

 

カテゴリー:PHP, Tipsコメント(0)

【サーバー】Drive Network(ドライブネットワーク)の空メール設定方法 procmail

クライアントがDrive Network(ドライブネットワーク)のサーバーなので、空メール設定の覚え書き。

Drive Networkは、procmailでの設定になります。
以下が、空メールのパイプ処理の説明です。

まず、オンラインヘルプページで、空メール用メールアドレスを作成する。

例)test@test.com

test@test.comのアカウントで、FTPでアクセスします。

htdocsより一段落上のディレクトリに移動し、先ほど作成したアカウント「test」のディレクトリに入る。

その中に、「.procmailrc」があるのでエディタなどで開く。
※test@test.comのアカウントで入らないと、編集できません。

以下の文を、「.procmailrc」に入力し保存する。ASCIIモードで入力して下さい。
↓開始と↑終了の行は書きません。

—————↓開始—————

PATH=/usr/bin:/usr/sbin:/usr/ucb:/usr/local/bin:/pub/bin:.
SHELL=/bin/sh
MAILDIR=$HOME/Mail/
DEFAULT=$HOME/Mail/
LOGFILE=$MAILDIR/.procmail.log
:0
| /usr/local/bin/php /home/アカウント番号(cs〜)/test.com(ドメイン)/htdocs/test/test.php

—————↑終了—————

上記の例ですと、/home/アカウント番号(cs〜)/test.com(ドメイン)/htdocs/test/test.php

空メールで実行したいファイルが、「test.php」
test.comがドメイン
アカウント番号は、契約時の番号なので、cs11111みたいな感じです。

上記の実行させたいtest.phpのファイルは、権限を777にします。

「.procmailrc」は、権限を644にして下さい。

一文字目の「|」は、受信したメールを残さないという意味です。
もし、メールソフトで「test@test.com」に来たメールを受信したければ 「|」を「cc」に変えて下さい。

カテゴリー:Tips, サーバーコメント(1)

【Ajax】htmlに、PHPファイルを読み込ます方法

Ajaxを使えば簡単に実行できます。

ソースでhead内に以下のタグを追加します。

<script type=”text/javascript” src=”writefile.js”></script>

loadfile.jsのソース

prototype.jsに少し関数を追加したJavaScriptファイルです。

 

読み込みたいタグに、id属性値を追加します。

例)<div id=”test”></div>

上記例文を以下のように変えれば、id(test)内に指定した「test.php」ファイルを読み込みます。

<div id=”test”>
<script type=”text/javascript”>
<!–
writeFile(“test”, “test.php”);
// –>
</script>
</div>

 

サンプルファイル

 

カテゴリー:JavaScriptコメント(0)