PHP-Web-Stat Support Forum
https://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl
Board (Deutsch) >> Vorschläge & Codeschnipsel >> Teilbegriffe in  site_name  und  referer ersetzen
https://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl?num=1250003111

Beitrag begonnen von hr3 am 11.08.09 um 17:05:10

Titel: Teilbegriffe in  site_name  und  referer ersetzen
Beitrag von hr3 am 11.08.09 um 17:05:10
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/[/code]
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#0
wird 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

Titel: Re: Teilbegriffe in  site_name  und  referer ersetzen
Beitrag von Rolfrioja am 15.02.10 um 20:09:05
Wie man in meinem Beitrag: http://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl?num=1231706919/1#1 lesen kann, sind meine Seiten in 3 Sprachen gehalten. In der Regel interessiert mich jedoch nicht der Zugriff
der einzelnen Seite einer bestimmten Sprache.  Zzt. nenne ich drei Seiten in einen Namen um. Bei meinem Volumen von ca. 400+ Seiten mal 3 (Sprachen) ergeben das über 1200 Eintragungen. 

Somit wäre die hier aufgezeigte Lösung wohl (fast) das Ideale für meine Seite  ::) und ich würde mir 2/3 der Eintragungen ersparen. ;D

Leider sind meine php-Kenntnisse nicht so ausgeprägt  :D um nicht zu sagen, ich blicke da nicht so ganz durch,  :o dass ich von mir selber diese Änderung nicht durchführen kann.


Wäre es nicht eine Überlegung wert diese Änderung in (einer) der nächsten Version(en) einzubauen.... ;)


Titel: Re: Teilbegriffe in  site_name  und  referer ersetzen
Beitrag von Reimar am 20.02.10 um 15:42:30
Sehr interessante Idee, nehmen wir mal mit auf die Todo Liste

Titel: Re: Teilbegriffe in  site_name  und  referer ersetzen
Beitrag von hr3 am 14.03.10 um 10:01:59
Es geht noch einfacher, flexibler, besser ... (man muß auch dazu lernen können)   ;)

http://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl?num=1268556506

Titel: Re: Teilbegriffe in  site_name  und  referer ersetzen
Beitrag von Rolfrioja am 02.07.10 um 19:53:57
Hallo,
ich hatte mich schon darauf gefreut dass mein Problem mit der Version 4.3 gelöst wird......

Habe nun diese Teilbegriffe eingegeben  aber sie werden nicht erkannt.

Vorher Seitenunbennenung:
de/category_1_1_de.html|Barcelona-Model
en/category_1_1_en.html|Barcelona-Model
es/category_1_1_es.html|Barcelona-Model
de/region_1_de.html|Barcelona - V.I.P.& News
en/region_1_en.html|Barcelona - V.I.P.& News
es/region_1_es.html|Barcelona - V.I.P.& News

hat zwar funktioniert, aber ich musste 3 Zeilen für jeden Begriff eingeben.


nun habe ich bei der Teilbezeichnung eingegeben:
category_1_1|Barcelona-Model
region_1|Barcelona - V.I.P.& News


das funzt bei mir nicht....

es werden die original Adressen angegeben:
de/category_1_1_de.htm
en/category_1_1_en.html
es/category_1_1_es.html
de/region_1_de.html
en/region_1_en.html
es/region_1_es.html

... habe ich da was falsch verstanden oder falsch eingegeben?

Danke




Titel: Re: Teilbegriffe in  site_name  und  referer ersetzen
Beitrag von hr3 am 02.07.10 um 20:59:02
Ja.

Das Ersetzen von Teilbegriffen passiert im Moment der Speicherung. Es ist nicht so, dass der komplette Begriff ersetzt wird, wenn ein Teilbegriff gefunden wird, sondern, dass der Teilbegriff durch einen neuen ersetzt wird, wobei mehrere Teilbegriffe pro Seiteninformation möglich sind.

