php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.07.2009, 20:02  
Neuer Benutzer
 
Registriert seit: 29.06.2009
Beiträge: 3
PHP-Kenntnisse:
Anfänger
infinity befindet sich auf einem aufstrebenden Ast
Standard Globales Skript für Glossar?

Hallo zusammen, ich möchte mich erstmal kurz Vorstellen

Seit 2 Jahren betreibe ich ein Hardware-Board was auch eigentlich ganz gut besucht ist, nur in letzter Zeit und durch weiterbildung der "Stammuser" herscht eigentlich nurnoch "Fachdeutsch" sozusagen. Ich bekomme teilweiße auch Mails wie man den FSB Takt unter Vista einstellt usw. Deshalb muss ich endlich mal ein Glossar machen, um den Leute die Chance zu geben auch schlauer zu werden.

Ich gestehe gleich zu beginn, ich habe noch nicht den größten Plan von PHP und dessen Funktionsumfang. Ich kann jedoch die Grundlagen aus C/C++ und wollte nun ein Skript für meine Seite machen, das aus jedem Wort welches auf meiner Webseite vorkommt und gleichzeitig auch in einer Datenbank vorhanden ist einen dieses Wort in einen Link einfügt.

Habe eine Datenbank mit 3 Spalten.

1 - Identifier
2 - Wort
3 - Link zur genauen Definition

Wenn ich jetzt einen Text habe auf meiner Seite zB.

HTML-Code:
<p>Der hochleistungs CPU von Intel</p> 
Soll das Skript folgendes machen...

Es sieht das Wort CPU und dieses ist auch in der Wortdatenbank vorhanden.

Daraus sollte soetwas entstehen:

PHP-Code:
<?php 
<p>Der hochleistungs <class="glossar" href="$consturl/$wordurl">$wordsync</a>
?>
Den rest wuerde ich schon irgendwie hinbiegen, nur wie kann ich es machen das dieses Skript einfach jedes Wort in einer PHP Datei überprüft und dann verlinkt. Ich habe so das bedenken das es nicht möglich ist da meine ganze Seite eigentlich Dynamisch ist und erst zur Laufzeit eig. "erstellt" wird ... wieder durch Texte die in der Datenbank sind.

Falls es irgendwie geht oder ihr Tipps habt, kann mir jemand vielleicht die Syntax oder Funktion dazu geben um zu überprüfen ob ein Wort in einer Datei auch in einer MySQL Tabelle vorkommt? Rest schaff ich dann selber irgendwie, hoffe ich ;D

Viele grüße, infinity!
infinity ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.07.2009, 20:07  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Das dunamische ist gerade günstig.

Schau dir mal an

explode bzw. preg_split
in_array bzw. array_search falls Du die komplette DB auslesen willst
implode
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 09.07.2009, 20:19  
Neuer Benutzer
 
Registriert seit: 29.06.2009
Beiträge: 3
PHP-Kenntnisse:
Anfänger
infinity befindet sich auf einem aufstrebenden Ast
Standard

Coole sache, da hat auch jemand das Glossar (PHP) im Kopf :P

Ich werd das dann mal ausprobieren und dann hier das fertige Skript (falls ich es darf) veröffentlichen. OpenSource usw. kann dann jeder bei sich einbinden und einfach per Datenbankzugriff auf meine meine Lokale DB, denke mal das sollte sicher sein *grins*. Mit Updategarantie hehe...

Danke nikosch für den HInweis auf die Funktionen!
infinity ist offline  
Alt 09.07.2009, 20:24  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Hast du mal geschaut obs für dein Board vielleicht schon ein passendes Plugin gibt? Das ganze performant zu lösen ist nicht unbedingt eine einfache Aufgabe.

Ganz billig (ganz oben in die index.php)

PHP-Code:
ob_start(function($buffer) {
    
//suchbegrife aus DB auslesen
    
$terms = array('FSB','ACPI','SSD');
    
    foreach(
$terms AS $term) {
        
$buffer preg_replace('~('.$term.')~i','<a href="'.$term.'">\1</a>',$buffer);
    }
    
    return 
$buffer;
}); 
und fertig. Das Script macht aber auch vor HTML Tags und sowas wie <head> und co nicht halt. Also es kann passieren das <title>FSB</title> <title><a href="">FSB</a></title> wird, oder <a href="http://www.fsb.de"> <a href="http://www.<a href="">FSB</a>.de"> Aber dafür würst du sicher eine Lösung finden
erc ist offline  
Alt 09.07.2009, 20:36  
Neuer Benutzer
 
Registriert seit: 29.06.2009
Beiträge: 3
PHP-Kenntnisse:
Anfänger
infinity befindet sich auf einem aufstrebenden Ast
Standard

Mein Board ist "selbstgeschrieben" worden durch die 2 Webdeveloper in meinem Team. Der erste sitzt aber leider wegen §202a StGb und kommt erst in 3 Monaten zurueck und der 2. kann leider kein PHP.

Dachte es sei eigentlich relativ leicht, mal sehen, will ja früher oder später sowieso PHP erlernen.

