Giriş

Orijinalini görmek için tıklayınız : Arama sonuçlarını İşaretlemek (Google' Gibi)


Mattet
26 Ağustos 2016, 13:24
Google'ın arama sonucunda sayfamıza gelirken gönderdiği referer yaklaşık bunun gibi birşey , 'q' değişkenin içinde aranan kelimeler '+' işareti ile ayrılmış şekilde duruyor, php nin url fonksiyonlar ile bu sorguyu parçalayıp istediğimiz kelimeleri bir diziye aktarabiliriz

<?
$qs=parse_url($qs);

parse_str($qs["query"]);

$qs3=explode(" ",$q);

$limit=count($qs3);
?>

daha sonra ufak bir döngü ile bu kelimeleri arka fonu farklı bir renk olan bir spanın içine yerleştiriyoruz.

<?
for($i=0;$i!=$limit;$i++){

$buffer=str_replace("$qs3[$i]", "<span =\"background-color:#ffffcc;\">$qs3[$i]</span>", $buffer);

}

?>

tabi fonksiyonumuzun işini yapabilmesi için php sayfamızın buffera alınıp bu fonksiyon ile işlendikten sonra gönderilmesi gerekiyor, bunun için de genelde header hatalarının kapamak için kullanılan ob_start()'ı asıl var oluş amacına uygun şekilde kullanabiliriz

aşağıdaki kodu php sayfamızın başına yerleştirdikten sonra ob_end_flush() diyene kadar bütün metin üzerinde istediğimiz değişikliği yapacaktır

<?php

function degistir($buffer)

{
$qs=$_server['[Only Registered Users Can See Links]'];

$qs=parse_url($qs);

parse_str($qs["query"]);

$qs3=explode(" ",$q);

$limit=count($qs3);

for($i=0;$i!=$limit;$i++){

$buffer=str_replace("$qs3[$i]", "<span style=\"background-color:#ffffcc;\">$qs3[$i]", $buffer);

}

return $buffer;

}

ob_start("degistir");

// içerik buraya

ob_end_flush();
?>