Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

yazıdaki adresi link yapma

murdock

0
Onaylı Üye
Üye
Katılım
28 Mart 2005
Mesajlar
1,273
Açılan Konu
126
Tepki puanı
2
merhaba arkadaşlar, ben şimdi sözlük tarzı birşey yapıyorum günlerdir bu olayın içinden çıkamadım. şöyle birşey istiyorum;

$normal = $mesaj;
$mesaj = strtolower($mesaj);

burda yapmak istediğim yazıların hepsi küçük karakter yapıldığında linkteki youtube adreslerinde de olan büyük harfleri bozmadan link yapmak. ama diğer yazılar düzgün bir şekilde küçük olsun istiyorum.

burda normalden linki alıp küçülttüğüm mesajdan değiştirmek istiyorum. birden fazla link oldumu sorun çıkmadan hepsini tek tek değişsin. ama linkin başlığındaki tüm harfler yine küçük olsun.

birde link sonunda = yada / gibi karakterleride linke ve başlığa katsın. preg_replace yaparken tam bir yapamadım. çünkü mesela linkler eğer ~link~ 'link' yada (bkz: link) şeklinde yazıldığında sonundaki ~ ' ) gibi karakterleride linkin içine alıyor.

bunu düzgün bir şekilde yapabilmem için yardımcı olabilirseniz sevinirim. lütfen basit ve mevcut kodları editle şeklinde vermeyin çünkü yapamadığım için sürekli birşeyler kaydığı için olmuyor. yapamadım yani.
 

murdock

0
Onaylı Üye
Üye
Katılım
28 Mart 2005
Mesajlar
1,273
Açılan Konu
126
Tepki puanı
2
hallettim. kodlar bunlar daha kısa yoldan hal olabiliyorsa paylaşabilirsiniz.;

PHP:
$mesaj = preg_replace( "'((http)+(s)?:(//)|(www\.))((\w|\.|\-|_)+)(/)?(\S+)?'ie","'<a target=_blank rel=nofollow href=\"http\\3://\\5\\6\\8\\9\" title=\"\\0\">http://\\5\\6\\8\\9</a>'", $mesaj);

$mesaj = str_replace("`\"", "\"", $mesaj);
$mesaj = str_replace("~\"", "\"", $mesaj);
$mesaj = str_replace(")\"", "\"", $mesaj);
$mesaj = str_replace("`\"", "\"", $mesaj);

$mesaj = str_replace("`</a>", "</a>`", $mesaj);
$mesaj = str_replace("~</a>", "</a>~", $mesaj);
$mesaj = str_replace(")</a>", "</a>)", $mesaj);
$mesaj = str_replace("`</a>", "</a>`", $mesaj);

$taro = $mesaj;
$mesaj = strtolower($mesaj);

$aranan = "'>((http)+(s)?:(//)|(www\.))((\w|\.|\-|_)+)(/)?(\S+)?</a>'ie";
if( preg_match_all($aranan,$taro,$out,PREG_SET_ORDER))
{
for($i=0;$i<count($out);$i++)
{

$heyt = strtolower($out[$i][0]);
if(strlen($heyt) > 50){
$heto = explode("/", $heyt);
$herto = substr($heyt , -30);
$heyot = "http://".$heto[2]."/...".$herto;

$mesaj = str_replace($heyt, ">".$heyot, $mesaj);
}


}
}

$aranasn = "'href=\"((http)+(s)?:(//)|(www\.))((\w|\.|\-|_)+)(/)?(\S+)?\"'ie";
if( preg_match_all($aranasn,$taro,$oust,PREG_SET_ORDER))
{
for($i=0;$i<count($oust);$i++)
{

$heyot = strtolower($oust[$i][0]);

$heyort = $oust[$i][0];

$mesaj = str_replace($heyot, "\"".$heyort, $mesaj);



}
}
 
Üst