ホーム > PHP

PHPのアーカイブ

さくらでPHPを利用する際の注意

さくらインターネット サポート
CGI・PHPの設置に関わるサーバ情報一覧

◎ファイル、ディレクトリ、ともにパーミッションは705または755
(どちらでも同じ)
この設定が間違っているとInternal Server Errorになる。

◎文字コードはEUC-JPとなっているけれど、UTF-8でも問題ない様子
2010/3/25追記:やっぱりEUC-JPにしておいたほうが無難みたい。
Vimをインストールしてsshでリモート操作してファイルを閲覧、編集しようとすると
utf-8で作成されたファイルはその中身を閲覧することが出来ない。
(一部しか表示されなかったりして、とにかくおかしい)

EUC-JPにすると問題は解消された。
なので、以後はEUC-JPで統一することにした。
でも、Shift_JISだと問題ないみたい。UTF-8がダメなのかな。

◎PHPの設定についてはphp.iniですること
.htaccess内でphpの設定はしないこと。(エラーになる)
詳しくはを「さくらでphp.iniの編集をする」参照のこと。

◎Terminalで操作する場合
Terminalからsshでリモートログインして操作する場合、Terminalの
文字エンコーディングもサーバの文字コード(EUC-JP)に合わせておく必要がある。

環境設定 > 設定 > 詳細 > 言語環境のところの「文字エンコーディング」を「日本語(EUC)」に変更。

さくらでphp.iniの編集をする

利用しているさくらインターネットのスタンダードプランでは
.htaccess内にphpの設定を記述することができない。
(サーバエラーになる)
続きを読む

全角スペース、複数の半角スペースを半角スペースひとつに置換

PHPでCSVデータを表示する

この記事はPHPでCSVデータを表示するに引っ越しました!

PEAR::Pagerをインストールして使ってみる

  • 投稿者: admin
  • 2009年11月8日 12:37 PM
  • PHP
  • |

自宅iMacのVMware FusionにインストールしているUbuntu Server 9.0.4に、PHPのPEARライブラリ「PEAR::Pager」をインストール。

PEAR::Pagerはページネーション(ページ送りとか、ページングとも言う)機能を簡単に実装できるパッケージ。

PEARの各パッケージをインストールするには(この場合はPEAR::Pager)PEARパッケージマネージャの「php-pear」が必要。これがPEARの各パッケージをインストールするための窓口となってくれる。

ちなみに、Ubuntuではこのパッケージマネージャが未インストール状態で、PEARのパッケージをインストールしようとすると

$ pear install Pager
The program 'pear' is currently not installed.  You can install it by typing:
sudo apt-get install php-pear

と表示される。「pear」がインストールされてませんよと。そして、それをインストールするには「sudo apt-get install php-pear」とタイピングして実行するといいですよと。親切だ。

なので、このメッセージに従ってphp-pearをまずはインストールする。(sudoというのはroot権限でこのコマンドを実行するということ)

php-pearのインストール

$ sudo apt-get install php-pear

これでPEARのパッケージマネージャがインストールされた。つづいて本題のPEAR::Pagerパッケージのインストール。これも同様にsudoをコマンドの先頭につけて、管理者権限でインストールする。

PEAR::Pagerのインストール

$ sudo pear install Pager

Pagerパッケージをインストールして、何がどこに入ったのかを一応確認してみる。
(pearのlistというコマンドを使って)

$ pear list Pager
Installed Files For Pager
=========================
Type Install Path
doc  /usr/share/php/docs/Pager/examples/example.php
doc  /usr/share/php/docs/Pager/examples/Pager_Wrapper.php
test /usr/share/php/tests/Pager/tests/all_tests.php
test /usr/share/php/tests/Pager/tests/multibyte_post.php
test /usr/share/php/tests/Pager/tests/pager_include.php
test /usr/share/php/tests/Pager/tests/pager_jumping_noData_test.php
test /usr/share/php/tests/Pager/tests/pager_jumping_test.php
test /usr/share/php/tests/Pager/tests/pager_jumping_tests.php
test /usr/share/php/tests/Pager/tests/pager_noData_test.php
test /usr/share/php/tests/Pager/tests/pager_post_test.php
test /usr/share/php/tests/Pager/tests/pager_post_tests.php
test /usr/share/php/tests/Pager/tests/pager_post_test_simple.php
test /usr/share/php/tests/Pager/tests/pager_sliding_noData_test.php
test /usr/share/php/tests/Pager/tests/pager_sliding_notExpanded_test.php
test /usr/share/php/tests/Pager/tests/pager_sliding_test.php
test /usr/share/php/tests/Pager/tests/pager_sliding_tests.php
test /usr/share/php/tests/Pager/tests/pager_test.php
test /usr/share/php/tests/Pager/tests/pager_tests.php
test /usr/share/php/tests/Pager/tests/pager_test_xss.php
test /usr/share/php/tests/Pager/tests/pager_wrapper_include.php
test /usr/share/php/tests/Pager/tests/pager_wrapper_test.php
test /usr/share/php/tests/Pager/tests/README
test /usr/share/php/tests/Pager/tests/simple_include.php
php  /usr/share/php/Pager.php
php  /usr/share/php/Pager/Common.php
php  /usr/share/php/Pager/HtmlWidgets.php
php  /usr/share/php/Pager/Jumping.php
php  /usr/share/php/Pager/Pager.php
php  /usr/share/php/Pager/Sliding.php

