Category Archives: PHP

EZ zenback バージョン1.5.2 リリース

「EZ zenback バージョン1.5.2」をリリースした。 最新の「EZ zenback」をダウンロードする このバージョンから新しい書式のzenbackタグをサポートした。 「EZ zenback」は任意のコード(JavaScript等)をWordPressが生成するHTMLソースに追加して書き出す機能があるが、ユーザーがネットで公開されているコードを盲目的に入力し、そのコードが悪意のあるものであれば最悪の結果を招く恐れがあるため、簡単なセキュリティチェックを行っている。 そのチェックが機能が新しいzenbackタグを拒絶してしまっていた。

Posted in PHP, WordPress, 自作アプリ | Tagged , , | Leave a comment

初心者による初心者のためのPHP講座 第9回 関数の定義

この講座でも、echo()を始めとして、date()、define()、array()、explode()、extract()などの様々な関数が登場している。(厳密には関数でないものも含まれるが・・・。) これらは、PHPが標準で備えている関数であり、構文と並んでPHPでのプログラミングの基本となる要素であるが、「ユーザー定義関数」として自身で関数を定義することも出来る。 関数については「初心者による初心者のためのPHP講座 第2回 PHPの基本構造」で触れているので、もう一度おさらいして欲しい。 ユーザー定義関数は、比較的小規模な処理を1つにまとめたもので、PHPのプログラムは、複数の「ユーザー定義関数」を組み合わせて実行させることで成立しているとも言える。 他の言語では、PHPの関数のような、ひとまとまりの処理を「サブルーチン」と呼ぶ場合もある。 ユーザー定義関数は、下記のようにfunction文を用いて定義する。 function 関数名() { 処理1; 処理2; 処理3; . . . } 関数は、1つまたは複数の引数を取ることもあるが、その場合は function 関数名(引数1, 引数2, 引数3…) { 処理1; 処理2; 処理3; . . . } となる。 関数名には、英数字、アンダースコアを使用することが出来るが、最初の一文字は、アルファベットかアンダースコアでなければならない。 戻り値を参照渡しする場合に、「&」で始まる関数を定義することがあるが、厳密には「&」は変数名の一部ではなく、「&関数名」となっている。 ユーザー定義関数を実行する場合は、標準の関数を実行する場合と同様に 関数名(); または 関数名(引数1, 引数2, 引数3…); とすれば良い。 また、ユーザー定義関数の戻り値を別の関数の引数として用いることも出来る。 <?php echo my_string(); round(my_value(), 2); // my_string()とmy_value()はユーザー定義関数 ?> このあたりは、PHPの標準関数と同じである。 下記の例では、get_date_yesterday()という関数を定義しているが、これは昨日が何曜日だったかを求め、それを戻り値として返す関数である。 <?php echo get_date_yesterday(); function get_date_yesterday() { $yesterday = time() + (60 * 60 * 9) – (60 * 60 * 24 * 1); // $yesterday = time() + (60秒 * 60分 * 9時間) – (60秒 * 60分 * 24時間 * 1日); $date_yesterday = date('l', $yesterday); return $date_yesterday; } ?> time()関数は、現在の時刻が、1970年1月1日0時0分から何秒経過したか求める関数であるが、 GMT基準であるため、日本時間に修正した上で、1日分の秒数を引いている。 こうして補正した秒数をdate()関数で整形し、曜日を求めている。 最後にreturn()を使って、戻り値として変数$date_yesterdayの値を返している。 return()は、処理を中断し、その引数を戻り値として返すが、echo()などと同様に厳密には関数ではないため、通常は、()は使わずに return 引数(戻り値となる値、変数); のように記述する。 戻り値として値を返さず、echo()関数で表示することが前提なら <?php get_date_yesterday(); function … 続きを読む →

Posted in PHP, PHP講座, ネット・PC | Tagged | 2 Comments

初心者による初心者のためのPHP講座 第8回 ループ処理