In deinem Fall könnte es so aussehen:
de|
en|
es|
um den Länder-/Sprachcode zu entfernen und dann auch über Teilbegriff oder SeitenBenennung
/category_1_1_.html|Barcelona-Model
/region_1_.html|Barcelona - V.I.P.& News

Titel: Re: Teilbegriffe in  site_name  und  referer ersetzen
Beitrag von Rolfrioja am 07.07.10 um 14:04:11

hr3 schrieb am 02.07.10 um 20:59:02:
Ja.

In deinem Fall könnte es so aussehen:
de|
en|
es|
um den Länder-/Sprachcode zu entfernen und dann auch über Teilbegriff oder SeitenBenennung
/category_1_1_.html|Barcelona-Model
/region_1_.html|Barcelona - V.I.P.& News


Danke für die Antwort, leider konnte ich nicht früher antworten.

Habe wie angegeben Dein Beispiel eingetragen.
Resultat :
es/region_1_es.html            
es/region_4_es.html
es/category_4_1_es.html
es/category_1_1_es.html

... seh ich da mal wieder den Wald vor lauter Bäumen nicht?

Danke

Titel: Re: Teilbegriffe in  site_name  und  referer ersetzen
Beitrag von hr3 am 07.07.10 um 14:11:31
Mit Resultat meinst du neu erzeugte Sätze nach dieser Änderung?

Ist es möglich, dass du mir per PN die Zugangsdaten zu deiner Statistik zusendest?

Titel: Re: Teilbegriffe in  site_name  und  referer ersetzen
Beitrag von hr3 am 07.07.10 um 16:52:38
Hab mal ein Beispiel erstellt. Die Datensätze von 16:42 sehen doch richtig gut aus.

Das Problem lag primär an "de|". Damit wird z.B. auch aus "/details..." der Begriff "/tails...".

Entweder darauf aufsetzen oder anders definieren.

Die ersten 4 von mit eingestellten Datensätze aus der Definition bewirken das gleiche wie die zweiten vier.

Satz 10 und 11 lösen die zweite Anforderung.

Satz 13-15 habe ich durch die Ergänzung deaktiviert. Diese 2 Buchstabenkopmbinationen am Anfang der Definition bringt vieles durcheinander.

Mein Vorschlag: Schritt für Schritt vorgehen und jeweils kontrollieren, ob der gewünschte Effekt eintritt.

Lösung ohne Zugang wäre vermutlich viel schwiegiger gewesen.

Du kannst das Kennwort wieder ändern.

Titel: Re: Teilbegriffe in  site_name  und  referer ersetzen
Beitrag von Rolfrioja am 08.07.10 um 13:01:51
Danke...

... scheint aber wohl doch eine etwas schwierigere bzw. kompliziertere Aktion in meinem Fall zu sein.

Ich bin ehrlich... "so richtig blicke ich da nicht durch"  :o
Z.B. wird mir, obwohl in der Seitenunbenennung so angegeben:
index.html|Inicio-General   wie folgt angezigt:
index. :D

Titel: Re: Teilbegriffe in  site_name  und  referer ersetzen
Beitrag von hr3 am 08.07.10 um 13:49:35
Bitte etwas mehr Geduld und Eigeninitiative.
Meine Empfehlung war Schritt für Schritt. Von dem ersten und zweiten Block mit jeweils 4 Zeilen solltest du einen löschen.

Aber jetzt zu diesem konkreten "Problem".
Die index ist anscheinend keine .html sondern eine .php und wird durch die Anweisung php| zu index.
Dieser Begriff kann dann natürlich nicht mehr durch index.html|Inicio-General umgesetz werden.
Entweder indexl|Inicio-General oder php| weglassen bzw. anders definieren.
Wie dann aussieht siehe Eintrag 13:42 Uhr.

PHP-Web-Stat Support Forum » Powered by YaBB 2.5.2!
YaBB Forum Software © 2000-2012. Alle Rechte vorbehalten.