メインコンテンツまでスキップ

「PHP」タグの記事が11件件あります

全てのタグを見る

WordPress: インポートファイル(WXR)の最大アップロードサイズの変更

· 約2分
Yu Sasaki
Enterprise Security Manager / Advisor

他サイトのWordPressの記事データを移行する方法として、メニュー→ツール→インポートから、WordPress eXtended RSS (WXR) ファイル(.xml)をアップロード手法があるが、デフォルト設定ではアップロードできるファイルの最大サイズを超えるWXRファイルを使用出来ない。アップロードファイルの最大サイズを変更するには、対象のWordPressサーバ上の/etc/php.iniファイルの以下のディレクティブを変更する。

PHP: phpMyAdminのアップグレード・インストール

· 約2分
Yu Sasaki
Enterprise Security Manager / Advisor

前記事に続き(単にしばらくほったらかしのOSSが多かっただけに過ぎないが)、phpmyadminもしばらくアップデートしていなかったのでこの際実施した。 まず、最新版を以下のサイトよりダウンロード。 phpMyAdmin 続いて既存のphpmyadminディレクトリをリネームの上、新バージョンへ移行していく。

# cd /var/www
# ls
cgi-bin error html icons phpMyAdmin-4.0.5-all-languages.tar.gz phpmyadmin
# mv phpmyadmin/ _phpmyadmin/ ← 旧versionのディレクトリをリネーム
# tar xzvf phpMyAdmin-4.0.5-all-languages.tar.gz
# mv phpMyAdmin-4.0.5-all-languages phpmyadmin
# cp phpmyadmin/config.sample.inc.php phpmyadmin/config.inc.php
# chmod 660 phpmyadmin/config.inc.php
# mkpasswd -l 46
# vi phpmyadmin/config.inc.php ← 修正内容は後述
# chown -R apache.apache phpmyadmin/

因みに、最近のバージョンのLanguagesの設定は過去とは少々変わったようだ。危うくlocale -aのja_JP.UTF-8を盲目的にセットするところだった。 Configuration — phpMyAdmin 4.0.5 documentation

# ls phpmyadmin/locale/
ar bn cs de en_GB et fr hi hu it ko nb pl pt_BR ru sk sr@latin th uk uz@latin zh_TW
bg ca da el es fi gl hr id ja lt nl pt ro si sl sv tr uz zh_CN

その為、config.inc.phpファイル内の修正箇所は以下の通り。

$cfg['blowfish_secret'] = '<mkpasswdコマンド結果を挿入>'
$cfg['DefaultLang'] = 'ja';

ここで、実際にブラウザからログイン後、日本語UIが確認できればOK。最後にゴミ掃除をすれば完了。拡張機能の無効の警告については今設定ではスコープ外なので割愛。最後に以下の通りゴミ掃除すれば完了。

# rm -f phpMyAdmin-4.0.5-all-languages.tar.gz
# rm -fr _phpmyadmin/

新バージョンのUIは中々洗練されていてよい。何でも新しい方が良いもんだね。

Linux: PHP, MySQLのyum update - Remiレポジトリ

· 約4分
Yu Sasaki
Enterprise Security Manager / Advisor

CentOSを使用しているがデフォルトのyumリポジトリだとPHP, MySQLのバージョンが古いので、これまでサードパーティーのリポジトリ、Remiを用いていた。当記事はRemiリポジトリを用いてのyum updateの覚え書きとなる。Remiのインストールや設定、PHP, MySQLのインストール、設定は割愛する。

Mac+MAMP+Eclipse PDTでPHPのCLIデバッグ環境(Xdebug)を構築

· 約2分
Yu Sasaki
Enterprise Security Manager / Advisor

Mac上でのPHP開発環境のセットアップとCLIデバッグ環境の構築で幾つか躓いたところがあったので、備忘録もかねて下記にまとめておく。

MAMP+Eclipse PDTの入手

以下のサイトよりそれぞれダウンロードしインストールする。

Eclipse: 'Animation start' has encountered a problemの対処例

· 約1分
Yu Sasaki
Enterprise Security Manager / Advisor

eclipse_animation_start (Mac OS) 表題のエラーはMac OS+Eclipse(PDT)+PHP環境で発生。結論から言うと、対処法としては参考サイトに記載のフォーラム内容を参考に以下の手順で解消。

対処法

下記の設定ファイル中の、

/Applications/eclipse-php/eclipse-php.app/Contents/MacOS/eclipse-php.ini

以下の行を削除。

-Xdock:icon=../Resources/
mac.icns

もしくは適当なアイコンファイルパスを指定する。

