※このページはデザインラボの技術のために掲載を行っております。
掲載してある内容は実験的な要素を含みますので、何卒ご理解ください。
1、ページを読み込ませるユーザー関数を用意
2、呼び込ませるページから
$dir = 'labo/php';
getPagename($dir);
・・・としてディレクトリーを指定。
呼び込ませる関数は下記。
<?php
// ページタイトルを取得する関数
function getPageTitle( $url ) {
$html = file_get_contents($url); //HTML文字列を取得
//↓必要であれば文字コード取得
//$html = mb_convert_encoding($html, mb_internal_encoding(), "utf-8" );
//↓正規表現を使ってタイトルタグを抜き出す
if ( preg_match( "/<title>(.*?)<\/title>/i", $html, $matches)
) {
return $matches[1];
} else {
return false;
}
}
function getPagename($dir){
//ディレクトリー内のファイル名を$pagenameという配列に移行
$res_dir = opendir($dir);
$i = 0 ;
while( $file_name = readdir( $res_dir ) ){
if($file_name != '.' && $file_name != '..'){
$pagename[$i] = $file_name ;
$i++;}
}
//ページの中身からgetPageTitleを使ってタイトルを取得
$i = 0;
foreach($pagename as $key){
$key = $dir.'/'.$key; //これはファンクション直接叩くために記述
//取得したタイトルを配列化する。
$Contents[$i] = getPageTitle( "$key").':'.$pagename[$i];
$i++;
}
//配列を一度ソートかける。
sort($Contents);
$i = 0; //ファイル名の配列を呼ぶために使う(´・ω・)ス
foreach($Contents as $key){
//echo "<li><a href=\"{$dir}{$pagename[$i]}\">".$key."</a></li>";
$list[$i] = explode(':', $Contents[$i]);
//echo $list[$i][0];
//echo $list[$i][1];
//echo '<br>';
mb_convert_encoding($list[$i][0],"utf-8","UTF-8");
echo "<li><a href=\"{$dir}/{$list[$i][1]}\">".$list[$i][0]."</a></li>";
$i++;
}
}
?>
<?php
//$dir = '../php';
//getPagename($dir);
?>
どうして呼び込ませるページでディレクトリーを変数に入れておくかというと、
呼び込ませるページは他のディレクトリーもツリー化させるため。