I need help
| From: | Kari Tuurna | Date: | Sat, 15 Feb 2003 12:38:14 +0000 |
| Subject: | I need help | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-135658@lists.php.net to get a copy of this message | ||
hi
i am new at this list and php...
can anybody help me with my problem:
i would like to show last 10 referres at my website.
now it writes to reflog.txt:
http://www.foo.bar/link_to_my_site.html
and to show-refs.php is
<a
href="http://www.foo.bar/link_to_my_site.html">http://www.foo.bar/link_to_my
_site.html</a>
i would like that it writes like this:
<a
href="http://www.foo.bar/link_to_my_site.html">www.foo.bar/link_to_my_site.h
tml</a>
and maximum lenght should be 40. If url is longer, it shoud be
<a
href="http://www.foo.bar/very_long_link_to_my_site.html">www.foo.bar/very_lo
ng_link_to_my_site....</a>
i have use these files:
///////////////////////////////////////////////
lgf-reflog.php:
<?php
/*
--------------------------------------------
LGF Referrer Log
By Charles F. Johnson
Copyright 2001 LGF Web Design
All Rights Reserved.
http://littlegreenfootballs.com
This file may be freely distributed
as long as the credits and copyright
message above remain intact.
--------------------------------------------
*/
// Name of referrer log file
$reflog = 'reflog.txt';
// Name of semaphore file
$semaphore = 'semaphore.ref';
// Maximum number of referrers to log
$maxref = 10;
// Domain name of this site (minus "http://www.")
$mydomain = 'tuurna.com';
// From whence did Bunky come?
$ref = getenv("HTTP_REFERER");
// Cover me. I'm going in.
if (($ref) and (!strstr($ref, $mydomain))) { // if there's a referrer, and
it's not someone bouncing around this site
$ref .= "\n"; // append a line feed
$sp = fopen($semaphore, "w"); // open the semaphore file
if (flock($sp, 2)) { // lock the semaphore; other processes will stop
and wait here
$rfile = file($reflog); // read the referrer log into an array
if ($ref <> $rfile[0]) { // if this referrer is different from the last
one
if (count($rfile) == $maxref) // if the file is full
array_pop($rfile); // pop the last element
array_unshift($rfile, $ref); // push the new referrer onto the front
$r = join("", $rfile); // make the array into a string
$rp = fopen($reflog, "w"); // open the referrer log in write mode
$status = fwrite($rp, $r); // write out the referrer URLs
$status = fclose($rp); // close the log
}
}
$status = fclose($sp); // close the semaphore (and release the lock)
}
?>
//////////////////////////////////////////////
show-refs.php:
<?php
/*
--------------------------------------------
LGF Referrer Log Display Page
By Charles Johnson
Copyright 2001 LGF Web Design
All Rights Reserved.
http://littlegreenfootballs.com
This file may be freely distributed
as long as the credits and copyright
message above remain intact.
--------------------------------------------
*/
// Name of referrer log file
$reflog = "reflog.txt";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>Last 50 Referrers</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
body {
background-color: #FFFFFF;
}
p {
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 10px;
line-height: 14px;
color: #000000;
}
</style>
</head>
<body>
<?php
$rfile = file($reflog); // read the referrer log into an array
echo "<p>\n";
foreach ($rfile as $r) { // loop through the array
$r = chop($r); // remove trailing whitespace
if ($r <> "Direct request") echo "<a
href=\"$r\">$r</a><br />\n"; // if not
a direct request, link it up
}
echo "</p>\n";
?>
</body>
</html>
///////////////////////////////////
semaphore.ref:
empty file
///////////////////////////////////
reflog:
empty file
///////////////////////////////////
-kari t