PHPでは、同じ処理を繰り返し実行するための「ループ処理」を記述出来る。 ループ処理は、PHPでは、出番が多い構文であり、必ずマスターしておくこと。 while構文 while構文はシンプルなループを記述するための構文で、if文と似ている。 while (式) { 処理 } if文の場合は、式が真の場合に処理を実行するが、while文の場合は、式が真である限り、同じ処理を繰り返し実行する。 下記のサンプルは、$countが6未満であれば処理を繰り返す。 $countの初期値は1であり、処理が実行される度に1加算される。 <?php $count = 1; while ($count < 6) { echo $count; $count++; } ?> 従って、上記のサンプルを実行すると「12345」と表示される。 for構文 for構文は、while構文と比較すると複雑な構文で、繰り返しの条件を定義するために3つの式を必要とする。 for (式1; 式3; 式3) { 処理 } 式1は、whileを開始した時に1度だけ実行され、式2は、処理に実行を完了する度に実行される。そして、式3が真であれば処理が繰り返される。 複雑ではあるが、以下のように読み替えると理解しやすい。 for (初期値; 条件式; 増減) { 処理 } 式1で変数の初期値を定義し、式3で変数の増減を定義しておけば、式2の条件式で変数を評価することで意図した回数ループを繰り返すことが出来る。 <?php for ($count = 1; $count < 6; $count++) { echo $count; } ?> 上記のサンプルでは、$countの初期値が1で、処理の度に1増える。 そして、$countが6未満なら処理が繰り返されるため、実行すると「12345」と表示される。 次のサンプルでは、複数の変数の初期値と増減を記述している。 <?php for ($count = 1, $value = 5; $count < 6; $count++, $value–) { echo "\$count:".$count." \$value:".$value."<br />"; } ?> 複数の変数の初期値と増減を記述する場合は、それらをカンマで区切ること。 for構文は、次のように記述しても良い。 for (式1; 式2; 式3): 処理 endfor; do~while構文 while構文やfor構文が、まず条件式を評価した上で、条件式が真であれば処理を繰り返すのに対して、do~while構文は、まず処理を実行してから、条件式の評価が行われる。 つまり、条件を満たしているか否かに関係なく、少なくとも1回の処理が実行され、2回目以降は、条件式が真である場合のみ繰り返される。 do { 処理スクリプト } while(式); 条件評価と処理の順序が逆であるが、基本的にはwhile構文と似ている。 次にサンプルは、$valの初期値が既に条件を満たしていない。 <?php $val = -1; do { echo $val; } … 続きを読む →

Posted in PHP, PHP講座, ネット・PC | Tagged | 1 Comment

PDFファイルを生成するためのPHPライブラリ「TCPDF」

