$text='some text and text http://soundcloud.com/disclosuremusic/whats-in-your-head some other text http://soundcloud.com/bad-panda-records/indian-wells-04 and again text blabla';
$text = preg_replace('#(?:https?://).soundcloud'.com/(['-a-z0-9_]+/['-a-z0-9_]+)#siU','<object height="81" width="100%"><param name="movie" value="http://player.soundcloud.com/player.swf?url=$1&g=bb"></param><param name="allowscriptaccess" value="always"></param><embed allowscriptaccess="always" height="81" src="http://player.soundcloud.com/player.swf?url=$1&g=bb" type="application/x-shockwave-flash" width="100%"></embed></object> <a href="$1">$1</a>', $text);
试图从文本中预先替换声音云链接,但似乎没有运气。谢谢
"soundcloud''.com"之前的"."不匹配
'%(?:https?://)(?:www'.)?soundcloud'.com/(['-a-z0-9_]+/['-a-z0-9_]+)%im'
你到底需要考虑www吗?
这将做到这一点:
$text = preg_replace('/((http?:'/'/)soundcloud'.com'/(['-a-z0-9_]+/['-a-z0-9_]+))/i','<object height="81" width="100%"><param name="movie" value="http://player.soundcloud.com/player.swf?url=$1&g=bb"></param><param name="allowscriptaccess" value="always"></param><embed allowscriptaccess="always" height="81" src="http://player.soundcloud.com/player.swf?url=$1&g=bb" type="application/x-shockwave-flash" width="100%"></embed></object> <a href="$1">$1</a>', $text);
你在"soundcloud"之前有一个额外的点,你没有正确地逃脱。
$text='some text and text http://soundcloud.com/qcntoz some other text http://soundcloud.com/qcntoz and again text blabla';
$text = preg_replace('#(?:https?://).soundcloud'.com/(['-a-z0-9_]+/['-a-z0-9_]+)#siU','<object height="81" width="100%"><param name="movie" value="http://player.soundcloud.com/player.swf?url=$1&g=bb"></param><param name="allowscriptaccess" value="always"></param><embed allowscriptaccess="always" height="81" src="http://player.soundcloud.com/player.swf?url=$1&g=bb" type="application/x-shockwave-flash" width="100%"> </embed></object> <a href="$1">$1</a>', $text);