簡単なコードを実際に記述して、このパッケージ(Pager)が利用出来る状態になっているのかを確認する。(パッケージをincludeで読み込んで機能を利用可能にし、ページネーションのナビゲーションリンクと現在のページ番号を表示してみる)

paging_sample.php

 200,
    "delta" => 10,
    "perPage" => 8
);

$pager =& Pager::factory($options);
$navi = $pager -> getLinks();
print($navi["all"]);

$currentPageID = $pager -> getCurrentPageID();

echo "現在のページ番号は" . $currentPageID . "です。";

このファイルにブラウザでアクセスして表示してみると、こんな感じ。
ピクチャ 1

とりあえずPagerパッケージは無事インストールできて、機能も利用できている模様。

あとは、実際にページネーションが必要なコンテンツを作成して実践&確認していくという感じ。

PHPでCSVデータを読み込んで内容を出力する

  • 投稿者: admin
  • 2009年11月7日 5:24 PM
  • PHP
  • |

この記事はPHPでCSVデータを読み込んで内容を出力するに引っ越しました!

CentOS 5.3 ServerにLAMP環境の構築

この記事はCentOS 5.3 ServerにLAMP環境の構築にひっこしました。

セキュリティ面に気をつかったphp.iniの設定

この記事は
セキュリティ面に気をつかったphp.iniの設定
に引っ越しました。

php.ini の場所

  • 投稿者: admin
  • 2009年6月7日 12:12 PM
  • PHP

/opt 配下、XAMPP、Ubuntu Server(VMware fusion での仮想環境)と、勉強のための環境が複数あって混乱してきたのでメモ。

◎MacPorts環境
/opt/local/etc/php.ini

◎XAMPP(for mac osx) 環境(/Applications 配下にインストールした場合)
/Applications/xampp/etc/php.ini

◎Ubuntu Server環境
/etc/php5/apache2/php.ini

モバイルサイト制作にあたってのphp.iniの設定

ローカルでの、自分で php.ini を編集できる環境ではいいけれど、レンタルサーバではそれが出来ないので、以下のように .htaccess を使って、モバイルサイトを制作するにあたっての各項目の設定を変更する。

.htaccessで設定した項目

(これは php4 の場合。5の場合は mod_php5.c とすればいい)

<IfModule mod_php4.c>

# セッションIDを保存するのにCookieを使用するかどうか
# 携帯では基本的にCookieを利用出来ないのでオフに
php_value session.use_cookies 0

# URLにセッションIDを付加するかどうかを指定
# 携帯ではCookieにセッションIDを保存できないので、これはオン
php_value session.use_trans_sid 1

# 内部文字エンコーディングの設定
# 携帯の特殊文字にも対応出来るようにeucJP-winを使用する
php_value mbstring.internal_encoding eucJP-win

# 自動文字エンコーディングの検出の順番を設定
# モバイルサイトは幅広い文字に対応する必要があるので、eucJP-winとSJIS-winを利用する
# そのために検出の順番を明確に定義しておく
php_value mbstring.detect_order SJIS-win,eucJP-win,JIS,UTF-8,ASCII

</IfModule>

以下の5つの項目については、ホスティング先の設定がすでにそうだったので、今回はとくに指定しなかった。(イコールは、あくまでもphp.ini上での表記で、この.htaccessでの設定では使わない)

  • session.use_only_cookie = 0
  • mbstring.language = Japanese
  • mbstring.http_input = pass
  • mbstring.http_output = pass
  • mbstring.encoding_translation = Off

*注意:
mbstring.detect_order のところは、文字コード名を繋ぐカンマの後に半角スペースとか入れてはだめ(エラーになる)

ホーム > PHP

検索
フィード

ページの上部に戻る