参考サイト

  1. Eclipse Community Forums: PDT » 'Animation Start' has encountered a problem (on launch)
  2. Eclipse for php on Mac OSX 10.5: "Animation Start" error - Stack Overflow

PHP: 添字配列の初期化、出力、代入

· 約2分
Yu Sasaki
Enterprise Security Manager / Advisor

ソースコード

<?php
// 添字配列の初期化
$numbers = array(0, 3, 100, 2087123454, ); // 数値のみ(末尾要素のカンマは省略可)
$strings = array('Jon', 'Mery', 'Sun', 'Ren', ); // 文字列のみ
$numstrs = array(1, 1.0, '1', ); // 複数型混合(数値、少数、文字列)
$empty = array(); // 空の配列
// var_dumpで構造を確認
echo '$numbers == ';
var_dump($numbers);
echo '$strings == ';
var_dump($strings);
echo '$numstrs == ';
var_dump($numstrs);
echo '$empty == ';
var_dump($empty);
echo PHP_EOL;
// 配列の要素を出力
echo $numbers[2], PHP_EOL;
echo $strings[0], PHP_EOL;
echo $numstrs[2], PHP_EOL, PHP_EOL;
// foreach で配列の要素を先頭から順に出力
foreach ($numbers as $val) {
echo $val, PHP_EOL;
}
echo PHP_EOL;
// 配列の要素への代入
$strings[0] = 'Mike';
$empty[] = 'Jon'; // 空のブラケットを用いると要素の追加となる
echo $strings[0], PHP_EOL;
echo $empty[0], PHP_EOL;
?>

実行結果

$numbers == array(4) {
[0]=>
int(0)
[1]=>
int(3)
[2]=>
int(100)
[3]=>
int(2087123454)
}
$strings == array(4) {
[0]=>
string(3) "Jon"
[1]=>
string(4) "Mery"
[2]=>
string(3) "Sun"
[3]=>
string(3) "Ren"
}
$numstrs == array(3) {
[0]=>
int(1)
[1]=>
float(1)
[2]=>
string(1) "1"
}
$empty == array(0) {
}
100
Jon
1
3
100
2087123454
Mike
Jon

リファレンス

PHP: フォーム情報の送信・受信 - POSTメソッド

· 約3分
Yu Sasaki
Enterprise Security Manager / Advisor

HTMLフォームの情報をPOSTメソッドで送信し、送信されたデータをPHPスクリプトで取得しHTMLに埋め込み表示してみます。フォームの各フィールドははformタグ中でinput、select、textareaタグ等を用いて指定します。特にinputタグは下表の様にtype属性が色々あります。

inputタイプtype属性
テキスト入力type="text"
パスワード入力type="password"
ラジオボタンtype="radio"
チェックボックスtype="checkbox"
送信ボタンtype="submit"
ボタンtype="buttun"

フォームデータの送信先はformタグのaction属性で指定します。また、そのときのリクエストメソッドの指定はformタグのmethod属性で指定し、ここではPOSTを用いるのでmethod="post"と記述します。POSTはGETメソッドと異なり特に文字制限はありません。

ソースコード

form_test.html

HTMLフォーム情報の送信テスト

ID:
PASS:
性別:男性 女性
学年: 1年生 2年生 3年生 4年生
所有デジタル機器: PC Cell
コメント:

フォームデータは同ディレクトリに設置したshow_form_data.phpファイルに送信しています。

show_form_data.php

$value) { $have_dig[$key] = $value; } } $comment = htmlspecialchars($_POST["comment"], ENT_QUOTES); } else { echo "フォームページからアクセスしてください。"; exit(1); } ?> HTMLフォームのPOSTの受信テスト 送信されたデータは、
ID:
PASS:
性別:
学年:年生
所有デジタル機器:
コメント:

POSTリクエストでshow_form_data.phpへアクセスした場合はexit関数でスクリプトを終了します(→PHP: exit - Manual)。 htmlspecialchars関数で特殊文字をエスケープします(→PHP: htmlspecialchars - Manual)。今回はPOSTメソッドに関する練習用スクリプトなのでバリデーション処理は入れていませんが、実際はセキュリティ対策と合わせて色々フィルタするなり、リダイレクトで別ページに誘導するなりの処理が必要です。最近はこの辺の処理をフレームワークで上手くラップしてくれるのでかなり楽になっています。 あと、余談ですがforeach文では操作対象の配列のコピーを作成して、コピーに対して処理していきます。

実行結果

form_test.html

HTMLフォームへの入力

show_form_data.php

POSTされたデータの出力