リンクを一致させる必要がありますが、文字列[image:x]で始まらない人だけです。xはリンク自体です。
適合するリンクのみが変更されるように、preg_replaceでこれが必要です。次に例を示します。
「犬が私の本
http://mysite.com/dog.jpg
を食べたことがあり、店https://www.mysite.com/images/store.png
に行って新しいiPadを買わ なければなりませんでしたapple.com/iPad/iPadMini.jpg
。そこでは楽しかったです[image:http://apple.com/iPad/images/iPads.com
]」
結果は次のようになります
「犬が私の本
[image:http://mysite.com/dog.jpg]
を食べたことがあり、店[image:https://www.mysite.com/images/store.png]
に行って新しいiPadを買わ なければなりませんでした[image:apple.com/iPad/iPadMini.jpg]
。そこでは楽しかったです[image:http://apple.com/iPad/images/iPads.com
]」
最後のリンクに注意してください。今のところ、2倍になっています(リンクはまだpreg_replaceによって取得されています)。ここのように(望ましい効果ではなく、手つかずのままにする必要があります):
...[image:apple.com/iPad/iPadMini.jpg]
そして、楽しかったです
[image:[image:http://apple.com/iPad/images/iPads.com]]
"
これが今のところ私のpreg_replaceです:
preg_replace('~(https?://)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\S*)\.(jpg|png|jpeg|bmp|gif)~','[[image:$0]]',$text);