PHP:サーバーのフルパスを調べる方法

WEBサイトを制作する時にサーバフルパスを調べたい場合があります。
例えば、Basic認証などを設定したい時などサーバのフルパスを記述するので必要になります。

使用するサーバによって、パスは様々です。

phpが使える環境であれば簡単にフルパスを調べることが可能です。
下記にphpサーバーフルパスを調べる方法をメモします。

FTP情報しかない場合などにいいと思います。


phpでサーバーのフルパスを調べる

phpファイルを作成し、下記のコードを記述します。
例:test.phpなど

<?php
echo __FILE__;
?>

作成した「test.php」をサーバにアップロードし、ブラウザでアクセスします。
アクセスすると、アップロードしたファイルまでのフルパスが表示されます。

表示例

/home/test/www/public/test.php

上記の方法でサーバーのフルパスを調べることができます。
アップロードしたファイルはフルパスを確認したら削除してください。


PHP:strip_tagsを使用してHTMLタグを削除する

HTMLPHPで記述している文字列をタグ削除して、テキストで出力したい場合があります。
strip_tags関数を使用すれば、タグを取り除いて出力することが可能です。

また、特定のタグを許可することもできます。

phpstrip_tags関数を使用して、HTMLソースのタグ削除し、テキストで出力する方法をメモします。


strip_tagsを使用してHTMLタグを削除

HTMLタグを含む文字列を出力した場合、下記のように出力されます。

$html_body = 'テスト<br><p>テスト</p><strong>テスト</strong>';
echo $html_body;

strip_tags1


strip_tagsを使用して出力した場合は、HTMLタグが除去されて出力されます。

$html_body = 'テスト<br><p>テスト</p><strong>テスト</strong>';
$html_body = strip_tags($html_body);
echo $html_body;

strip_tags2


brタグ、strongタグを許可して、その他のHTMLタグを除去して出力した場合は下記のように出力されます。

$html_body = 'テスト<br><p>テスト</p><strong>テスト</strong>';
$html_body = strip_tags($html_body, '<br><strong>');
echo $html_body;

strip_tags3


PHP:文字列を指定した文字数で出力する

phpで変数に格納している文字列を出力する際に、指定した文字数を超えたら「…」などで表示したい場合があります。
サイトのトップページや一覧ページなど、表示する文字数が決まっている場合に使用することが多いと思います。

mb_strimwidthを使用すれば、文字列の長さを調節することができます。

mb_strimwidthを使用して、文字列指定した文字数出力する方法をメモします。


文字列を指定した文字数で出力(mb_strimwidth)

・半角文字列の場合

$str = '0123456789';
$str = mb_strimwidth($str, 0, 7, '…', 'UTF-8');
echo $str;

【出力結果】

012345…

・全角文字列の場合

$str = 'あいうえお';
$str = mb_strimwidth($str, 0, 7, '…', 'UTF-8');
echo $str;

【出力結果】

あいう…

半角文字を1文字、全角文字を2文字として扱います。
また、追加した文字も文字数に数えます。

php:PECL APCのエラーが出た時の対処方法

PHPフレームワークのCakePHPCodeIgniterで作っているサイトでいつの間にかに
下記のエラーが大量に表示されていました。

Unable to allocate memory for pool.

色々検索してみると、APCという拡張モジュールのバグみたいです。

PECL APCのエラー(Unable to allocate memory for pool.)が出た時の対処方法をメモします。
下記のサイトを参考にさせていただきました。

PECL apcのエラー Unable to allocate memory for pool.


APCのエラー対処方法

サーバにSSHでログインし、「/etc/php.d/apc.ini」ファイルを修正します。
修正内容は下記のように変更します

apc.mmap_file_mask=/tmp/apc.XXXXX

↓(変更します)

apc.mmap_file_mask=/dev/zero

変更を保存したら、httpdをrestartします。

/etc/init.d/httpd restart

再起動後、サイトを確認するとエラーの表示が消えて正常に表示されました。


APC(Alternative PHP Cache)

PHPの中間コードのキャッシュや最適化を行い、PHPを高速化する拡張モジュールです。


.htaccess:htmlファイルでphpを使用する

拡張子が「.html」のファイルでphpを使用したい場合があります。

htmlファイルで作成していたページで拡張子を「.php」に変更すればphpを使用することができますが、URLを変更したくないなどの場合があります。

.htaccessで下記の設定すれば、拡張子が「.html」のファイルでphpを使用することができます。


htmlファイルでphpを使用

下記のコードを「.htaccess」に記述すればhtmlファイルでもphpを動かせることができます。

AddType application/x-httpd-php .php .html

使用しているサーバによっては、記述の仕方が異なることがあるので
注意しなければいけません。