60)) {
$lock = 0;
}
}
if ($lock != 1) {
set_error_handler("errorHandler");
file_put_contents("lock.dat", "1", LOCK_EX);
} else {
$upd_kbn = 2;
}
}
// 1日のうちは使いまわすので、既存ファイルを読み込んで抜ける
if ($upd_kbn == 2) {
// print_r("File OK!
");
$out_data = file_get_contents($path_me);
print_r($out_data);
exit();
}
//////////////////////////////////////////////////////////
// ここから先、データベースからの取得処理
//////////////////////////////////////////////////////////
// アイライン処理の為に検索キーワードを取得
$referrer = $_SERVER["HTTP_REFERER"];
if (strpos($referrer, "www.google.")!==false) {
$search_engine = "google";
preg_match ("/(&|\?)ie=([^&]*?)(&|$)/i", $referrer, $enc);
preg_match ("/(&|\?)q=([^&]*?)(&|$)/i", $referrer, $key);
$char_enc = $enc[2];
if (!$char_enc) {$char_enc = "UTF-8";}
$keywords = $key[2];
} elseif (strpos($referrer, "search.yahoo.co.")!==false) {
$search_engine = "yahoo";
preg_match ("/(&|\?)ei=([^&]*?)(&|$)/i", $referrer, $enc);
preg_match ("/(&|\?)p=([^&]*?)(&|$)/i", $referrer, $key);
$char_enc = $enc[2];
if (!$char_enc) {$char_enc = "UTF-8";}
$keywords = $key[2];
} elseif (strpos($referrer, 'search.msn.co.jp')!==false) {
$search_engine = "msn";
preg_match ("/(&|\?)ei=([^&]*?)(&|$)/i", $referrer, $enc);
preg_match ("/(&|\?)q=([^&]*?)(&|$)/i", $referrer, $key);
$char_enc = "UTF-8";
$keywords = $key[2];
} elseif (strpos($referrer, 'www.excite.co.jp')!==false) {
$search_engine = "excite";
preg_match ("/(&|\?)charset=([^&]*?)(&|$)/i", $referrer, $enc);
preg_match ("/(&|\?)search=([^&]*?)(&|$)/i", $referrer, $key);
$char_enc = $enc[2];
if (!$char_enc) {$char_enc = "SJIS";}
$keywords = $key[2];
} elseif (strpos($referrer, 'search.goo.ne.jp')!==false) {
$search_engine = "goo";
preg_match ("/(&|\?)IE=([^&]*?)(&|$)/i", $referrer, $enc);
preg_match ("/(&|\?)MT=([^&]*?)(&|$)/i", $referrer, $key);
$char_enc = $enc[2];
if (!$char_enc) {$char_enc = "EUC-JP";}
$keywords = $key[2];
}
if ($keywords) {
$keywords = urldecode($keywords);
if (strtoupper($char_enc) != "EUC-JP") {
$keywords = mb_convert_encoding($keywords, "EUC-JP", $char_enc);
}
// $keywords = mysql_real_escape_string($keywords);
}
// サイト郡全体の管理を行うURLを取得
// $php_url = file_get_contents("http://www.f-trend.net/site_mgmt/config/public_config.dat");
$php_url = file_get_contents("http://www.highspeed7.com/site_mgmt/config/public_config.dat");
// センターサーバのメインURLを取得
$template_url = str_replace("get_contents.php", "", $php_url);
// トップページコンテンツ取得
$html = file_get_contents($php_url."?do=".urlencode($domain)."&rn=".$req_no."&uk=".$url_kbn."&rf=".urlencode($keywords));
// サイトマップコンテンツ取得
$html_sitemap = file_get_contents($php_url."?do=".urlencode($domain)."&rn=".$req_no."&sf=1&uk=".$url_kbn);
// サイトマップXML取得
$html_sitemap_xml = file_get_contents($php_url."?do=".urlencode($domain)."&rn=".$req_no."&sf=1&sx=1&uk=".$url_kbn);
////////////////////////////////////////////////////
// イメージファイル取得
////////////////////////////////////////////////////
// 一度削除してディレクトリ作成
remove_directory("img");
remove_directory("css");
mkdir("./img", 0777);
mkdir("./css", 0777);
// ファイルリストを読み込んでダウンロード(アップロード?)
for ($ii = 0; $ii < 3; $ii++) {
switch ($ii) {
case 0:
// ルート
$dn = "";
break;
case 1:
// イメージ
$dn = "/img";
break;
case 2:
// CSS
$dn = "/css";
break;
default:
break;
}
$file_list = file_get_contents($template_url."format/work/".$req_no.$dn."/file_list.dat");
$fl = split(",", $file_list);
for ($i = 0; $i < count($fl); $i++) {
// ダウンロード(アップロード?)
if ($fl[$i] != "Array") {
$fn = split("/", $fl[$i]);
$f_name = $fn[count($fn) - 1];
if ($f_name != "index.html" && $f_name != "file_list.dat") {
$cnt = file_get_contents($template_url."format/work/".$req_no.$dn."/".$f_name);
file_put_contents(".".$dn."/".$f_name, $cnt, LOCK_EX);
}
}
}
}
$domain_esc = str_replace(".", "\.", $domain);
$domain_esc = str_replace("/", "\/", $domain_esc);
preg_match_all("/(http:\/\/www\.".$domain_esc."\/([^<>]*?)\/([^<>]*?\.html)?)/i", $html, $out);
$url = $out[0];
$dir = $out[2];
$file = $out[3];
$dir_c = array_unique($dir);
for ($i = 0; $i < count($dir_c); $i++) {
// 一度フォルダを削除
remove_directory($dir_c[$i]);
}
for ($i = 0; $i < count($url); $i++) {
if ($url[$i] != "") {
// フォルダを作成
if (!file_exists($dir[$i])) {
mkdir($dir[$i], 0777);
}
// ファイルを作成
if ($dir[$i] != "" && $file[$i] == "") {
$file[$i] = "index.html";
}
$path = "./".$dir[$i]."/".$file[$i];
$count = substr_count($file[$i], "_");
if ($count == 1 or $file[$i] == "index.html") {
// カテゴリ
preg_match("/_([0-9]*)$/i", $dir[$i], $ou);
$cat_no = $ou[1];
$out_url = $php_url."?do=".urlencode($domain)."&rn=".$req_no."&cn=".$cat_no."&uk=".$url_kbn;
} elseif ($count == 2) {
// コンテンツ
preg_match("/_([0-9]*)$/i", $dir[$i], $ou);
$cat_no = $ou[1];
preg_match("/_([0-9]*)\./i", $file[$i], $ou);
$kiji_no = $ou[1];
$out_url = $php_url."?do=".urlencode($domain)."&rn=".$req_no."&cn=".$cat_no."&kn=".$kiji_no."&uk=".$url_kbn;
}
$file2 = str_replace(".html", ".dat", $file[$i]);
$out_html = file_get_contents("distribute.html");
$out_html = str_replace("#path_me#", "./".$file2, $out_html);
$out_html = str_replace("#out_url#", $out_url, $out_html);
file_put_contents($path, $out_html, LOCK_EX);
// print_r($url[$i]."
");
}
}
// 自身をファイルに書き出し
file_put_contents($path_me, $html, LOCK_EX);
// サイトマップをファイルに書き出し
file_put_contents($path_sitemap, $html_sitemap, LOCK_EX);
// サイトマップXMLをファイルに書き出し
file_put_contents($path_sitemap_xml, $html_sitemap_xml, LOCK_EX);
// 出力
print_r($html);
// ロックを解除して終了
file_put_contents("lock.dat", "0", LOCK_EX);
// エラー処理
function errorHandler($errno, $errstr, $errfile, $errline) {
// $errno は error_reporting の値を参照。
if ($errno == 1 || $errno == 2 | $errno == 4) {
// エラー通知処理
// ロック解除
file_put_contents("lock.dat", "0", LOCK_EX);
}
}
// ディレクトリ削除
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");
// }
// }
// }
// closedir($handle);
// rmdir($dir);
// }
system("rm -rf ".$dir);
}
?>