URLからタイトルを取得して参考文献リストを作る
このサイトの投稿の下部の方にある、こういう(↓)参考にしたサイトやページのリストを作るときのメモ。

やりたいのは2つ。
- URL入れるだけでタイトルも取得する
- URLがあまりに長い場合は省略する
PHP
<ul>
<?php foreach ($refas as $refa) { ?>
<?php
$url = $refa[0];
if (mb_strlen($url) > 80) {
$urltxt = mb_substr($url, 0, 80) . '...';
} else {
$urltxt = $url;
}
$source = @file_get_contents($url);
if (preg_match('/<title>(.*?)<\/title>/i', mb_convert_encoding($source, 'UTF-8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS'), $result)) {
$title = $result[1];
}
?>
<li><?php if ($title) { ?>
<?php echo $title; ?><br>
<?php } ?>
<a href="<?php echo $url; ?>" target="_blank" rel="noopener"><?php echo $urltxt; ?></a>
</li>
<?php } ?>
</ul>
mb_strlen() | 文字列の長さを取得する。 |
mb_substr() | 文字列の一部を取得する。 |
@(エラー制御演算子) | その式により生成されたエラーメッセージが無視される。 |
file_get_contents() | ファイルの内容を全て文字列に読み込む。 |
preg_match() | 正規表現によるマッチングを行う。 |
mb_convert_encoding() | 文字エンコーディングを変換する。 |
URLは投稿のカスタムフィールドで入力しています。
参考
- https://otapps.net/archives/305
- PHPで文字数を制限し、超過分を『…』に置き換えるコード | Qoocode
https://spreadsheep.net/php%E3%81%A7%E6%96%87%E5%AD%97%E6%95%B0%E3%82%...