本文中から正規表現でURL取得する際は改行コードに気をつける
作成日:
2020年8月31日
本テーマ作成中、本文(ココ)にURLだけを単行で書くとそれを所謂ブログカードに自動変換する、というコードを書いていたのですが、正規表現でURLが取れているはずなのに正しく処理できていない。そんな際に見つけたポイントです。
最初のコード
PHP
preg_match_all( '/^http(s)?:\/\/(.*?)$/m', $content, $search, PREG_SET_ORDER );
if ( $search ) {
foreach ( $search as $val ) {
$url = $val[0];
...
}
}
しかし、この正規表現パターンだと、
PHP [1]
preg_match_all( '/^http(s)?:\/\/(.*?)$/m', $content, $search, PREG_SET_ORDER );
$(改行コード)
が含まれています。これだと、取得されるURLにも最後に改行コードが付随してしまいます。新しいコード
PHP [4]
$url = trim( $val[0] );
trim()
をかけてスペースと改行を削除する必要があります。
物草 灸太郎
WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。
コメントをどうぞ