[k]id » php 

2009年12月16日

SimpleXMLでCDATAを扱う

前回の「PHP5 SimpleXMLでRSSフィードを取得する」で粗方のRSSの取得ができたのですが、
このBlogを含む[CDATA]がある場合、無視されて取得できていませんでした。

のでsimplexml_load_fileにLIBXML_NOCDATAをくっつけて実行することで
取得出来るようです。

$feed = simplexml_load_file("http://kidokorock.com/feed",'SimpleXMLElement',LIBXML_NOCDATA);
foreach ($feed->channel->item as $item) {
    //タイトルを表示
    echo $item->title;
    //リンクを表示
    echo $item->link;
    //時刻
    echo $item->pubDate;
    //本文
    echo $item->description;
}

カテゴリー: PHP
タグ: ,

PHP5 SimpleXMLでRSSフィードを取得する

さて、PHP5になってとっても便利になったSimpleXMLを使ってみようと思います。

XMLということでRSSを取得するスクリプトを覚え書き
ポイントはRSSで使用されているdc:dateをNamespaces(名前空間)で
取得しなければならない

↓のdc:dateの部分
<dc:date>2009-03-02T15:00:00 +0900</dc:date>
ので下記を参考にさせていただきました。
Stuart Herbert’s PHP Blog


限りなく簡単に書いたコードは以下
$feed = simplexml_load_file("RSSへのパス");

foreach ($feed->item as $item) {
    //タイトルを表示
    echo $item->title;
    //リンクを表示
    echo $item->link;
    //時刻
    $dc = $item->children('http://purl.org/dc/elements/1.1/');
    echo $dc->date;
    //本文
    echo $item->description;
}

これだと[CDATA]が扱えないので
改良版はのちほど。。

続き→SimpleXMLでCDATAを扱う

カテゴリー: PHP
タグ: ,

2009年11月25日

Shift-JISの機種依存文字をEUC-JPに変換で問題

今日は凄く細かい事で苦戦したので、覚え書きです。

windowsのExcelで書き出したCSVをWEB用に加工してたのですが、
どうも、機種依存文字#9312;(①)とか#x2160;(Ⅰ)とかがどうしても文字化ける。。

ということで
通常そういう場合には、

$hoge =  mb_convert_encoding($hoge , "EUC-JP", "SJIS");
$hoge =str_replace("Ⅰ","&#x2160;",$hoge);
とかになるとおもうのですが、これだと何故か機種依存文字が無視されています。

ので

//sjis-winからいったんUTF-8に
$hoge=mb_convert_encoding($hoge , "UTF-8", "sjis-win");
//機種依存文字を変換
$hoge =str_replace("Ⅰ","&#x2160;",$hoge);
//機種依存文字を変換
$hoge =  mb_convert_encoding($hoge , "EUC-JP", "UTF-8");

で無事完了しました!

カテゴリー: PHP
タグ:

2009年9月10日

PHPにて最小限のスクリプトでファイルをバックアップするTips

cronとかで気軽にファイルのファイルのバックアップがしたいとおもい、
最小限のスクリプトでバックアップをおこなうスクリプトです。

$targetに元のファイルを入れる
$newtargetにバックアップ後のファイル名を指定。
(例ではtargetがnewtarget20090909.txtみたいな感じでバックアップに日付を入れられます。)


あとはこれをcronなどで定期的に処理すればOK!

<?php
$target = 'target.txt';
$newtarget = 'new_target'.date("YmdHi").'.txt';
if (!copy($target, $newtarget)) {
    echo "コピーできませんでした。\n";
}
?>

カテゴリー: PHP
タグ:

2009年8月26日

PHPのdateで月末を取得する方法

さて、最近はPHPのdateに四苦八苦しているのですが、
今度は月末の日にちを取得する方法を覚え書きです。

とりあえず、来月の今月末の取得方法です

今月末
date('Ymd', mktime(0, 0, 0, date('m') + 1, 0, date('Y')));

続いて来月末

来月末
date('Ymd', mktime(0, 0, 0, date('m') + 2, 0, date('Y')));

ポイントは
mktime (時, 分, 秒, 月, 日, 年)
なので
今月末は 今の月に+1して日の0を求めるという事になり
来月末は 今の月に+2して日の0を求めるという事になります。

カテゴリー: PHP
タグ:

Page 2 of 512345
Get Adobe Flash playerPlugin by wpburn.com wordpress themes