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:
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. |