e-jiのBlog

TRPGとエロをこよなく愛する作者が趣味に走った作品ばかりを公開しています。
蒼空のフロンティアプラストでイラストレーターをやっています。
pixivページ TINAMIページ

php

sectionのindexとiterationの違い

smartyのsectionでindexとiterationの違いについて違いを0から始まるか1から始まるかが違いだと書いてあることがあるんだが、それもとは別違いもあるので忘れないように書いておく。

それはiterationは純粋にsectionの回った回数が取れるということ

{section name=pager loop=100 step=10 }
で10づづ100までループさせようとした場合
{$smarty.section.pager.inde+1}
は1,11,21…
になるのに対して
{$smarty.section.pager.iteration}
は1,2,3…
になるということ

PHP:必要桁数まで0埋めする

$val = "123";
$val = str_pad($val, 5, "0", STR_PAD_LEFT);
print $val // "00123"

str_pad([対象文字列],[埋める桁数],[埋めるのに使う文字列],[左右のどっちを埋めるか])
STR_PAD_BOTH, STR_PAD_LEFT, STR_PAD_RIGHTが指定可能
(デフォはSTR_PAD_RIGHT、の設定)

埋める方向が寒けなければ下記でもいける

$val = "123";
$val = sprintf("%05d", $val);
print $val // "00123"

openPNE3.6.3をhetemlにインストール

opnePNEをheteml環境でインストールする機会があったのでメモ

インストールしたのは最新安定板の3.6.3
hetemlのsshは以前に用意してあったのでその設定を使用

ダウンロードの方法でまずつまずいた。
以前は
wget http://github.com/openpne/OpenPNE3/zipball/OpenPNE-X.X.X
でダウンロードできるようだったのだが、今はダメなようで普通に公式ページからzipをローカルに落とす

落としてきたファイルから
webフォルダ内の.htaccessファイルにphp5で動作するよう以下のコードを.htaccessファイルの最初の行に書き込み
AddHandler php5-script .php

config/ProjectConfiguration.class.php.sampleをconfig/ProjectConfiguration.class.phpに変更
config/OpenPNE.yml.sampleをconfig/OpenPNE.ymlに変更

フォルダ名を分かりやすい名前に変更してフォルダごとFTPでアップロード
(パーミッションとかと特に設定しなくても大丈夫だった)

hetemlのコントロールパネルからデータベースを新規に作成してからsshでログインして
php5 symfony openpne:install
コマンドを実行。データベース情報の入力を求められるので作成したデータベースの情報を入力
(Port NumberはからでOK)
で、ここで問題が発生。
hetemlの基本設定だとmemory_limitに引っ掛かるので
config/ProjectConfiguration.class.phpの最初の方に
ini_set('memory_limit','128M');
を追加する。

これで無事インストールが完了。
php5 symfony plugin:publish-assets
のコマンドを実行してプラグインを読み込ませれば設定は完了。

[ユーザーログイン]
http://***.heteml.jp/(OpenPNE格納フォルダ)/web
ID:sns@example.com
PS:password
[管理画面ログイン]
http://***.heteml.jp/(OpenPNE格納フォルダ)/web/pc_backend.php
ID:admin
PS:password

でログインして動作を確認

xamppではまった件

xamppでローカルサーバを立ててテストを行っていた時のこと
$_SESSIONにsimplexml_load_stringでxmlを読み込んだ結果を突っ込もうとしたら

Fatal error: Exception thrown without a stack frame in Unknown on line 0

という謎のエラーが発生
しかもこれが最初にコードを組んだ時には発生しなくて翌日になって再度立ち上げた際に発生した。

だがサーバにアップすると発生しない。
結局原因不明でsimplexml_load_stringの内容を改めて配列に直して$_SESSIONに突っ込むようにした。
作品一覧