昨年末にWordPressの投稿や固定ページをPDF形式でダウンロード出来るようにするプラグイン、「POST2PDF Converter」をリリースしたところ、予想外に反響があった。 そもそも、同様の機能を持つプラグインは既に複数存在しており、「POST2PDF Converter」は、特に目新しいプラグインではないのであるが・・・。 投稿や固定ページをPDFへ変換するプラグインのうち、人気のものは外部のオンラインサービスを利用してPDFファイルの変換している。 例えば、「Print Friendly and PDF Button」は、「printfriendly」と言うサービスを利用してPDFに変換している。 また、「PDF24 Article To PDF」は、「PDF24」というサービスを利用しており、「PDF & Print Button Joliprint」は、「joliprint」を利用している。 これらのサービスは、PDF変換以外の機能も提供しているケースが多く、概ね高機能である。 対して「POST2PDF Converter」は、「TCPDF」というオープンソースのPHPライブラリを利用しており、外部サービスに依存せず、サーバー上で変換を行う。 もっとも、「TCPDF」を利用したプラグインは、以前から他にも存在しており、この点でも「POST2PDF Converter」が特に目新しいものでは無いのであるが・・・。 どちらかと言えば、「TCPDF」を利用したプラグインは、WordPressのプラグインの中ではマイナーな部類になるが、それは「TCPDF」が機能的に劣ると言うことではなく、UTF-8のWordPressコンテンツとも基本的に相性が良い。 「TCPDF」は、イタリア人のNicola Asuni氏(Tecnick.com S.r.l)によって開発されたPHPライブラリであり、「FPDF」の派生である。 このライブラリを使用するには、PHP 5が必要であるが、PHP 4用のパッケージも用意されている。 PHPのライブラリであるが故に、WordPressとの相性も良く、簡単な記述でDBからHTML形式のコンテンツ取得し、それを「TCPDF」に渡してPDF形式に変換することが出来る。 また、グラフやQRコードなどのバーコードの描画も可能であり、工夫次第で、かなり凝ったPDFを生成できるようになっている。 APIは単純とは言えないが、僅かなコードの追加でHTMLをPDFに変換するための処理を記述できる。 WordPressのようにコンテンツをHTML形式で取得し易いシステムであれば、導入に苦はないはずである。 PDFへの変換処理に関しては「TCPDF Examples」でサンプルが用意されているので、これを真似て書くと手っ取り早いだろう。 少し版は古いが「MONZEN.ORG」で日本語ドキュメントが用意されているので、これも参考になる。 TCPDFについて TCPDF マニュアル 日本語版 ディレクトリパス、フォント、フォントサイズと言った設定パラメーターは「/config/tcpdf_config.php」で定数として設定する形になっており、必要に応じてこれを編集する。 「/config/lang」ディレクトリには、各言語用の設定ファイルが格納されている。 バージョン5.9.145からは日本語用の設定ファイル「jpn.php」が同行されているので、これを使えば良いが、設定ファイルの記述自体は単純であり、足りない言語の設定ファイルも簡単に自作することが出来る。 $l['a_meta_charset'] で文字コード、$l['a_meta_dir']で記述方向(左から右ならltr、右から左ならrtl)、$l['a_meta_language']で言語コード定義する。 そして、$l['w_page']では、「page」の訳を定義する。 下記は、UTF-8、日本語の場合の記述例である。 // Japanese global $l; $l = Array(); // PAGE META DESCRIPTORS ————————————– $l['a_meta_charset'] = 'UTF-8'; $l['a_meta_dir'] = 'ltr'; $l['a_meta_language'] = 'ja'; // TRANSLATIONS ————————————– $l['w_page'] = 'ページ'; //============================================================+ // END OF FILE //============================================================+ この設定ファイルは、最初にrequire_once()で読みこめば良い。 更にもう1つ、言語によって変更すべき要素があり、それがフォントである。 フォントは、setHeaderFont、setFooterFont、SetFont、SetDefaultMonospacedFontメソッドで指定する。 なお、SetDefaultMonospacedFontでは、プロポーショナルフォントを指定することは出来ず、等幅フォントを指定する必要がある。 標準の日本語フォントは、 cid0jp(ArialUnicodeMS) kozgopromedium(Kozuka Gothic Pro) kozminproregular(Kozuka Mincho Pro) の3つであるが、残念ながら文字化け等が発生するケースがある。 場合によっては、オープンソースのTrueType日本語フォントなどをTCPDF用に変換して、それを使った方が良いかもしれない。 バージョン5.9.123からは、TrueTypeフォントをTCPDF用に変換するためのメソッド、addTTFfont()が追加されたので、フォントの変換の際にはこれを利用する。 また、5.9.122以前に同梱されていたツールを使っても良い。 なお、このサイトでもオープンソースのIPAフォントと梅フォントをTCPDF用に変換したものを公開している。 TCPDFは、HTMLタグを解釈し、タグに従ってレイアウトを行った上でPDFに変換するが、全てのタグや属性を正しく解釈できる訳ではない。 また、通常ウェブサイトは、別途CSSを読み込んでレイアウトを行なっているが、このCSSがPDFに反映される訳でもない。(あくまでHTMLのみ解釈する。) そのため、生成したPDFは、実際のウェブサイトとレイアウトが異なってしまう場合が多い。 必要であれば、HTMLにstyle属性を付加するなどして、微調整する必要がある。 PDFに変換される事を意識してHTMLを書くのも良いし、HTMLをそのままTCPDFに渡すのではなく、その前の段階で、HTMLをTCPDFに最適化させる処理を入れても良い。 拘れば、ここが最も面倒な作業になるだろう。

Posted in PHP, WordPress, ネット・PC | Tagged , , | Leave a comment

初心者による初心者のためのPHP講座 第7回 配列

