php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.05.2007, 19:38  
Neuer Benutzer
 
Registriert seit: 29.05.2007
Beiträge: 7
DeMoehn
Standard Text nach bestimmten Wörter absuchen und ersetzen

Hey Jungs.
Wörter aus einem Text heraussuchen ist an sich kein Problem.
Das löse ich wie folgt.
PHP-Code:
<?php 
        $wordsArr 
= array('/Hallo/''/du/''/test/');
        
$ersetzungArr = array('[url="index.php?who=hallo"]Hallo[/url]','[url="index.php?who=du"]DU[/url]','[url="index.php?who=blop"]TEST[/url]');
        
$text "Hallo.
 Ich wollte nur sagen du bist ein einzigartiger test! dubidu"
;
        
$text preg_replace($wordsArr$ersetzungArr$text);
        echo(
$text);
    
?>
Bin allerdings noch nie mit diesen Suchparametern (/, usw.) klar gekommen.
Das Problem ist, das er nach diesem Script beispielsweise auch "dubidu" unterstreichen würde.

Kann mir da jemand helfen?
Wäre wunderbar, Greetz DeMoehn
Mit Zitat antworten
DeMoehn ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.05.2007, 19:51  
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

Hallo DeMoehn und Willkommen unter 'uns Jungs'
Das wichtigste bei reg. Ausdrücken ist zu definieren, was man eigentlich genau erreichen möchte. Die Pattern Syntax kennt bspw. die sog. word boundary ( \b ), die angibt, dass die Suche nur vollständige Worte erkennen soll. Für genauere Hinweise bedarf es aber weiterer Infos deinerseits.
Übrigens würde der Code oben wohl nur 'du' und 'du' aber nicht 'dubidu' unterstreichen (genauer: als Link ausgeben)

EDIT: Bis auf den dritten Fall Deines Beispiels läßt sich die Funktion dahingehend zusammenfassen, dass der jeweils unterstrichene Begriff auch als Link-Parameter verwendet wird. Würde hier ein klar abzubildender Zusammenhang bestehen, ließe sich Dein Beispiel wesentlich vereinfachen. Aber wie gesagt, dazu muß erst die Funktion definiert werden.
nikosch ist gerade online  
Alt 30.05.2007, 14:52  
Neuer Benutzer
 
Registriert seit: 29.05.2007
Beiträge: 7
DeMoehn
Standard

Vielen dank für die Antwort.
Und ja, es soll der zu suchende Begriff auch als Link angegeben werden.
DeMoehn ist offline  
Alt 30.05.2007, 15: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

Auch wenn Du die Sache etwas passiv anzugehen scheinst, gibts heute mal ne Lösung gratis. Wenn Du irgendwann mit diesen Suchparametern (/, usw.) klar[...]kommen möchtest, solltest Du Dich aber auch aktiv mit den Ausdrücken auseinandersetzen. Das php Manual gibt schon einige Hinweise unter dem preg Funktionsindex.
Versuch mal das folgende Bsp. nachzuvollziehen. Die Arrays wurden reduziert, dafür die Funktion AddDelims eingeführt, die erst einen vollständigen reg. Ausdruck aus den Arrayelementen macht. Kannst das Ganze ja noch an Deine Bedürfnisse anpassen.

PHP-Code:
<?php

$text     
'Hallo.
 Ich wollte nur sagen du bist ein einzigartiger test! dubidu'
;
$sReplace '[url="index.php?who=$1"]$1[/url]';

$aWords = array (
                
'Hallo' 
                
'du'    
                
'test'
                
);

function 
AddDelims ($string)
  {
  return (
sprintf ('#\b(%s)\b#' $string));
  }

$aWords array_map ('AddDelims' $aWords);
$text preg_replace ($aWords$sReplace $text);
echo (
$text);
?>
nikosch ist gerade online  
Alt 30.05.2007, 15:44  
Neuer Benutzer
 
Registriert seit: 29.05.2007
Beiträge: 7
DeMoehn
Standard

Vielen Dank für die schnelle Hilfe.
Eine Lösung gratis hab ich grad nicht verlangt, ist natürlich super aber ein weiterer Tipp wäre auch klasse gewesen.

Naja ich muss mir diese Suchparameter mal genauer ansehn das ist einfach noch ein unbeschriebenes Blatt für mich, komm damit gar nicht klar.

Thx, DeMoehn
DeMoehn ist offline  
Alt 30.05.2007, 15:52  
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

Okay, mein Fehler. Deine vorletzte Antwort war so kurz und die Tipps eigentlich schon alle gegeben...
Hier noch die Links nachgereicht:
http://www.php.net/manual/en/referen....modifiers.php
http://www.php.net/manual/en/referen...ern.syntax.php

Ich habe meine ersten Schritte mit regExpr. übrigens mit Perl gemacht, einen kleinen Einstieg findest Du bei SelfHTML:
http://de.selfhtml.org/perl/sprache/regexpr.htm
nikosch ist gerade online  
 


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
Spezielle aus Text nehmen, ersetzen und Teil aus dem Text... BartTheDevil89 PHP Tipps 2008 11 09.10.2007 15:31
CSS - Bild im div container überlappt andere container Buschdieb HTML, Usability und Barrierefreiheit 13 19.07.2007 23:17
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] Bestimmten Text in einer Spalte ersetzen Datenbanken 3 13.07.2005 13:59
[Erledigt] durch Klick auf Text anderen Text einblenden HTML, Usability und Barrierefreiheit 3 03.07.2005 14:41
[Erledigt] DIV´s wollen nicht wie ich das will :-) HTML, Usability und Barrierefreiheit 22 28.03.2005 18:36
Text an einen bestimmten Punkt innerhalb der Grafik setzen HTML, Usability und Barrierefreiheit 2 02.03.2005 18:46
Text nach bestimmten Wort trennen themonk PHP Tipps 2005 9 08.01.2005 21:43
wie kann ich mit php text ersetzen? PHP Tipps 2004 6 30.10.2004 12:45
[Erledigt] includ. Text ersetzen ohne vars PHP Tipps 2004 3 13.09.2004 23:16
txt-Datei erstellen d-81 PHP Tipps 2004 12 11.08.2004 20:31
[Erledigt] Text-Smilies im Text durch Bild ersetzen, wie? PHP Tipps 2004 8 20.07.2004 13:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
perl wörter ersetzen, http://www.php.de/php-tipps-2007/44114-text-nach-bestimmten-woerter-absuchen-und-ersetzen.html, wörter die sagen ersetzen, perl wort ersetzen, wörter die das wort sagen ersetzen, wörter ersetzen perl, php text nach wörtern absuchen, perl ganzes wort ersetzen, php wörter ersetzen, perl wort suchen ersetzen, welches wort ersetzt kentnisse?, perl string suchen ersetzen, bestimmtes wort in string suchen, mehrere verschiedene worte im text ersetzen php, wort durch link ersetzen php, php bestimmte wörter ersetzen, text mit bestimmten wörtern, wort mit perl ersetzen, wörter im text erstzen perl, perl string suchen und ersetzen

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