開発環境
- OS X Lion - Apple(OS)
- Apache (Web Server)
- PHP (サーバーサイドプログラミング言語)
- TextWrangler(Text Editor) (BBEditの無料機能制限版、light版)
『初めてのPHP5』 (David Sklar 著、 桑村 潤 翻訳、 廣川 類 翻訳、 オライリー・ジャパン、2005年、ISBN978-4-87311-257-2)の11章(XML のパースと生成)11.4(演習問題)4を解いてみる。
4.
PHPのコード(TextWrangler)
<?php require 'formhelpers.php'; if(array_key_exists('_submit_check', $_POST)){ if($_POST['_submit_check']){ if($form_errors = validate_form()){ show_form($form_errors); } else { process_form(); } } else { show_form(); } } else { show_form(); } function show_form($errors = ''){ if($errors){ print "Error:<ul><li>"; print implode("</li><li>", $errors); print "</li></ul>"; } print '<form method="POST" action="' . $_SERVER['PHP_SELF'] . '"/>'; print "RSSニュースフィード(http://news.yahoo.com/rss/)を検索<br />検索用語を入力: "; input_text("query", $_POST); input_submit("submit", "search"); print '<input type="hidden" name="_submit_check" value="1"/>'; print '</form>'; } function validate_form(){ $errors = array(); if(! strlen(trim($_POST['query']))){ $errors[] = "用語を入力してください"; } return $errors; } function process_form(){ $xml = simplexml_load_file('http://news.yahoo.com/rss'); print "<ul>\n"; foreach($xml->channel->item as $item){ if(stristr($item->title, $_POST['query'])){ print "<li><a href=" . $item->link . ">" . htmlentities($item->title) . "</a></li>\n"; } } print "</ul>"; } ?>
HTMLソース
<form method="POST" action="/~kamimura/kamimura_blog/learning_php/sample72.php"/>RSSニュースフィード(http://news.yahoo.com/rss/)を検索<br />検索用語を入力: <input type="text" name="query" value="" /><input type="submit" name="submit" value="search"/><input type="hidden" name="_submit_check" value="1"/></form>
0 コメント:
コメントを投稿