Aufgrund der in der Anzeige begrenzten Länge der Namen und angeregt durch die Funktion
Seiten Bennennung bei der zwar der ursprüngliche Begriff vollständig gespeichert, für die Anzeige dann aber gegen den Ersatzbegriff ausgetauscht wird, habe ich folgende kleine Erweiterung geschrieben:
In einer Datei
config/site_name_+_referer_str_replace.txt werden jeweils in einer Zeile ein
zu ersetzender Begriff, das Trennzeichen "
|", der
ersetzende Begriff und ggf. noch ein Trennzeichen "
|" mit einem
internen Kommentar angegeben. Die Begriffe können unterschiedlich lang sein, bzw. der zweite kann auch entfallen. Die Pflege kann mit
Editor erfolgen.
Beispiel-
Code:%20| |durch BLANK ersetzen
_.php?o=||Begriff entfernen
A/http://|http://|A/ vor http:// entfernen
A/TWG/index.php?twg_album=Saison 2009/09-07-04 EM Holten&|~S09/090704/
Es werden soweit vorhanden auch mehrere Teilbegriffe in einen Seitennamen ausgetauscht, bzw. entfernt. Dieses geschieht vor der Speicherung, sodaß der sich neu ergebende Begriff nicht nur angezeigt, sondern auch so gespeichert wird und damit wieder einmalig ist.
Dafür sind folgende Erweiterungen von
func/func_pattern_matching.php notwendig (blau=vorhandene Zeilen, rot einzufügende Zeilen).
am Anfang:
...
function pattern_matching ( $meta , $value )
{
### im Seitennamen bzw. Referer ggf. Teilstrings "von" durch "nach" ersetzen, lt. Datei config/_site_name_+_referer_strg_replace.inc
if(($meta=="site_name")||($meta=="referer")){$value=str_replace($GLOBALS["von"],$GLOBALS["nach"],$value);}
//------------------------------------------------------------------
if ( $GLOBALS [ "db_active" ] == 1 )
...
und am Ende:
...
//------------------------------------------------------------------------------
// get all replace names and put them in global array's
$i=-1;
$pattern_file = fopen ( "config/site_name_+_referer_str_replace.txt" , "r" );
while ( !FEOF ( $pattern_file ) )
{
$pattern_file_entry = fgetcsv ( $pattern_file , 6000 , "|" );
if ( $pattern_file_entry [ 0 ] != "" )
{
$i++;
$von [$i] = $pattern_file_entry [ 0 ];
$nach[$i] = $pattern_file_entry [ 1 ];
}
}
fclose ( $pattern_file );
unset ( $pattern_file );
?>
Nach meinem Beispiel für das Zählen von Link-Aufrufen
http://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl?num=1246102785/0#0wird dabei aus
A/_.php?o=http://www.triathlon...
der neue Begriff
http://www.triathlon-niedersac...
oder auch
http://triathlon-niedersachsen.de www.triathlon-niedersachsen.de triathlon-niedersachsen.de
Erweiterungsmöglichkeiten um Wildcard-Funktionen und Text-Anfang/Ende Kennzeichen wären möglich, erfordern jedoch eine komplexere Austausch-Routine.
z.B. von:
>xxx< (Begriff kann (muß nicht) innerhalb des Textes stehen)
xxx< (nur Begriff am Textanfang wird berücksichtigt)
>xxx (nur Begriff am Textende wird berücksichtigt)
xxx (Begriff entspricht dem vollständigen Text)
>>xxx< (Begriff darf nicht am Angang stehen, es darf jedoch Text folgen)
... und alle weiteren Kombinationen ...
z.B. nach:
>xxx< (Textteile vor und nach dem Begriff bleiben erhalten)
xxx< (Text vor dem Begriff fällt weg)
>xxx (Text nach dem Begriff fällt weg)
xxx (neuer Text besteht nur aus dem ersetzenden Text)
z.B. Widcards:
?,*,%,# mit üblichen Funktionen