#contents *[[ショウジョウバエ研究会オンライン登録プログラム:http://www.kit.ac.jp/~tomaru/jdrc7registration.html]] [#i3450bfa] ショウジョウバエ研究会第7回研究集会で使ったオンライン登録のための PHPスクリプト 松尾隆嗣さん(東京都立大学)の力を借り、都丸雅敏(京都工芸繊維大学)とふたりで作成した2005年のショウジョウバエ研究会のオンライン登録のための PHP スクリプトです。~ 著作権は松尾と都丸にあります。GNU General Public License version 2 (gpl.txt)または、その上位バージョンの下で配布は自由です。 *PukiWiki [#a359a032] **WikiNameに自動的なリンクを生成させないようにする 22 September 2007 [#s2b9a8a9] WikiNameのように大文字が2つ入った単語を、pukiwikiのデフォルトでは、 WikiNameと認識して、リンクを作るようになっています。 そういう名前のページがないと、?がついて、クリックするとページを作るように なります。~ ふだん、本文中で新しいWikiNameのページを作るような書き方はしないので、 この機能を停止させることにしました。 その結果、「McAfee」、「VirusScan」、「WinEyes」、「OneLook」などに?が付かなくなり、見やすくなりました pukiwiki.ini.php ///////////////////////////////////////////////// // _Disable_ WikiName auto-linking $nowikiname = 1; // 22 September 2007 // 0; -> 1; **pukiwikiで、静的ページhtmlに偽装する 22 September 2007 [#h70e20bc] pukiwikiの各ページは「index.php?ほにゃほにゃほにゃ」のようになるので、 いまひとつ。そこで、「ほにゃほにゃほにゃ.html」となるように設定~ http://terai.xrea.jp/PukiWiki/RewriteEngine.html のとおりに .htaccessに加えた。 もっとワザを使う場合にはいろいろあるようですが、これが一番単純なので これだけにしている。~ 実際の設定は、01 July 2006 .htaccess(pukiwiki.ini.php のあるディレクトリのもの)に追加 DirectoryIndex index.php RewriteEngine on RewriteBase /~tomaru/pukiwiki RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)\.html(#.*)?$ index.php?cmd=read&page=$1$2 [L] **PukiWikiで閲覧は誰でも可、編集・新規ページ作成は登録ユーザのみとするための設定 [#a4438299] pukiwiki.ini.phpの設定(抜粋) 1.$auth_usersを設定する $auth_users = array( 'foo' => 'foo_passwd', // Cleartext ); 1−2. Authentication methodを変える(これをしないと不具合があるようだ 01 July 2006) //$auth_method_type = 'contents'; // By Page contents $auth_method_type = 'pagename'; // By Page name 02 April 2006 2.$edit_auth を有効にする $edit_auth = 1; 3.Edit auth regex を設定する(正規表現!) $edit_auth_pages = array( '/^.*$/' => 'foo', ); これで、編集・新規ページ作成のときにBasic認証(のようなもの?)が行われる。 *php: hypertext processor [#k459b1db] ちょっとだけ、phpのコードがあります。ショウジョウバエ遺伝資源センターでは、ユーザがのストックリストを検索して、必要なショウジョウバエの系統をリクエストするページを提供しています。 php + postgreSQL で作っているので、そのときに覚えてしまった(!)ことをちょっとだけ。 ショウジョウバエ遺伝資源センターでは、ユーザがのストックリストを検索して、必要なショウジョウバエの系統をリクエストするページを提供しています。~ 検索し、そのなかから複数の系統を一時的に記憶し、最後に確認の後にリクエストする、ということを行います。お買い物サイトと同じです。~ ストックリストは、リレーショナルデータベースの postgreSQL を使い、その操作とweb インタフェイスには、phpを使いました。ページが変わっても情報を保持しつづけるために、セッションを使っています。セッションを使えばクッキーを使わずにすむし、いろいろ複雑なことも出来て便利なようです(使いこなせていませんが)。慣れれば簡単なのでしょうけれども、セッションにはちょいと苦しめられました。ソースコードは下に。 Under construction (ちょっと待ってて) そのほかのことも。 1. ブラウザの判定:<button> </button> が使えるブラウザを判定する。使えるのは、マイクロソフトインターネットエクスプローラとネットスケープ6。 $str = $HTTP_USER_AGENT; $dgrc_browser; if(eregi("MSIE", $str) || eregi("Netscape6", $str)) { $dgrc_browser="IENN6"; } else { $dgrc_browser="NN4"; } *html tips [#g14f4de6] html のちょっとしたこと(小技?)を 上のようにして、ストックを検索するページを作るときに、結果的に html のちょっとしたこと(小技?)を学んでしまいました(無用な知識?が増えてしまった……)。 1. 別なサイトから呼び出されたときに、フレームの中では開かないようにする。下のコードを <head> </head> の中に書いておけばよい。 <script language="JavaScript"> <!-- if(self != top){ top.location.href = self.location.href; } //--> </script> 2. 文字セットをISO 8859-1(=Latin1)にする。下のコードを <head> </head> の中に書いておけばよい。こうしておくと日本語は確実に読めません (^^; <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 3. ○秒後に別なページへ飛ぶ。下のコードを <head> </head> の中に書いておけばよい。 <meta http-equiv="Refresh" content="3; URL=移動先のURL"> この例では3秒後に移動する。 4. プロポーショナルフォントを使わないようにする。 <tt> と </tt> で囲む。 <tt>non proportional</tt> ← プロポーショナルフォントにならない。 proportional ← プロポーショナルフォントになる(tとiとoの文字の間隔に注目!)。 プロポーショナルフォントを使わないようにブラウザを設定しているときは、プロポーショナルフォントを使うようにはなりません。 *shell script [#o8e5bf5b] **htmlファイルを加工する 4th April 2008 [#d6e64187] 下のようなhtmlファイル(ファイル名:P001.html:具体的にはエクセルから吐き出されたもの)を加工する |<html>|BGCOLOR(fuchsia):head.htmlと差し替え| |<head>|BGCOLOR(fuchsia): | |……|BGCOLOR(fuchsia): | |<…… shift_jis ……>|BGCOLOR(fuchsia): | |……|BGCOLOR(lime):残す(upper.html)| |</head>|BGCOLOR(lime): | |<body>|BGCOLOR(fuchsia):P001title.htmlと差し替え| |……|BGCOLOR(lime):残す(lower.html)| |</body>|BGCOLOR(fuchsia):tail.htmlと差し替え| |</html>|BGCOLOR(fuchsia): | -shell script #!sh grep -A 10000 "shift_jis" P001.html >temp01.html; grep -v "shift_jis" temp01.html >temp1.html; grep -B 10000 "<body" temp1.html > temp0.html; grep -v "<body" temp0.html> upper.html; grep -A 10000 "<body" temp1.html > temp2.html; grep -v "<body" temp2.html > temp22.html; grep -v "</body" temp22.html > temp23.html; grep -v "</html" temp23.html > lower.html; cat head.html upper.html P001title.html lower.html tail.html > temp3.html; sed -e s/"str border=0"/"str border=1"/g temp3.html> temp4.html; nkf --utf8 -Lu temp4.html > P001.html -grepを使って、必要部分を切り出す -> upper.html と lower.htmlを作る grep -A num 文字列: 文字列とその下num行を表示 grep -v 文字列: 文字列を含まない行のみ表示 grep -B num 文字列: 文字列とその上num行を表示 -あらかじめ作っておいたファイル(head.html、P001title.html、tail.html)と結合する -一部文字列を修正する(sed: s/文字列1/文字列2/g は、perlの正規表現による置換と同じ) -文字コードをutf-8に変更する ※ shell scriptを使う場合、パイプが働かないので注意 **拡張子追加 4th April 2008 [#wfe37afc] ファイル名がPではじまるものに、拡張子「.txt」を追加 #!sh for num in P*; do mv $num ${num}.txt; done *perl [#e81a8f91] **URIのリストから、それへのリンク付きのリストのhtmlファイルを作る 15 Jan 2009 [#ac1d2871] こんな感じのリスト(下)をリンク付きのリストのhtmlファイルにする~ in.txt http://www.kit.ac.jp/ http://www.yahoo.co.jp/ http://www.google.co.jp/ makelink.pl #!perl print "<html>\n"; print "<body>\n"; print "<ul>\n"; while(<>){ chop; print "<li><a href=\"$_\" target=\"_blank\">$_</a>\n"; } print "</ul>\n"; print "</html>\n"; print "</body>\n"; 使い方 perl makelink.pl <in.txt >out.txt メールに貼り付けて Thunderbird ででも受け取ればできちゃうのですけど、Pukiwikiに貼ってもできますけど……。 |Today:&counter(today);|Yesterday:&counter(yesterday);|Total:&counter(); since 02 April 2006|