タグで改行する(1)、
(0) define(FLG_NR, '0'); // 西暦4桁で処理する(1)、2桁(0) define(FLG_YR, '1'); // define(EDIT_NEWFILE, '(新規入力)'); // 保存フォルダ&対応するカテゴリ名。冒頭に./は付けない $category_index = array('diary','info','software');//これを rnote_config.php から得る方法がなさげ…。 $logfolder = array('entries/diary/','entries/info/','entries/software/'); $logf_name = array('日記','情報','ソフトウェア');//これを rnote_config.php から得るとカレンダー(月)まで得てしまうかも。 // 内部コードを UTF-8 に指定。 mb_internal_encoding('UTF-8'); // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- function get_from_tag($tagname, $src) { // $ret = array(); mb_eregi("<".$tagname.">.*", $src, $ret); $ret2 = $ret[0]; $ret2 = mb_substr($ret2, mb_strlen("<".$tagname.">")); $ret2 = mb_substr($ret2, 0, mb_strlen($ret2) - mb_strlen("")); return $ret2; } function get_from_tag2($tagname, $src) { // $ret = array(); mb_eregi("<".$tagname.".*>.*", $src, $ret); $ret2 = $ret[0]; $ret2 = eregi_replace("", "<<>>", $ret2); $ret2 = mb_substr($ret2, mb_strpos($ret2, ">")+1); $ret2 = mb_substr($ret2, 0, mb_strpos($ret2, "<<>>")); return $ret2; } //=============================================== // 文字セット変換関数 //$stringの文字セットが変換後の文字セットでない場合にだけ変換する。 //=============================================== function cnv_enc($string, $dst) { mb_detect_order("SJIS,JIS,EUC-JP,eucjp-win,sjis-win,UTF-8"); if (mb_detect_encoding($string) != $dst) { //異なった文字セットからと勘違いして変換指定するとおかしな文字列になることがある。 $ret = mb_convert_encoding($string, $dst, "auto"); } else { $ret = $string; } return $ret; } //=============================================== // パラメータ整形関数 //=============================================== function cnv_format($array) { foreach ($array as $key => $val) { $array[$key] = stripslashes($val); } return $array; } //=============================================== // 更新処理 //=============================================== function upd_article($form) { if ($form['pass'] != PASSWD) { return FALSE; } if ($title == "") $title = '(無題)'; $form[contents] = trim($form[contents]); // 前後の余白を除去 if (FLG_NR) { // 改行タグ挿入 $form[contents] = str_replace("\r\n", "\r", $form[contents]); //Win("\r\n")→"\r"へ。 $form[contents] = str_replace("\r", "\n", $form[contents]); //Mac("\r")→"\n"へ。 $form[contents] = str_replace("\n", "

\n", $form[contents]); //"\n"→"

"へ。 } else { $form[contents] = nl2br($form[contents]); } $form[contents] = ereg_replace("(^|[^=\"'])(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","\\1\\2\\3",$form[contents]); $newdata = "\n"; $newdata .= "\n"; $newdata .= "\t" . $form[title] . "\n"; $newdata .= "\t" . $form[tkbk_day] . "\n"; $newdata .= "\t"; if (isset($form[is_now])) { $newdata .= date("Y-m-d H:i:s", time()); } else { $newdata .= $form[year]."-".$form[month]."-".$form[day]; if ($form[hour]!="") $newdata .= " ".$form[hour]; if ($form[min]!="") $newdata .= ":".$form[min]; if ($form[sec]!="") $newdata .= ":".$form[sec]; } $newdata .= "\n"; $newdata .= "\n"; $newdata .= "

"; //3段に分けたのは、フォーム入力文字列とこのファイルの文字セットが異なる恐れがあるため。 $newdata = cnv_enc($newdata, SITE_CHARSET); $newdata .= cnv_enc($form[contents], SITE_CHARSET); $newdata .= cnv_enc("

\n\n\n", SITE_CHARSET); $url = $form[category] . $form[filename] . '.xml'; if (is_file($url)) { unlink($url);// とりあえず削除 } $fp = fopen($url,"w") or die("FILE OPEN ERROR: ${url}\n"); flock($fp, LOCK_EX);//LOCK_EX(4.0.1以前は2) fwrite($fp, $newdata); fclose($fp); //chmod($url, 0606);//後で修正できるように。 return TRUE; } ?> \n"; ?> \n"; ?> rNote 記事作成

rNotePad

" . $form[title] . "

"; print $form[contents] . "

[キャッシュ再構築\n"; print " | rNote"; print "表示確認\n"; print " | さらに書く"; print " | 戻る]

\n"; } else { //認証エラー処理 echo ("パスワードが違います!"); } } else { //=============================================== // 入力処理 //=============================================== if (isset($_GET['flist_index'])) $flist_index = $_GET['flist_index']; print "
\n"; //カテゴリーを設定。 print "Categoly: \n"; if (FLG_YR) { $yr_fmt = "Y"; } else { $yr_fmt = "y"; } $filename = date($yr_fmt."md_Hi"); // 日付から名前生成 $date = array(date($yr_fmt),date("m"),date("d"),date("H"),date("i"),date("s")); //投稿読込のときのための処理。 if (isset($_GET['flist_load'])) { if (isset($_GET['flist_path'])) $srch_path = $_GET['flist_path']; if ($srch_path != "") { $tg_cts = file_get_contents($srch_path); $tg_cts = str_replace("

", "", cnv_enc($tg_cts, SITE_CHARSET)); $tg_cts = str_replace("

", "", cnv_enc($tg_cts, SITE_CHARSET)); $tg_cts = str_replace("\r", "", cnv_enc($tg_cts, SITE_CHARSET)); $tg_cts = str_replace("\n", "", cnv_enc($tg_cts, SITE_CHARSET)); $tg_cts = str_replace("
", "\n", cnv_enc($tg_cts, SITE_CHARSET)); $tg_title = get_from_tag("title", $tg_cts); $tg_date = get_from_tag("date", $tg_cts); $tg_wb = get_from_tag("wb_accept", $tg_cts); $tg_cts = get_from_tag2("text", $tg_cts); //TODO:WB_Acceptタグの内容を反映する。 //特定タグの文字列を渡すと、それに挟まれた文字列を返す関数を作ると簡単。 //$filename = strftime("%".$yr_fmt."%m%d", strtotime($tg_date)); $filename = eregi_replace("\.xml", "", basename($srch_path)); $date = array(strftime("%".$yr_fmt, strtotime($tg_date)), strftime("%m", strtotime($tg_date)), strftime("%d", strtotime($tg_date)), strftime("%H", strtotime($tg_date)), strftime("%M", strtotime($tg_date)), strftime("%S", strtotime($tg_date))); //echo "[".$date[0]."][".$date[1]."][".$date[2]."][".$date[3]."]\n"; } } ?>  Date: value=''> / value=''> / value=''> onchange="set_now();">投稿時刻  File: .xml  trackback日数:

"; echo "\n"; if (isset($flist_index)) { echo "\n"; } } echo "
\n"; if (isset($tg_title)) { echo "Title: \n"; } else { echo "Title: \n"; } ?>

置換:


P.W.:

※(注意)既存xmlは確認せず上書きします。上書きされたくない場合は適宜名前を変更して下さい。

rNotePad Ver.  ©2004 Tommyrot. / 改変 by 冬星.