Reicht es nicht aus wenn ich die Funktion extern include? #include <> sollte doch gehen hoffe ich. Nur wie mache ich das, dass dieses Skript Automatisch jede Datei im htdocs Ordner auf übereinstimmungen der Wörter überprüfe? Das ist leider kein VB Board wo es nur eine Index gibt - sondern ein Newsportal, Hardwaredatenbank, Testberichte und Forumdiskussionen. ;(
infinity ist offline  
Alt 09.07.2009, 20:53  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Zitat:
Zitat von infinity Beitrag anzeigen
Dachte es sei eigentlich relativ leicht, mal sehen, will ja früher oder später sowieso PHP erlernen.
Relativ ist ebend relativ. Die paar Zeilen die ich gepostet haben machen schon das was du ungefähr willst, aber bringen auch neue Probleme mit. Wie gesagt das ersetzen passiert unkontrolliert, und aus sich der Performance ist das keine optimale Lösung.

Zitat:
Zitat von infinity Beitrag anzeigen
Reicht es nicht aus wenn ich die Funktion extern include? #include <> sollte doch gehen hoffe ich. Nur wie mache ich das, dass dieses Skript Automatisch jede Datei im htdocs Ordner auf übereinstimmungen der Wörter überprüfe? Das ist leider kein VB Board wo es nur eine Index gibt - sondern ein Newsportal, Hardwaredatenbank, Testberichte und Forumdiskussionen. ;(
Ja das geht auch... aber in PHP sieht der include Syntax ein wenig anders aus als in c. Die Funktion muss aber vor der Ausgabe includet werden. ob_start() erzeugt ein Ausgabebuffer, alles was per echo und co Ausgegeben wird ladet im Speicher und beim beenden des Scriptes wird dieser Buffer an die Funktion übergeben und die Ausgabe nach den Suchbegriffen durchsucht und ersetzt.
erc ist offline  
Alt 09.07.2009, 22:26  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
§202a
Das ist quasi die Gangster-Adelung wie bei anderen Hoods der Raubüberfall? AKW Jülich lässt grüssen
Der Hackerparagraf ist allerdings Chapter c)

Es stimmt schon, es ist nicht ganz trivial. Bei der einen Lösung (Befehle oben) würdest Du alle Zuordnungen Suchwort => Link aus der DB laden und in einem Array speichern. Dann einen Code ähnlich erc's über Deine Content-Variable schicken.

Variante 2: Du liest Deinen Content wortweise in ein Array (entfernst dabei Satzzeichen und Stoppwörter) und gleichst diese Liste dann in einer Abfrage mit der Datenbank ab. Das ergebnis kannst Du dann wie in 1/ oder direkt über das Wörterarray umsetzen.

Die Problematik an beiden Lösungen ist der Overhead, der durch
1/ zuviele Wörter die nicht im Text vorkommen bzw.
2/ zuviele Wörter die keine Schlagwörter sind (nicht in der DB vorkommen)
entsteht
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 10.07.2009, 11:41  
Erfahrener Benutzer
 
Benutzerbild von Phoscur
 
Registriert seit: 01.12.2008
Beiträge: 450
PHP-Kenntnisse:
Fortgeschritten
Phoscur wird schon bald berühmt werdenPhoscur wird schon bald berühmt werden
Standard

Ich würde das Problem nicht mit PHP lösen, da es einfach unperformant wird. Was hälst du davon, dem Browser des Users diese Aufgabe aufzubürden?
Die Lösung wäre dann JavaScript, schickst einfach dein gesamtes Glossar an den Browser und lässt JS möglichst in einer Regex die ganze Seite umformatieren.
Wenn die Glossardatenbank größer wird, wäre es sinnvoll das Glossar zwischenzuspeichern, damit du es nicht jedesmal neu schicken musst. Das wird allerdings um einiges komplizierter...
Momentan würde ich im Header oder Footer ein Skript einbinden, für den Zwischenspeicher brauchst du wahrscheinlich AJAX und oder Frames.
__________________
Phoscur ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
perl skript aus php skript aufrufen axmuellser PHP Tipps 2009 1 16.04.2009 17:59
PHP Skript ausführen max-dhom PHP Tipps 2008 5 13.04.2008 12:39
Skript auf einem anderen Server! aha_01 PHP Tipps 2008 3 05.12.2007 09:02
Startup Skript m_haussner Datenbanken 3 10.10.2007 20:56
.htpasswd (im geschützten Ordner!) per skript ändern! Funky_ PHP Tipps 2006 8 22.07.2006 18:03
ein Skript startet ein zweites... ajo_silent PHP-Fortgeschrittene 8 03.05.2006 13:42
Glossar mit MySQL Abfrage PHP Tipps 2006 1 23.01.2006 10:09
Skript &amp;amp;amp;quot;tarnen&amp;amp;amp;quot;? Off-Topic Diskussionen 17 07.08.2005 19:42
Ein php skript aus einem anderen skript heraus aufrufen PHP Tipps 2005-2 8 06.08.2005 20:23
Javascript - CountUP Skript zählt falsch.. Chr!s HTML, Usability und Barrierefreiheit 0 28.03.2005 14:32
[Erledigt] php skript ruft anderes php skript auf PHP-Fortgeschrittene 7 09.01.2005 23:06
[Erledigt] problem mit login skript | mysql | cookie PHP Tipps 2004-2 13 07.12.2004 19:01
SKRIPT GESUCHT - Werbung auf einer site anzeigen Beitragsarchiv 4 29.08.2004 14:07
Skript Meldeformular PHP Tipps 2004 8 27.07.2004 18:00
[Erledigt] Php skript upload problem! PHP Tipps 2004 2 30.06.2004 00:06

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php glossar, php glossar code skript

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum