目次 †
内容 †
目的 †
- ブログで気に入った記事の一覧を投稿する際、リンク集を作成するのが面倒
- URLを取得
- タイトルを取得
- タイトル文字列を<a href~で囲む
- リンク計測用のJavaScriptを仕込む
- これを自動的に生成するプログラムを開発
インストール方法 †
- PHPでmbstringが使えるかを確認、CentOSでインストールされてない場合はyumでインストール
# yum -y install php-mbstring
- PHPでHTMLを解釈するためのライブラリ「scrape_func.php」を入手する
- 下記のスクリプトとscrape_func.phpをWebサーバにアップする
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>タイトルゲッター2</title>
</head>
<body>
日付とURLを入力
<form action="./index.php" method="post">
<input type="text" name="date" value="<?php echo date("Y/m/d");?>" /><br />
<textarea name="url" rows="10" cols="40">
<?php
if( isset( $_POST["url"] ) )
echo $_POST["url"];
?>
</textarea>
<input type="submit">
</form>
<?php
// 利用する外部ライブラリ
include( "scrape_func.php" );
// 入力内容を解析
if( ( $_SERVER[ "REQUEST_METHOD" ] = "POST" ) && ( isset( $_POST["url"] ) ) ){
// 結果を格納するURL
$urls = array();
// 入力内容を処理
foreach( explode( "\n", $_POST["url"] ) as $url ){
$url = str_replace( "\r", "", $url );
// URLパターンでなければ無視
if( ! preg_match( "/^http:\/\//", $url ) ){
continue;
}
// ページをHTTPでゲットしてタイトルを取得
$sData = getURL( $url );
$sData = mb_convert_encoding( $sData, "UTF-8", array( "utf-8", "euc-jp", "sjis" ) );
$sData = cleanString( $sData );
$title = getElement( "title", $sData );
array_push( $urls, array( "url" => $url, "title" => $title ) );
}
// 出力結果を生成
$result = "<ul>";
foreach( $urls as $url ){
$result
.= '<li><a href="'. $url["url"] . '" onclick=\'tracklink(this,"'
. $_POST["date"] . '");return false;\'>' . $url["title"] . '</a></li>';
}
$result .= "</ul>";
}
?>
結果
<textarea name="url" rows="10" cols="40">
<?php echo $result; ?>
</textarea>
</body>
</html>
動作例 †
|