「配列」は変数の一種であるが、通常の変数が、1つの変数に1つの値しか格納できないのに対して、「配列」とは、複数の値を格納する変数のことである。 配列は、格納する値同士の紐付けが容易であるため、重宝する場面が多く、出番も多いので必ずマスターしておく必要がある。 私の場合、それほど多用するわけではないが、設定パラメーターを格納する際には、よく配列を用いている。 配列の定義 例えば、年齢を変数に格納するとしよう。 複数の年齢を格納する場合は、今まで学んだ知識の範囲でこれを記述するとなると、 <?php $age1 = 13; $age2 = 25; $age3 = 46; ?> のように複数の変数を定義する必要がある。 値の数が少ない場合は、上記のような定義も悪くはないが、値の数が1,000個、10,000個となると、定義すべき変数の数が膨大になり、非常に効率が悪い。 しかし、配列を用いれば、複数の値を1つの変数に格納することが出来る。 実際に配列を使って定義すると以下のようになる。 <?php $age[0] = 13; $age[1] = 25; $age[2] = 46; ?> 上記の例では、1つの変数と言うことも出来る配列$ageに全ての構成要素が格納されている。 配列と言っても通常の変数と書式に違いはないが、配列に格納される各要素(値)を定義する場合は、角括弧構文を用いて[キー]を指定する必要がある。 <?php $変数名[キー1] = 値1; $変数名[キー2] = 値2; $変数名[キー3] = 値3; ?> 「キー」と「値」は、必ずペアになっており、「キー」に紐付けられた「値」を配列の要素と呼ぶ。 「要素」は「値」が住んでいる部屋で、そのルームナンバーが「キー」と理解すると良いだろう。 配列から値を取り出したい場合も、ルームナンバーである「キー」を使って取り出すことが出来る。 値としては、通常の変数同様に、整数値、浮動小数点、文字列、論理値、NULLが格納できる他、配列を格納することも出来る。 配列を格納する配列を、多次元配列と呼ぶが、これについては後ほど説明する。 以下の例では、配列$ageを定義し、$ageからキー「1」の値を取り出してecho()で表示させている。 <?php $age[0] = 13; $age[1] = 25; $age[2] = 46; echo $age[1]; ?> 以上のように、特定の値を取り出す場合にも角括弧構文を用いて、キーで指定する。 キーに0から始まる整数値を使う場合は、下記のように角括弧構文の中のキーを省略して定義することも出来る。 <?php $age[] = 13; $age[] = 25; $age[] = 46; echo $age[1]; ?> 上記の例では、キーは省略されているもの、各要素には先頭から順に0、1、2・・・と言った整数値がキーとして与えられており、「25」と表示される。 また、配列は角括弧構文以外でも定義でき、配列の定義のために用意されているarray()関数を使って配列を定義することも出来る。 <?php $age = array(13, 25, 46); ?> キーは、省略されているが、この場合も、各要素には0から始まる整数値のキーが自動的に割り当てられる。 明示的にキーを書くならば、下記のようになる。 <?php $age = array(0 => 13, 1 => 25, 2 => 46); ?> array()関数を用いる場合は、演算子「=>」を使って、キーと値の関係を記述し、要素を定義できる。 また、explode()関数を使えば、特定の文字で区切られた文字列を配列に格納することが出来る。 <?php $str_age = "13,25,46"; $age … 続きを読む →

Posted in PHP, PHP講座, ネット・PC | Tagged | Leave a comment

WordPressのショートコードAPI

