リンクを一致させる必要がありますが、文字列[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);