php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.10.2006, 17:37  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard Text vor und hinter Suchergebnis

Hallo ihr,

kann mir jemand verraten wie ich z.B. ca. 30 Zeichen vor dem jeweiligen
Suchbegriff und ca. 30 nach dem Suchbegriff in die Ausgabe bekomme,
damit man den Kontext ggf. erschließen kann? Wörter sollten nicht
abgeschnitten werden. Dann noch solche Probleme, dass dieses Wort
auch öffter im Text vorkommen könnte oder direkt am Anfang steht.

Also Bsp. Suche nach "Zeichen", dann sollte die Ausgabe so aussehen.
...jemand verraten wie ich z.B. 30 Zeichen vor dem jeweiligen
Suchbegriff...

Ich bin mir da nicht so richtig sicher wie das zu machen ist. Sich nur den Text
in dem das gesuchte Wort vorkommt ausgeben zu lassen ist kein Problem,
aber bei dem das was ich mir in den Kopf gesetzt habe bin ich mir nicht
sicher. Vielleicht hat jemand einen Tipp für mich.

Grüße
Tine
tinchen ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.10.2006, 17:51  
Erfahrener Benutzer
 
Registriert seit: 07.07.2005
Beiträge: 150
sysop
sysop eine Nachricht über ICQ schicken
Standard

PHP-Code:
    function mk_vor_schau($txt,$suche,$laengeAnzeigeText=180)
    {
        
$suchen $suche;
        
$txt html_clean($txt);
        
$txt mutate($txt);

        
$xpos strpos(strToLower($txt),strToLower($suchen),0);

        if(!empty(
$xpos))
        {
            
$start = ($xpos 60 ) ? $xpos-60;
            
$len =strlen($suchen);
            
$tx substr($txt,$start,$laengeAnzeigeText);
            
$pos strpos(strToLower($tx),strToLower($suchen),0);
            
$tx1 =  substr($tx,0,$pos);
            
$tx2 =  substr($tx,$pos,$len);
            
$tx3 =  substr($tx,($pos $len));
            
$tx =$tx1.'[b]'.$tx2.'[/b]'.$tx3;
            
$tx "...".substr($tx,strpos($tx," "));
            
$tx substr($tx,0,strrpos($tx," "))."...
\n"
;
// formatierte ausgabe setzen
            
$tx '<p align="right"><table class="tbl1" width="90%" border="1"><tr><td bgcolor="#FFFFFF"><span class="small"><font color="black">'.$tx.'</font></span></td></tr></table></p>';
        }
        else 
$tx '<p align="right"><table class="tbl1" width="90%" border="1"><tr><td bgcolor="#FFFFFF"><span class="small"><font color="black">...'.substr($txt,0,$laengeAnzeigeText).'...</font></span></td></tr></table></p>';
        return 
$tx;
    } 
verwende ich um eine vorschau bei der suche zu erzeugen. aufgerufen wird das so:
echo '
'.mk_vor_schau(text_in_dem_das_gefundene_steht,suc hbegriffe,optionale_text_länge);

style-angaben habe ich drinnen gelassen. html_clean und mutate sind funktionen, die mir html-code entfernen und ausführbaren code eleminieren. wenn du möchtest, liefere ich das auch nach, ansonsten solltest du das eventuell an deine bedürfnisse anpassen.
__________________
gruss sys
sysop ist offline  
Alt 14.10.2006, 18:10  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Woran scheiterts denn?
strpos(), substr(), ..
Zergling-new ist offline  
Alt 14.10.2006, 18:34  
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

als ansatz:
mit strpos die Zeichenposition bestimmen, dann jeweils x Zeichen abziehen oder y draufrechnen und mit strrpos bzw. strpos das vorherige/nächste Leerezeichen suchen. Die neuen Positionen in substr einfließen lassen und abschnibbeln.
Wie sysop strtolower() für die Suche zu benutzen ist zumindest ohne regExp. wohl auch ne gute Idee. Unter php5 gibts dann stripos und strripos... Viel Erfolg.
nikosch 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
JavaScript/PHP: qooxdoo 0.7.1 - Teil 1 : Eine Einführung Zergling-new Tutorials 6 25.01.2008 10:41
JavaScript: Text Area: Scrollen zu einer Zeile im Text SvenLittkowski HTML, Usability und Barrierefreiheit 13 28.11.2007 16:31
CSS - Bild im div container überlappt andere container Buschdieb HTML, Usability und Barrierefreiheit 13 19.07.2007 23:17
MySQL-Volltextsuche SvenLittkowski Datenbanken 6 14.06.2007 19:58
spalte rechts ausrichten, text aber trotzdem linksbündig Crypi HTML, Usability und Barrierefreiheit 5 14.09.2006 11:35
CSS - Design (clear - Problem) HTML, Usability und Barrierefreiheit 7 21.12.2005 14:55
Text aus der DB verteilen PHP Tipps 2007 17 16.11.2005 12:04
[Erledigt] Link PHP Tipps 2005-2 10 20.07.2005 21:28
[Erledigt] DIV´s wollen nicht wie ich das will :-) HTML, Usability und Barrierefreiheit 22 28.03.2005 18:36
frames probleme HTML, Usability und Barrierefreiheit 6 18.01.2005 02:33
[Erledigt] Bild hinter den Text stellen HTML, Usability und Barrierefreiheit 12 07.01.2005 18:38
Per Button Text formatieren Igäl HTML, Usability und Barrierefreiheit 1 11.11.2004 06:25
Javascript: Text einfügen geht nich über "javascript:BL HTML, Usability und Barrierefreiheit 14 19.10.2004 21:44
Zeilenumbrüche aus einem formatierten Text entfernen woods PHP Tipps 2004 9 23.09.2004 12:50
txt-Datei erstellen d-81 PHP Tipps 2004 12 11.08.2004 20:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
suchergebnis text, php string mehrfach suchen zeichen dahinter ausgeben, text vor und hinter suchwort php, zusatztext bei suchergebnissen, php vor und hinter einem wort, php suchergebnisse suchwort, strtolower javascript, php vor und hinter, suchergebnis php vor hinter, php suchen vor hinter

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:18 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.