WordPressで同日記事の日付が省略される

PHP | 2013-06-05  08:01:10 0

同日に投稿した記事が複数ある場合、

2件目以降日付が省略されてしまって、
表示がされないんですよね。

 

例えば、6月2日に記事を2つ投稿したとすると・・・

・2013/06/02 記事A

・  記事B ←(日付が省略されてます)

・2013/06/01 記事C

・2013/05/29 記事D

 

何だかレイアウトも統一感がなくなっちゃいます。

 

これ、the_dateタグをthe_timeタグに変更してあげればOKです。

 

こちらも参考にどうぞ。

WordPress Codex – 日付と時刻の書式

Smartyにオブジェクト配列を表示

PHP | 2008-05-21  19:50:47 0

Smartyにオブジェクトを渡すときは、

$smarty->register_object(“hoge”, $hogehoge);

で、オブジェクトの登録なんかをしますが、
オブジェクト配列を渡してプロパティ表示したい場合には、
register_objectではうまくいきません。。

どうやら、register_objectについては、
クラスなんかのオブジェクトのメソッドを呼び出すのがメインのようで、
オブジェクトのプロバティをただ参照したいっていうのには効かないようです。

で、その場合、一階層下げて、
オブジェクトのプロパティにさらに配列を作ってあげて
その配列をassignでSmartyに渡すと、できなくはない。。

例:
■Smarty側(例えばインデックスの配列にオブジェクトを入れてる場合)
{$hoge[0]->メソッド名()}

または、PHPでオブジェクトのプロパティを連想配列に変換してくれる関数
get_object_varsを使えるのかなぁ。。

例:
■PHP側
$Smarty->assign(‘arrayData’,get_object_vars($objData));

でも、これってやっぱりクラスとかのオブジェクトの場合なんかで、
既に配列になったオブジェクトでは使えない??
自分まだまだだの。。

ほげー

XamppにMojavi3インストール

PHP | 2008-05-13  17:26:35 0

Mojavi(モハヴィ)はPHPのフレームワークのひとつで、
MVCモデルに基づいて構成されています。

ちなみに、PHP5用の安定版がまだないようなので、
安定したMojavi3をインストール。

1.本家は落ちてるので、ここでゲト。
http://mojavi.net/

2.上記解凍した中からmojaviとwebappフォルダを、以下に置く。
C:\xampp\任意のフォルダ名\mojavi
C:\xampp\任意のフォルダ名\webapp

3./source/wwwのindex.phpを以下のように配置。
C:\xampp\htdocs\任意のフォルダ名\index.php

4.C:\xampp\mvc\webapp\config.phpのディレクトリ指定を絶対パスで。
define(‘MO_APP_DIR’, ‘c:/xampp/任意のフォルダ名/mojavi’);
define(‘MO_WEBAPP_DIR’, ‘c:/xampp/任意のフォルダ名/webapp’);

5.C:\xampp\htdocs\任意のフォルダ名\index.phpのディレクトリ指定を絶対パスで。
require_once(‘c:/xampp/任意のフォルダ名/webapp/config.php’);
require_once(‘c:/xampp/任意のフォルダ名/mojavi/mojavi.php’);

6.現状でlocalhostにアクセスするとtimezoneエラーになるので、
C:\xampp\apache\bin\php.iniのtimezoneをAsia/Tokyoに。

[Date]
; Defines the default timezone used by the date functions
date.timezone = Asia/Tokyo

Apache再起動で、「Default Mojavi Module」って画面が普通に出れば、インストールおk

※各アクションがURLにパラメータで渡されるので、
それが嫌な場合は、PATH_INFOの表現に変更が出来ます。

C:\xampp\任意のフォルダ名\webapp\config\settings.ini内で、以下に修正。
URL_FORMAT = “PATH”

動的なファイルインクルードを行う時のセキュリティ対策

PHP | 2008-05-08  19:42:07 0

動的なファイルインクルードを行う時のセキュリティ対策

例:
$file = $GET[‘file’];
include($file);
?>

この場合、外部にあるファイルや、Webに公開されていないローカルのファイルを読み込む脆弱性があります。


$file = basename($GET[‘file’]);
include($file);
?>

basename()関数を使うことで、ファイル名の部分のみを取得するので、
上記の脆弱性はなくなります。

allow_url_fopenの設定をoffにすることでも対策にはなりますが、
設定に依存するコードは環境が変わった場合に、脆弱性となってしまうため、
basename()関数を利用したほうがよい。

※PHP5プログラミング エキスパート編から参照

SJIS文字コードハマリ(UTF8+smartyでSJIS表示)

PHP | 2008-03-26  01:32:54 0

動的なページを作る時、大体システムとデザイン表示で文字コード揃えますよね。
ただ、仕様とかでどうしても統一できない時あります。

この時くせものなのがSJIS。

携帯サイトとかでSJIS対応しているシステムやさんは大変ですね;

えー、携帯サイトではないですが、
PHP(UTF8)+smarty(UTF8)でSJIS表示のサイト作成ではまりました…

まぁ、表示の際にsmartyに渡す値に対して、
mb_convert_encodingで、SJIS変換掛けてあげればいいじゃまいかと思うよね。

ところがどっこぃ。

~(波線)とチルダ(波線っぽいやつ)って違うのに
同一の~(波線)になっちゃった。。ボソ
㎡が表示できません。。ボソ

勝手に変換させられちゃうぽいぉ…

そんなこんなでえらい時間食いましたが、
結局…

SJISじゃなくて、「SJIS-WIN」ってやつにmb_convert_encodingして解決。
これでも完全にはカバー出来ないくさいけどね。
上記の症状は解決したってことれす。

解決するのにめっちゃ時間かかった…。

プログラマのみなさんは文字コードにははまった経験あるもんさね。

ちなみに、PHP(EUC)で表示SJISの時は、
カタカナの「ソ」や、漢字の「予」や「十」の後にが勝手に付くエラーに陥る。
(2バイトめが5cのやつ)

↑これ、個々にstripslashesして対策。

SJIS嫌いになるぜよ。

Theme by othico