[k]id » php 

2010年1月21日

PHPでファイル等が内包されたディレクトリ(フォルダ)を削除

PHPの初歩です。

PHPでディレクトリの操作をする場合、ディレクトリごと、
ごっそり削除したいという場合があると思います。

PHP Manualから引用します。

functionを下記のように設定し

<?php
function remove_directory($dir) {
  if ($handle = opendir("$dir")) {
   while (false !== ($item = readdir($handle))) {
     if ($item != "." && $item != "..") {
       if (is_dir("$dir/$item")) {
         remove_directory("$dir/$item");
       } else {
         unlink("$dir/$item");
         echo " removing $dir/$item<br>\n";
       }
     }
   }
   closedir($handle);
   rmdir($dir);
   echo "removing $dir<br>\n";
  }
}
?>

任意の場所から
呼び出せばOK
remove_directory("ディレクトリへのパス");


カテゴリー: 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
タグ:

Page 1 of 512345