本文中から正規表現でURL取得する際は改行コードに気をつける

作成日:

本テーマ作成中、本文(ココ)にURLだけを単行で書くとそれを所謂ブログカードに自動変換する、というコードを書いていたのですが、正規表現でURLが取れているはずなのに正しく処理できていない。そんな際に見つけたポイントです。

最初のコード

いつもの感じで以下のようにコードを書いていました。
PHP
preg_match_all( '/^http(s)?:\/\/(.*?)$/m', $content, $search, PREG_SET_ORDER );
if ( $search ) {
	foreach ( $search as $val ) {
		$url  = $val[0];
		...
	}
}

しかし、この正規表現パターンだと、

PHP [Ln 1]
preg_match_all( '/^http(s)?:\/\/(.*?)$/m', $content, $search, PREG_SET_ORDER );
最後に$(改行コード)が含まれています。これだと、取得されるURLにも最後に改行コードが付随してしまいます。

新しいコード

なので、URLにわたす際は
PHP [Ln 4]
		$url  = trim( $val[0] );
のようにURLにtrim()をかけてスペースと改行を削除する必要があります。

物草 灸太郎
物草 灸太郎

WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。

コメントをどうぞ

※ メールアドレスが公開されることはありません。