PHPのナイスな点としては
等が上げられるような気がします。
まずは、PHPの実行環境を整えましょう。 (ゆとり専用)
(PHP)
#geshi(php,number){{ class Hello {
public static function main($args = array()) { printf("( ^ω^) "); }
} Hello::main(); }}
(Java)
#geshi(java,number){{ public class Hello {
public static void main(String[] args) { System.out.print("( ^ω^) "); }
} }}
<?php // 初期化 $count = 0; $wr = false; if (file_exists("c.dat")) { $fp = fopen("c.dat", 'r+'); } else { $fp = fopen("c.dat", 'w'); } // if ($fp != null) { flock($fp, LOCK_EX); $count = fgets($fp); if ($count == '') $count = 0; rewind($fp); $wr = fwrite($fp, ++$count); if ($wr === false) { $count = 0; } flock($fp, LOCK_UN); fclose($fp); } echo("来訪者数" . $count . "だお"); ?>
パースエラーが出るかもしれません。 そのときは、エラーメッセージからエラーのある行を判断して、全角スペースを半角に直してみましょう。
<?php $db = sqlite_open("log.db"); //最初に1回実行 sqlite_query($db, "create table T(num INTEGER PRIMARY KEY, name VARCHAR(40), str TEXT)"); if ($_POST['OK'] == 'OK') { sqlite_query($db, "insert into T values( NULL, '". htmlspecialchars($_POST['name'], ENT_QUOTES) ."', '". nl2br(htmlspecialchars($_POST['str'], ENT_QUOTES)). "'); "); } $f = sqlite_array_query($db, "select * from T"); sqlite_close($db); ?> <html><head><title>けいじばn</title></head><body> <?php for ($i = 0; $i < count($f); $i++) { ?> <?= $f[$i]['num'] ?>:<b><?= $f[$i]['name'] ?>さん </b><br><blockquote><?= $f[$i]['str'] ?></blockquote><hr> <?php } ?> <form method="post" action="./this.php"> 名前:<input type="text" name="name"><br>本文:<textarea name="str"></textarea><br> <input type="submit" name="OK" value="OK"> </form>
説明はこんな感じだと分かりやすい
/* Test(①[, ②[, ③[, ④]]]) ①…1番目の引数 ②…2番目の引数 ③…3番目の引数 ④…4番目の引数 戻…戻り値 */
/* str_link(①[, ②[, ③]]) ①…URLまたはURLを含む文字列 ②…ターゲット ③…タイトル(未入力の場合はURL) 戻…変換後の文字列 */ function str_link($url,$target=NULL,$title='\0'){ if($target){ $target = " target=\"".$target."\""; } $url = preg_replace('/(http:\/\/|https|\/\/)[a-zA-Z0-9\.\/_\-]+/', '<a href=":\/\/|https:\/\/)[a-zA-Z0-9\.\/_\-]+/', '<a href="\0"'.$target.'>'.$title.'</a>', $url);"'.$target.'>'.$title.'</a>', $url); return $url; }
#geshi(php){{
?php /*
check_dir( ① ) ①…走査するディレクトリ 戻…成功すればtrue, 失敗すればnull
/* サンプル
define('MY_CHECK_DIR','C:\Documents and Settings\My Documents\My Pictures');
$dir = scandir(MY_CHECK_DIR); check_dir($dir);
function check_dir($dir){
//最初に見つけたファイルは削除しない $denial_items = array(); foreach($dir as $item){ //.と..は無視 if(preg_match('/^(\.|\.\.)$/',$item)){ continue; } //ディレクトリだったらそのディレクトリ内も走査 if(is_dir($item)){ check_dir(scandir(MY_CHECK_DIR.$item)); }else{ //最初のファイルは削除リストに加えない if(!in_array(md5_file($item),$denial_items)){ $denial_items[] = md5_file($item); }else{ $md5_list[getcwd().'\\'.$item] = md5_file($item); } } } //削除 foreach($md5_list as $path => $md5){ unlink($path); print $path.'を削除しました。'.PHP_EOL.'MD5ハッシュ:'.$md5.PHP_EOL; } return true;
} ?> }}