タグ : PHP

【PHP】JSON形式での出力

PHP5.2以上なら簡単にJSON出力を行える。
作成した配列をjson_encode関数を使用して出力するだけ。

JSONは単純に配列のみ表示しているだけなので、
XMLに比べて容量が少ないため読み込みや構築も早くなる。
ヘッダーはtext/javascriptにしないと、javascriptやFlashで受け取れないので注意。
ブラウザ経由だとデフォルトでtext/htmlだったかな?

$arr = array('1'=>'test1','2'=>'aaaaaa');
header( 'Content-Type: text/javascript; charset=utf-8' );
echo json_encode( $arr );

【CakePHP】直前にsave()したレコードのidを取得する

CakePHPで直前にインサートしたレコードのIDを取得してくる。

$this->Table->save($this->data);
$last_id = $this->Table->getLastInsertID();

【参考URL】
http://xtw.me/XlrgHB

【PHP】AKB48の最新5件RSS取得ソースコード

RSSを取得するサンプルプログラムです。

アメブロのAKB48のブログから取得しました。
AKB48からRSSを取得したかというとただ単にタイトルの切り出しとかやりたかっただけです。
RSSの日付を日本時間に変換したり、UTF-8での文字列の切り出しを行っています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>AKB48のRSS取得してみる</title>
</head>
<body>
<?php
//アメブロ取得関数
function rss(){
    //AKB48 RSS
    $url = "http://feedblog.ameba.jp/rss/ameblo/akihabara48/rss20.xml";
    //表示件数
    $count = 5;
    //タイトル切り出し文字数
    $str = 27;
   
    //XMLパース
    $xml = simplexml_load_file($url) or die("XMLパースエラー");
   
    echo "<ul>";
    for( $i = 0; $i < $count; $i++ ){
        if( mb_strlen( $xml->channel->item[$i]->title, "UTF-8" ) >= $str ){
            $title = mb_substr(mb_strtoupper($xml->channel->item[$i]->title, "utf-8"),0,$str -2,'utf-8' );
            $title .= "…";
        }else{
            $title = $xml->channel->item[$i]->title;
        }
        echo "<li class=\"news_02\">".date( 'Y年m月d日', strtotime( $xml->channel->item[$i]->pubDate ) )." <a href =\"".$xml->channel->item[$i]->link."\">".$title."</a>";
    }
    echo "</ul>";
}
?>
<?php
    rss();
?>
</body>
</html>

サンプルを実行する

【PHP】SmartyでPHPの定数を呼び出す。

{$smarty.const}
PHP 定数の値に直接アクセスできます。

// php で定義されている定数
define(’CONST’,'定数’);
?>

定数を出力するテンプレート
{$smarty.const.CONST}

【PHP】前ゼロを付けて桁数を統一したい

指定した桁数で前ゼロを付けるにはこんな感じの関数を使います!

sprintf(‘%05d’, $num);

上のソースでは5桁に満たなかったら頭に0を付けます。

たとえば、
1のときは00001
100のときは 00100
10000のときは10000
みたいな感じです。

ユーザーIDなど桁数を合わせるときは便利ですね!

Smartyのテンプレートの場合は

{$num|string_format:’%05d’}

とやると前ゼロが付きます。