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; }