PHPの最近のブログ記事
Smarty.class.php に設定箇所があります。
var $left_delimiter = '{';
var $right_delimiter = '}';
を
var $left_delimiter = '<!--{';
var $right_delimiter = '}-->';
にすると、記述がコメントとして扱われるのでエディタ上で扱いやすいです。
繰り返し処理などで<tr>〜</tr>を挟むとき等、デフォルトだとエディタがエラーになるなどで面倒なんですよね。
ECCUBEもこうなってたと思います。
オススメです。
DBのデータをFPDF使って、PDFで表の形にする、という作業をしていてハマッたので。
MultiCellで自動改行されるけど、見だし部分はCellにするので、MultiCellの行数を数えて、行数設定をしてあげなければならなかった。
1)文字列の改行(PHP_EOL)でぶった切った配列を作り
2)配列要素を50字換算で何行あるか数え、たして行く。
って流れで考えて、mb_strlenで50字を計算してたけど、半角文字数がまざるとぐちゃぐちゃ。
調べたらmb_strwidthって関数があるのね。
これは全角2文字、半角1文字で、幅で計算してくれるっぽい。
なので、これで100字換算で何行か、というコードに変更。
これで問題なく計算できました。
■PECLをインストール
$pecl
でずらっといろいろ表示された。
ので、入ってるっぽい。
入って無かったら、
http://pecl.php.net/
の
http://svn.php.net/viewvc/pecl/
に色んなバージョン有り
■libssh2を入れる
$cd /usr/local/src
$wget http://www.libssh2.org/download/libssh2-1.4.0.tar.gz
$tar xvzf libssh2-1.4.0.tar.gz
$cd libssh2-1.4.0
$./configure
version: 1.4.0
Host type: i686-pc-linux-gnu
Install prefix: /usr/local
Compiler: gcc
Compiler flags: -g -O2
Library types: Shared=yes, Static=yes
Crypto library: openssl: yes (AES-CTR: no) libgcrypt: no
Debug build: no
Path to sshd: /usr/sbin/sshd (only for self-tests)
libz compression: yes
$make
$make install
■ssh2をインストール
$pecl install channel://pecl.php.net/ssh2-0.11.0
途中でlibssh2.soのありかを聞かれる
libssh2インストール時に表示されたので、それを入力
インストール完成
■php.iniに追加記述
$emacs /etc/php.ini
以下追加
extension=ssh2.so
php 側で
$m['fruits'] = array(
'00' => 'りんご',
'01' => 'みかん',
'02' => 'バナナ',
'03' => '梨'
);
といったマスタの配列があり
$favorite
という変数に'00'等の値が入り、マスタのデータを表示させたい時
{$m.fruits[$favorite]}
といった形で書けばOK
Smartyでプルダウンの設定をするとき2種類あります。
$m.category_hに連想配列でnameとvalueが設定されている場合
$category_h.typeで選択済み項目のvalueが入ってるとします。
1)全部Smarty任せ
{html_options name='category' options=$m.category_h selected=$category_h.type}
selectタグとoptionタグ全部書き出してくれます。
2)一行目にごにょごにょ入れたい時
{html_options options=$m.category_h selected=$category_h.type}
だとoptionタグだけ(selectedを選択済みに)
こんな風に利用します。
<select name="categpory" >
option value="">選択して下さい</option>
{html_options options=$m.category_h selected=$category_h.type}
</selected>
PHPでタグを除去する際の正規表現はこちら
preg_replace('/<[^>]*>/', '', $string);
PHPでのメール送信はとっても簡単。
**********************************************
//管理者メールアドレス
$tomail = "info@two-ways.com";
//fromに表示されるアドレス
$mailfrom="From:" .mb_encode_mimeheader("webmaster") ."<".$tomail.">";
//タイトル
$subject="【ご意見・ご感想】";
//内容
$com =<<<_MAIL_
webサイトより、ご意見、ご感想が投稿されました。
などなど。
_MAIL_;
mb_language("Ja") ;
mb_internal_encoding("EUC-JP") ;
mb_send_mail($tomail,$subject,$com,$mailfrom);
■一般的な出力
print $data;
echo $data;
■配列の出力
print_r($data);
■書式を設定しての出力
printf("%03d", $data);
※3桁表示(意味「0」を使って「3」桁にする。「d」は10進数での出力を表す)
値を変数に入れるときは
$newdata = sprintf("%03d", $data);
とする
■ヒアドキュメント
print <<< _HTML_
_HTML_;
ファイルの更新日は以下で取得できる。
date( 'Y.m.d.h.i', filemtime('xxxxxxx.txt') )