基本的に使うのはMySQLなので。
mysql_escape_string()は非推奨で、
mysql_real_escape_string()がお勧めだったのか。
バイナリ使わないから、あんまり関係ないみたいだけど、
非推奨だと無くなるかもしれないし、切り替えますか。
基本的に使うのはMySQLなので。
mysql_escape_string()は非推奨で、
mysql_real_escape_string()がお勧めだったのか。
バイナリ使わないから、あんまり関係ないみたいだけど、
非推奨だと無くなるかもしれないし、切り替えますか。
いい加減覚えないと。
PHPなら一発で出来る関数ありそうだけど。
$date = ‘2008-09-01’;
$wday = strftime( ‘%a’, strtotime( $date ) );
echo $wday;
> Mon
HTML/AAはPHPのモジュールです。
スクリプトと同じ階層か、PHPのモジュール用のパスに設置してください。
AAはアスキーアート(Ascii Art)と同じ要領で、アスキーアジャスト(Ascii Adjust)を行います。
このモジュールは、ブラウザに表示する文字列を整形する機能を有します。
このモジュールは、PerlのHTML::AAモジュールの移植版です。
UTF-8への対応も予定しておりますので、しばらくお待ちください。
ご意見、ご感想は、モジュール内に記載されているメールアドレスまでお寄せください。
PEARへの登録方法がよく分かりません。誰か教えて・・・
エンコードはEUC-JP、Shift_JISに対応しています。
解説は、このページが一番詳しく、判りやすいと思います。
文字コードが異なる場合には、正常な結果を得ることができません。
MS Pゴシック12ポイントで表示した場合に限り、正常に表示できると予想されます。
文字列の先頭に半角スペースが出力された場合、それが行頭になるとずれる現象が発生します。
詳しくは、アスキーアートを紹介しているサイト等を参考にしてください。
文字列内に半角スペースの連続が混入していないと仮定します。
require_once( 'HTML/AA.php' ); $aart = new AA( ); printf( '%s Version %s', $aart -> module, $aart -> version );
PHP HTML/AA module Version 0.01
echo $aart -> calcu_euc( '文字列の長さを求める' );
152
echo join( '|', $aart -> divide_euc( '文字列を文字1つの配列に分解する' ) );
文|字|列|を|文|字|1|つ|の|配|列|に|分|解|す|る
// 調整ドットは左側 echo $aart -> adjust_left_euc( '左側の文字', '右側の文字', 256 ); // 調整ドットは右側 echo $aart -> adjust_right_euc( '左側の文字', '右側の文字', 256 );
左側の文字. 右側の文字 左側の文字 .右側の文字
$ary = array( '配列の中から', '整形可能な最小のサイズを', '返します' ); echo $aart -> shorter_euc( $ary );
226
$ary = array( '配列を1行と見立てて', '指定された倍数で', '整形できる最小のサイズと', '何倍かを求める' ); echo join( ':', $aart -> shorter_multiple_euc( 16, $ary, $ary ) );
400:25
サンプルスクリプトのEUC-JPとShift_JISはダウンロード用パッケージに同梱されています。
<html> <head> <style type="text/css"> <!-- table,tr,th,td { border:1px gray solid; border-collapse:collapse; text-align:center; } input,textarea { margin:4px; } input { text-align:center; } //--> </style> </head> <body> <?php require_once( 'HTML/AA.php' ); $aart = new AA( ); printf( '<h1>%s Version %s</h1>', $aart -> module, $aart -> version ); ?> <h3>EUC-JPサンプル</h3> <ul> <li><a href="http://penlabo.net/PHP/HTML-AA.html">HTML/AA(ぺんラボ)</a></li> <li><a href="HTML-AA_euc.php">EUC-JP</a></li> <li><a href="HTML-AA_sjis.php">Shift_JIS</a></li> </ul> <form action="" method="post"> <table> <tr> <td>左側</td> <td><input type="submit" value="整形"></td> <td>右側</td> </tr> <tr> <td> <textarea name="multilineL" cols="50" rows="10" style="font-size:85%">FightAIDS@Home Human Proteome Discovering Dengue Drugs - Together Rosetta@home SIMAP TANPAKU proteins@home SETI@Home Folding@Home CHRONOS</textarea> </td> <td> <input type="text" name="separate" value="│" size="2"> </td> <td> <textarea name="multilineR" cols="50" rows="10" style="font-size:85%">HIVの新薬開発 たんぱく質構造の予測 デング熱治療薬開発プロジェクト たんぱく質構造の予測 たんぱく質の類似性データベースの構築 たんぱく質構造の予測 たんぱく質構造の予測 地球外の知的生命を検出 たんぱく質構造の予測・アルツハイマー解析 ヒトゲノム染色体間法則性解明</textarea> </td> </tr> </table> </form> <div style="font-family:MS Pゴシック;font-size:12pt"> <?php if( isset( $_POST['multilineL'] ) && isset( $_POST['multilineR'] ) ){ aa( $aart ); } function aa( &$aart ){ // mb_splitにもスイッチつけれ mb_regex_encoding( 'EUC-JP' ); // 改行コード除去 $aryL = mb_split( '\x0d\x0a|\x0d|\x0a', $_POST['multilineL'] ); $aryR = mb_split( '\x0d\x0a|\x0d|\x0a', $_POST['multilineR'] ); // 配列の小さいほうを基準に $max = count( $aryL ) < count( $aryR ) ? count( $aryL ) : count( $aryR ); $aryL = array_splice( $aryL, 0, $max ); $aryR = array_splice( $aryR, 0, $max ); // 最短整列ドット数 $minL = $aart -> shorter_euc( $aryL ); $minR = $aart -> shorter_euc( $aryR ); // 整形 for( $i = 0; $i < $max; $i ++ ){ echo $_POST['separate']; echo $aart -> adjust_right_euc( '', $aryL[$i], $minL ); echo $_POST['separate']; echo $aart -> adjust_left_euc( $aryR[$i], '', $minR ); echo $_POST['separate']; echo "<br>\r\n"; } } ?> </div> </body> </html>
│ .FightAIDS@Home│HIVの新薬開発. │ │ .Human Proteome│たんぱく質構造の予測 │ │Discovering Dengue Drugs - Together│デング熱治療薬開発プロジェクト │ │ .Rosetta@home│たんぱく質構造の予測 │ │ .SIMAP│たんぱく質の類似性データベースの構築. │ │ . TANPAKU│たんぱく質構造の予測 │ │ .proteins@home│たんぱく質構造の予測 │ │ SETI@Home│地球外の知的生命を検出 │ │ .Folding@Home│たんぱく質構造の予測・アルツハイマー解析│ │ .CHRONOS│ヒトゲノム染色体間法則性解明. │
各バージョンごとに使い方が変わると思います。ご注意ください。
使い勝手がいいとはいえません。ぼちぼち更新していくかもしれませんが、関数名が変更になる可能性があります。
下のように、バージョンチェックをしたほうがいいかもしれません。
if( $aart -> version != 0.01 ){ echo 'The version of the HTML/AA module is different.'; }
RSSファイルを参照し、オリジナルのリーダーを作成します。
RSSの解説は、RSSによるサイトの情報の要約と公開を参考にしました。
XML_RSSパッケージの解説は、XML_RSSを参考にしました。
使用したXML_RSSパッケージのバージョンは1.14(0.9.10)でした。
XML_RSSパッケージは、PHPのバージョン5.2.1ではインストールされていません。
XML_RSSをインストールすると、XML_Treeも同時にインストールされます。
pear install -a XML_RSS
<?php
require_once( "XML/RSS.php" );
// RSSファイルのURL
$rss = new XML_RSS( "http://pear.php.net/feeds/latest.rss" );
// RSSのパース
$rss -> parse();
// channnelタグ出力
$channel = $rss -> getChannelInfo();
printf( "<html>\n<head>\n\t<title>RSS - %s</title>\n</head>\n",
$channel['title']
);
printf( "<h1><a href=\"%s\">%s</a></h1>\n<p>%s</p>\n",
$channel['link'],
$channel['title'],
$channel['description']
);
// imageタグ出力
if( isset( $rss -> images ) ){
foreach( $rss -> getImages() as $image ){
if( !count($image) ){ continue; }
printf( "<p><a href=\"%s\"><img src=\"%s\" alt=\"%s\" align=\"right\"></a></p>\n",
$image['link'],
$image['url'],
$image['title']
);
}
}
// itemタグ出力
echo "<dl>\n";
foreach( $rss -> getItems() as $item ){
printf( "\t<dt><a href=\"%s\">%s</a></dt>\n\t\t<dd>%s</dd>\n",
$item['link'],
$item['title'],
isset( $item['description'] ) ? $item['description'] : ""
);
}
echo "</dl>\n";
// HTMLの出力終了
echo "</body>\n</html>";
?>