WordPressは、ショートコードを登録、処理するためのAPIを備えており、このショートコードAPIを使えば、簡単にショートコードを登録することが出来る。 今回は、このショートコードAPIの説明を行う。 ショートコードの登録には、add_shortcode()関数を使用する。 add_shortcode('ショートコードタグ', 'ハンドラー'); ショートコードは、 [ショートコードタグ] と言った[]で文字列を囲んだ書式であるが、[]を除いたものを「ショートコードタグ」として記述し、「ハンドラー」には、ショートコードと置き換える文字列を戻り値として返す関数の名称を記述する。 例えば、「こんにちは」と表示されるショートコード [hi]を登録する場合は、 add_shortcode('hi', 'my_shortcode_handler'); function my_shortcode_handler() { return 'こんにちは'; } と記述すれば良い。 非常に簡単にショートコードを登録できるようになっているが、内部的には、 do_shortcode()というフィルター関数が、add_shortcode()関数で登録された全てのショートコードハンドラーを使って文字列に変換する処理を行なっており、デフォルトでは、do_shortcode()関数は、the_contentフィルターフックにプライオリティ11で適用されている。 このフィルターによって、投稿や固定ページが表示される際に、ショートコードが決められた文字列に変換され、表示に反映される。 デフォルトでは、ショートコードが使えるのは投稿と固定ページの中だけであるが、他の場所でも使用したいなら、このdo_shortcode()関数を使えば良い。 例えば、コメントでショートコードを使いたいなら、 add_filter('comment_text', 'do_shortcode', 11); とすれば良い。(プライオリティは11ある必要はない。) 以上がショートコードの登録の基本であるが、ショートコードAPIは、単純なショートコードだけなく、属性値を持つショートコードや囲み型のショートコードもサポートしている。 [ショートコードタグ attr1="値1" attr2="値2" ・・・]任意の文字列[/ショートコードタグ] 次の例は、属性値を持つ、囲み型のショートコードであり、[div id="id1" class="class1"]任意の文字列[/div]と言う書式のショートコードを<div id=”id1″ class=”class1″>任意の文字列<div>に変換してくれる。 add_shortcode('div', 'my_shortcode_handler'); function my_shortcode_handler($atts, $content = null) { extract(shortcode_atts(array( 'id' => 'block', 'class' => 'block', ), $atts)); return '<div id="'.esc_attr($id).'" class="'.esc_attr($class).'">'.do_shortcode($content).'</div>'; } ハンドラーは、引数としてショートコードで囲まれた部分の文字列を受け取ることが出来る。 加えて、属性名をキー、属性値を値とする配列の形で、ショートコードの記述された全ての属性と属性値を引数として受け取ることが出来る。 しかし、ユーザーが入力する属性、属性値に関しては、何が含まれているか分からない。 そこで、無効な属性が含まれている場合は、これを取り除き、欠けている場合は、デフォルト値を与えて補う必要があるが、これを簡単に行うことができるのが、shortcode_atts()関数である。 上の例では、id、classのデフォルト属性値は「block」となっており、ショートコードで、idまたはclassが省略された場合は、この「block」が値として自動的に割り当てられる。 そして最終的には、extract()を使って属性名を名前とする変数に格納している。 これらの値を用いて、置き換えの文字列を定義し、これを戻り値として返しているが、受け取った属性値は、セキュリティ上も信頼できないので、そのまま出力することは避けたい。 そこで、戻り値として返す前にesc_attr()関数でエスケープしている。 また、$contentに対してdo_shortcode()を適用して、ショートコードに囲まれたショートコード、つまりネストされたショートコードも、ショートコードとして正しく処理されるようにしている。 前にも書いたがdo_shortcode()が、ショートコードを処理するフィルターそのものであるので、do_shortcode()を文字列に適用すれば、文字列内のショートコードが正しく処理される。上記の場合は、$contentに対して、これを行なっている。

Posted in PHP, WordPress, ネット・PC | Tagged , , | Leave a comment

初心者による初心者のためのPHP講座 第6回 条件分岐

