
スマホで撮っていたスナップショットから作成しました。twitter 配信テストで何か上げようと思っても、最近まともに撮影していないので素材が無いんですよね。今年はもう捨ててますが、来年はもうちょっと頑張ってみようと新年の抱負に願ってみます。
10/30 加茂市
iPhone6s+(AutoBracket HDR)
JPG×3→Photomatix / Topaz Simplify / Photoshop
Tags #植物 #モミジ #落ち葉
0 件のコメント

スマホで撮っていたスナップショットから作成しました。twitter 配信テストで何か上げようと思っても、最近まともに撮影していないので素材が無いんですよね。今年はもう捨ててますが、来年はもうちょっと頑張ってみようと新年の抱負に願ってみます。
10/30 加茂市
iPhone6s+(AutoBracket HDR)
JPG×3→Photomatix / Topaz Simplify / Photoshop
Tags #植物 #モミジ #落ち葉
相対 URL を絶対 URL に解消する関数を探したのですが、ぴったりのものが見つからないので自分で作ってみました。ただし、簡単そうにみえて難しい部類なので、あらゆるパターンで完璧かどうかは保証できません。なお、HTML を処理すると言っても、<a>、<img> の2つのみが処理対象になっています。他のタグを含めるには、正規表現のパターンを追加してください。
function html_absolute_url($base,$html) {
return preg_replace_callback(
'/(<a\s+.*?href=")(.+?)(".*?>)'.
'|(<a\s+.*?href=\')(.+?)(\'.*?>)'.
'|(<img\s+.*?src=")(.+?)(".*?>)'.
'|(<img\s+.*?src=\')(.+?)(\'.*?>)/',
create_function(
'$matches',
'$base = unserialize(\''.serialize($base).'\');'.
'$n = (count($matches)-1)/3-1;'.
'$url = $matches[$n*3+2];'.
'$url = absolute_url($base,$url);'.
'return $matches[$n*3+1].$url.$matches[$n*3+3];'
),
$html
);
}
function absolute_url($base,$url) {
if (substr($base,-1)!='/') $base.='/';
$pbase = parse_url($base);
$purl = parse_url($url);
if (!isset($purl['scheme'])) {
if (!isset($purl['host'])) {
// スキームとホストが省略されている
if (substr($url,0,1)=='/') {
// 絶対URL
$url = $pbase['scheme'].'://'.$pbase['host'].$url;
} else {
// 相対URLと判定(./と../の解消は行わない)
$url = $base.$url;
}
} else {
// スキームのみ省略されている
$url = $pbase['scheme'].':'.$url;
}
} else {
// 完全なURLと判定
}
return $url;
}
html_absolute_url が HTML を処理する関数で、absolute_url が URL を個別に処理する関数です。PHP5.3 未満に対応するために、preg_replace_callback のコールバック関数でクロージャを使用しておらず、変数の値を無理やり展開して渡しています。また、正規表現の中でシングルとダブルクオーテーションをそれぞれ記述していますが、まとめてうまく表現できないものかと思います。もっとスマートに書ける人がいたら、教えて欲しいです。