Benim twitter durum nesnelerin text özelliğini arama ve <a href="http:/twitter.com/username">@username</a>
için kullanıcı adı @ takas etmek istiyorum. Ne ben denedim şimdiye kadar bu gibi görünüyor:
$pattern = '/([@]{1})([a-zA-Z0-9\_]+)/';
$replace = '<a href="http://twitter.com/\2">\1\2</a>';
$new_string = preg_replace($pattern, $replace, $text);
Ama başkasını yapmaz. Benim reg ihr yanlış olduğunu biliyorum ama tam olarak nerede / neden bilemiyorum. Yardım?
** Düzenleme: ... örnek veri olarak istenen?
$text = '@janesmith I like that, but my friend @johndoe said it better.';
İstenilen çıktı:
@janesmith Bunu sevdim, ama arkadaşım @johndoe daha iyi dedi.
***** MY FULL FUNCTION *****
function linkify($string, $twitter=false) {
// reg exp pattern
$pattern = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
// convert string URLs to active links
$new_string = preg_replace($pattern, "<a href=\"\\0\">\\0</a>", $string);
if ($twitter) {
$pattern = '/@([a-zA-Z0-9_]+)/';
$replace = '<a href="http://twitter.com/\1">@\1</a>';
$new_string = preg_replace($pattern, $replace, $new_string);
}
return $new_string;
}