ここまで学んだ知識でも、変数の定義や関数を記述して簡単なプログラムを作成することは出来るはずである。 しかし、条件分岐やループ処理などの制御構文を記述することで、初めて複雑なプログラミングが可能になる。 今回は「条件分岐」について説明する。 「条件分岐」とは、特定の条件を満たすか否か判定し、その結果に応じて処理を割り当てる制御構文である。 条件分岐には「if文」、「switch文」が使われる。 if文 「if文」とは、「もし~ならば、処理を実行する」といった意味を持つ構文である。 条件式の評価を行い、その条件が真(ture)であれば、処理を実行する。 <?php if (条件式) { 処理; } ?> 下の例では、変数$colorが、「red」であれば、echo()関数が実行され、「Red」と表示される。 <?php if ($color == "red") { echo "Red"; } ?> if文では、「()」内に評価する条件式を記述し、対応する処理は「{}」内に記述する。 条件式の評価の部分で使われている「==」は、比較演算子と呼ばれる構文で、この場合は、左辺と右辺の値が等しいことを意味している。 「$colorがredと等しい」か否かの評価、つまり「$colorがred」であるか否かの評価を行なっている。 上記のif文は、条件式の評価が偽(false)である場合は、何も行わない、単一の条件の評価であるが、「else if文」を使えば、最初の「もし(if) ならば」が偽であれば、「あるいは ならば」といった別の評価を行うことが出来る。 下記の例では「$colorがred」である場合は、「echo “Red”;」実行して、if文を終了するが、「$colorがred」でない場合は、続いて「$colorがblue」か否かの評価が行われる。 <?php if ($color == "red") { echo "Red"; } else if ($color == "blue") { echo "Blue"; } ?> 「else if」文は、下記のように複数回記述することも出来る。 <?php if ($color == "red") { echo "Red"; } else if ($color == "blue") { echo "Blue"; } else if ($color == "black") { echo "Black"; } ?> 「else if」は、空白を空けずに「elseif」と書いても良い。 個人的には、「else if」と書く癖があるが、同様の構文を持つJavaスクリプトで「elseif」と書くべきところを、「else if」と書いて失敗することがある。 そう言った意味では「elseif」で覚えたほうが良いかもしれない。 更に、「else文」を使えば、いずれの条件式評価も偽となった場合の処理を記述することが出来る。 <?php if ($color == "red") { echo "Red"; } else if ($color == "blue") { echo "Blue"; } else if ($color … 続きを読む →

Posted in PHP, PHP講座, ネット・PC | Tagged | Leave a comment

WordPress 3.3のHTMLエディターにクイックタグを追加する

この記事は、「WordPress 3.3 ベータ 3」に基づいて書かれており、不確定な要素を含んでいる。 WordPressは、記事の作成、編集のために「ビジュアルエディター」と「HTMLエディター」の2つのエディターを備えており、操作を簡略化するために、それぞれ独自のボタンを配している。 「ビジュアルエディター」で表示されるボタンは、ビジュアルエディターのベースとなってるライブラリ、「TinyMCE」が標準で搭載してるボタンか、「TinyMCE」のプラグインとして導入されているものである。 また、「HTMLエディター」に表示されるボタンは「クイックタグ(Quicktag)」と呼ばれ、「ビジュアルエディター」のボタンとは異なるものである。 (現時点では、未だリリースされていないが)「WordPress 3.3」では、この「クイックタグ」の処理が変更されており、従来方法ではクイックタグを「HTMLエディター」に追加出来なくなってしまっている。 そのため、独自のクイックタグを追加するようなプラグインは、WordPress 3.3に合わせて修正しない限り、WordPress 3.3では、クイックタグが表示されないと言った問題が発生することが予想される。 この記事では、WordPress 3.3のHTMLエディターに独自のクイックタグを追加する方法を説明する。 下記は、<pre>タグ(および終了タグ</pre>)を入力するためのクイックタグを追加する場合の例である。 プラグインやfunctions.phpで記述すれば良い。 <?php function add_my_quicktag() { ?> <script type=”text/javascript”> //QTags.addButton(‘ID’, ‘ボタンのラベル’, ‘開始タグ’, ‘終了タグ’); QTags.addButton(‘ed_pretag’, ‘pre’, ‘<pre>’, ‘</pre>’); </script> <?php } add_action(‘admin_print_footer_scripts’, ‘add_my_quicktag’); ?> 「ID」は任意のもの、「ボタンのラベル」には、ボタン上に表示したい文字を設定する。 「開始タグ」には、ボタンをクリックした時に、選択範囲の前に挿入されるタグを入力する。 「終了タグ」は、不要であれば省略することも出来る。 その他に、タイトル(title属性)、アクセスキー、プライオリティと言ったパラメーターを指定することも出来る。 詳しくは、 /wp-includes/js/quicktags.dev.js のコメントを参照のこと。 上記の例は、単にタグを挿入するだけの処理であるが、より高度な処理を行うために、指定したJavaスクリプトの関数を実行させることもでき、この場合も、シンプルに記述することが出来る。 <?php function add_my_quicktag() { ?> <script type=”text/javascript”> //QTags.addButton(‘ID’, ‘ボタンのラベル’, 関数名); QTags.addButton(‘ed_saywordpress’, ‘Say WordPress’, say_wordpress); function say_wordpress() { alert(‘WordPress’); } </script> <?php } add_action(‘admin_print_footer_scripts’, ‘add_my_quicktag’); ?> 「関数名」は、クォーテーションで囲んではいけない。 また、「WordPress 3.3」では、「quicktags_settings」と言うフィルターフックが新しく追加されており、このフックを使えば、デフォルトで表示させるクイックタグを制御することが出来る。 標準では、デフォルトで表示されるクイックタグは、strong(b)、em(i)、link、block(b-quote)、del、ins、img、ul、ol、li、code、more、spell(lookup)、close(close tags)、fullscreenであるが、下記のように記述することで、これを変更することが出来る。 function default_quicktags($qtInit) { $qtInit['buttons'] = ‘strong,em,link’; return $qtInit; } add_filter(‘quicktags_settings’, ‘default_quicktags’, 10, 1); 上記の例では、strong(b)、em(i)、linkがデフォルトで表示されるクイックタグとなる。 なお、デフォルトのクリックタグの指定は、最初に説明した方法で追加したクイックタグには影響を与えないので、デフォルトのボタンとして指定しなくとも表示される。 詳しくは、 /wp-includes/class-wp-editor.php のeditor_settings()関数を参照のこと。

Posted in PHP, WordPress, ネット・PC | Tagged , | 2 Comments

初心者による初心者のためのPHP講座 第5回 演算子

PHPに限らず、プログラムでは、「演算子」と呼ばれる数学的または論理的な演算を行うための記号を使用する事が多い。 この演算子を使えば、足し算、引き算などの四則演算を行ったり、値の代入を行うことが出来る。 また、PHPのプログラムでは、ある条件を満たすか否かの判定、つまりは真偽(true、false)の判定を行うことが多いが、このような判定では「比較演算子」、「論理演算子」が欠かせない。 既に「初心者による初心者のためのPHP講座 第3回 文字列」で「文字列演算子」について触れ、「初心者による初心者のためのPHP講座 第4回 定数と変数」で「代入演算子」と「算術演算子」についても触れており、実際に使用しているが、それら以外にも演算子には様々な種類がある。 とは言え、復習的な部分も少なくない。 演算子は、必ず知っておく必要があるが、演算子だけ取り上げて学習するよりも、プログラムの中で実際に使った方が感覚的にも分かりやすいかもしれない。 具体的な使い方は、実際にプログラミングしながら覚えれば良い。 しかし、演算を行うための演算子という記述があることは、少なくとも覚えておこう。 算術演算子 単純な計算を行うための記述にであり、「5+3」、「2×3」の「+」や「×」に相当するもので、プログラミングの知識が無くとも、馴染みがあり、理解しやすいはずである。 PHPでは、以下の5つの四則演算子が用意されている。 + 足し算 – 引き算 * 掛け算 / 割り算 % 割り算の余りを求める 下記は、算術演算子を使ったサンプルである。 <!doctype html> <?php echo ‘<?xml version=”1.0″ encoding=”utf-8″?>’; ?> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml” lang=”ja” xml:lang=”ja”> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /> <title>四則演算子</title> </head> <body> <?php $cal1 = 8 + 3; // 8と3の足し算。$cal1には整数11が代入される。 $cal2 = 8 – 3; // 8から3を引く。$cal2には整数5が代入される。 $cal3 = 8 * 3; // 8に3を掛ける。$cal3には整数24が代入される。 $cal4 = 8 / 3; // 8を3で割る。$cal4には浮動小数点2.66666666667が代入される。 $cal5 = 8 % 3; // 8割る3の余り。$cal3には整数2が代入される。 echo “8 + 3 = “.$cal1.”<br />”; echo “8 - 3 = “.$cal2.”<br />”; echo “8 × 3 = “.$cal3.”<br />”; echo “8 … 続きを読む →

Posted in PHP, PHP講座, ネット・PC | Tagged | Leave a comment

初心者による初心者のためのPHP講座 第4回 定数と変数

多くのプログラミング言語同様に、PHPでも、定数、変数を使うことが出来る。 定数、変数とは、「初心者による初心者のためのPHP講座 第3回 文字列」で学んだ文字列などの値を格納しておく箱のようなもので、命令文の中などで箱から値を取り出して使うことが出来る。 定数 定数とは変わることない不変の値、不変の値を格納する箱を指し、define()関数を使って以下のように定義する。 define(“定数名”, 値); 定数名には、アルファベット、数字、アンダースコアを使うことが出来るが、最初の1文字はアルファベットかアンダースコアである必要がある。 また、特別な引数を設定しない限り、アルファベットの大文字と小文字は区別され、別のものとして扱われる。 定義した定数に格納された値は、定数名で取り出すことが出来る。 難しいことを考えるよりも、実際にサンプルを見たほうが理解が早いだろう。 以下のサンプルでは、echo()関数と組み合わせて定数を使用している。 <!doctype html> <?php echo ‘<?xml version=”1.0″ encoding=”utf-8″?>’; ?> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml” lang=”ja” xml:lang=”ja”> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /> <title>定数</title> </head> <body> <?php define(“VALUE1″, 100); define(“VALUE2″, “100″); define(“VALUE3″, “こんにちは”); echo VALUE1.”<br />”; echo VALUE2.”<br />”; echo VALUE3.”<br />”; echo VALUE1.”円”.”<br />”; echo VALUE3.”。 この商品は”.VALUE1.”円です。”; ?> </body> </html> 上記のスクリプトの実行結果を表示 定数に文字列を格納する場合は、前回学んだ通り「”」や「’」で囲む必要がある。 数値を格納する場合は、「”」や「’」で囲む必要はないが、文字列として数字を扱う場合は、「”」や「’」で囲む必要がある。 例えば「”1″」と「1」は、それぞれ文字列と数値であり、プログラミング上では、本来は別物であり、区別されるべきものだが、PHPでも区別はあるものの、その区別が曖昧である。 この事は、変数の説明の際に再度述べる。 定数は、何度でも呼び出して使用することができ、一度、定数を定義してしまえば、後は定数として呼び出すだけで良いので、都度、値を記述するより遥かに楽であるし、ミスも起こりにくくなる。 実際、上記のサンプルでも定数「VALUE1」、「VALUE3」は、2度以上使われている。 文字列の連結同様に「.」を使って、定数や文字列と連結することも出来る。 定数は、不変の値を考えるよりも、一度定義したら変更が効かない値と考えたほうが分かりやすいかもしれない。 つまり、箱の中身を取り出すことは出来ても、入れ替えることは出来ない。 定義した後で値を変更する必要がなく、繰り返し使う可能性がある値は、定数として定義すると良いだろう。 変数 変数とは、変化する可能性がある値を格納する箱のようなものである。 定数が、一度定義したら値の変更が出来ないのに対して、変数は、何度でも値を変更することが許されている。 つまり、箱の中身を自由に入れ替えることが出来る。 変数の定義は、定数と異なり関数を使う必要がなく、非常にシンプルである。 $変数名; $変数名 = 値; 「$」が変数であることを表し、空の変数を定義するなら単に「$変数名」と宣言すれば良いし、何かしらの値を代入した変数を定義するなら「代入演算子」である「=」を使って値を代入した形で変数を定義すれば良い。 値の代入の有無は別として、この要領で変数を宣言をした時点で変数は初期化され、値が格納される。(値を代入していない場合は、空の値が格納される。) このあたりは、数学の代入と要領は同じである。 変数名には、アルファベット、数字、アンダースコアを使うことが出来るが、最初の1文字はアルファベットかアンダースコアである必要がある。 また、アルファベットの大文字と小文字は区別され、別のものとして扱われる。 「$$value」のように変数名に変数を使う使うことも出来るが、ここでは説明を省く。 では実際にサンプルを見てみよう。 <!doctype html> <?php echo ‘<?xml version=”1.0″ encoding=”utf-8″?>’; ?> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml” … 続きを読む →

Posted in PHP, PHP講座, ネット・PC | Tagged | 1 Comment