本日AM8時頃~PM8時頃までサーバにアクセスできない障害が続いていました。
現在は復旧していますが、原因の特定のために作業中ですのでたまに落ちることがあるかもしれません。
ご迷惑をおかけし、申し訳ございませんでした。
本日AM8時頃~PM8時頃までサーバにアクセスできない障害が続いていました。
現在は復旧していますが、原因の特定のために作業中ですのでたまに落ちることがあるかもしれません。
ご迷惑をおかけし、申し訳ございませんでした。
[Fri Oct 15 05:47:06 2010] [error] [client 192.168.0.2] PHP Warning: Smarty error: unable to read resource: "tmpl/download.tpl" in /usr/lib64/php/Smarty/libs/Smarty.class.php on line 1093, referer: http://ほげ/show.php?datno=1286294784
とりあえずSilverlightを覚えるよりも知ってるやつでつくろうってことでSmarty使って2chブラウザ作ってるんですが、
なぜかこのdownload.tplだけ読み込めない。
ちなみにソースは
download.php
<?php require_once("config.php"); require_once"Archive/Zip.php"; require_once"Smarty.class.php"; require_once($path['lib'].$escstr."2ch_function.php"); require_once($path['lib'].$escstr."zip.lib.php"); $zipFile = new zipfile(); $datno = $_GET['datno']; $path['cmp'] = $path['work']."/src/".$datno."/img/"; $path['zip'] = $path['work']."/src/".$datno."/".$datno.".zip"; $path['zipurl'] = "./src/".$datno."/".$datno.".zip"; $path['str'] = $datno; chdir($path['cmp']); $filelist = fFileListLoad($path['cmp']); $filelist = str_replace($path['cmp'], '', $filelist); $p_params = array('add_path' => $path['str']); $objZip = new Archive_Zip($path['zip']); $fileName = $filelist; $text = $objZip->create($fileName,$p_params); $smarty = new Smarty(); $smarty -> assign('zippath', $path['zipurl']); $smarty -> assign('datno', $datno); $smarty -> display($dirpath['templ'].'/download.tpl'); ?>download.tpl
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>2ch画像</title> <meta name="keywords" content="2ch画像" /> <meta name="description" content="2ch画像収集してZIPで" /> <link rel="stylesheet" href="./lib/main.css" type="text/css" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <script src="./lib/jquery.js" type="text/javascript"></script> <script src="./lib/main.js" type="text/javascript"></script> </head> <body> <div id="header_all"> <div id="header"> <p><a href="index.html"><img src="img/logo.png" alt="画像収集" /></a></p> <h1>画像収集</h1> </div> <div id="contents"> <div id="menu"> <ul> <li><a href="./">TOP</a></li> <li><a href="index.html">DAT落一覧</a></li> <li><a href="index.html">TEST</a></li> <li><a href="index.html">TEST</a></li> <li><a href="index.html">TEST</a></li> </ul> </div> <div id="main_img"> <div id="main"> <div id="right"> <p>操作メニュー</p> <div id="sidemenu"> <ul> <li><a href="./subject.php">VIPスレ一覧へ</a></li> <li><a href="./download.php?datno={$datno}">このスレの画像をZIPでDL</a></li> </ul> </div> <p><img src="img/banner.png" alt="此処には代替テキストを挿入してください。" /></p> <p><img src="img/banner.png" alt="此処には代替テキストを挿入してください。" /></p> </div> <div id="left"> <h2>取得済み一覧</h2> <dl> <dt>レス数:{$datan.resno}</dt> <dd></dd> </dl> <div id="product"> <h3>ZIPファイルダウンロード:{$datno}.zip</h3> <p><a herf="{$zippath}"><img src="./img/zip.php" border="0" /></a></p> </div> </div> </div> </div> <div id="footer"> <p>Copyright© <a href="http://template-compassion.info/">COMPASSION</a> 2010 All Rights Reserved.</p> </div> </div> </body> </html>
こんな感じ。
圧縮部分のfFileListLoadにはそのまま「がじゃぱ!ブログ」さんの「Archive_Zipを使って、ディレクトリごと圧縮するPHP」を使ってます。
こういう細かくはわからないエラーってすごい手がつけにくい・・・。
しかもindexや他でSmartyを使ったら普通に使えてるので定義した関数が原因なのかなーとは思うんですが、ワケが分からない・・・
*画像:http://www.microsoft.com/taiwan/silverlight/
まだまだサーバ側で各スレッドの画像URLを抜き出すところまでしかつくっていませんが、Silverlightが始まりすぎてる(台湾のだけど)ので、Silverlightで2chブラウザを作ってみようということで製作中。
Windows Live Essentials 2011のLive WriterがWordPressに対応との事なので、実際にLive Writerで書いてみる。
ちなみにこのLive Essentials 2011はVista SP2以降とのこと。
2chのdatファイルをPHPでいじってるんですが、SJIS→UTF-8の変換が上手くいかない・・・。
やりたいこととしては、UTF-8でMySQLに取り込みたい(MySQLのDefaultがUTF-8だし、使い慣れてるから)んですが、文字化けする。
ちなみにソースコードはこんな感じ。
<?php function cnvString($cnvstr){ foreach($cnvstr as $key => $num){ $cnvdstr["$key"] = mb_convert_encoding($cnvstr["$key"], "UTF-8", "SJIS"); } return($cnvdstr); } function splitString($cnvstr){ foreach($cnvstr as $key => $res){ $cnvdstr["$key"] = mb_split("<>",$res); } return($cnvdstr); } $cnvstr = file("test.dat"); $thread = cnvString($cnvstr); $thread = splitString($thread); print_r($thread); ?>
SJISのまま取り扱うのが得策なのかなぁ・・・。
*書いた後PHPファイルのエンコーディング変えたらできたヽ(^o^ )ノ