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を高速化する拡張モジュールです。


php:配列の中身を逆順にする方法

phpで配列を使用する時は頻繁にあると思いますが、配列の中身を逆順で使用したい場合があります。
array_reverse()関数を使用すれば、簡単に配列の要素を逆順にソートすることができます。

今回はphparray_reverse()関数を使用して、配列中身逆順にする方法をメモします。


array_reverse()関数

引数で指定した配列の要素を逆順にして、配列を返します。

$array = array_reverse($array);

使用方法(array_reverse)

下記の配列を逆順にしたい場合

Array
(
    [0] => aaa
    [1] => bbb
    [2] => ccc
    [3] => ddd
    [4] => eee
)

array_reverse()で配列の中身を逆順にします。

$arr = array('aaa', 'bbb', 'ccc', 'ddd', 'eee');
$arr = array_reverse($arr);

結果は以下のような配列が返ります。

Array
(
    [0] => eee
    [1] => ddd
    [2] => ccc
    [3] => bbb
    [4] => aaa
)

・多次元配列の場合

Array
(
    [0] => aaa
    [1] => Array
        (
            [0] => 111
            [1] => 222
        )

)

上記の配列をarray_reverse()で逆順にした場合は配列の中の配列は逆順になりません。

Array
(
    [0] => Array
        (
            [0] => 111
            [1] => 222
        )

    [1] => aaa
)

配列の値を逆順にソートして出力するときなどに使えますね。

php:phpでGDライブラリを使用した際のエラー

phpGDライブラリを使用した時に下記のエラーが表示されました。

Call to undefined function imagecreatefromgif()

phpGDライブラリを使用した際のエラーの対処方法をメモします。

調べてみたところ、GDライブラリがインストールされておらず、エラーが表示されていました。

インストール後、phpinfo()で確認し、下記のように表示されていればOKです。
※インストール後、サーバの再起動をします。

php_gd

サイトを確認したところ正常に動作しました。
エラーが起きた際は、環境を確認して有効になっているかなどを確認することが大切ですね。