Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   regulären Audruck gesucht (https://boardunity.de/regul-ren-audruck-gesucht-t2037.html)

chhe 19.06.2004 18:20

regulären Audruck gesucht
 
Hallo Leute

Ich suche wie der Titel schon sagt einen regulären Audruck der folgendes kann.

Er soll einen String nach verschiedenen Worten suchen und diese dann verlinken.
Es sollen aber nicht nur zum Beispiel das Wort: "Garten" gefunden werden sondern auch "Gartenhaus" oder "Vorgarten".

Mein Ansatz ist folgender:
PHP-Code:

function link_lexikon($string){

   
$query mysql_query("SELECT * FROM `lexikon` ORDER BY LENGTH(`begriff`) DESC");
    while(
$lexikon mysql_fetch_array($query)){
      
      
$string preg_replace("/([^ ]".$lexikon['begriff']."[^ ])/U""<a href=\"index.php?id=lexikon&suche=".$lexikon['begriff']."\">\\1</a> [L]"$string);
    }

 return 
$string;


Das funktioniert aber nicht so ganz wie ich will. Hat jemand eine andere Idee?

SChonmal vielen Dank für eure Hilfe

Gruß Chris

John Doe 19.06.2004 19:30

PHP-Code:

function link_lexikon($string){ 

    
$query mysql_query("SELECT * FROM `lexikon` ORDER BY LENGTH(`begriff`) DESC"); 
    while(
$lexikon mysql_fetch_array($query)){ 
       
        
$string preg_replace("/([a-z]*?".preg_quote($lexikon['begriff'])."[a-z]*?)/si""<a href=\"index.php?id=lexikon&suche=".$lexikon['begriff']."\">\\1</a> [L]"$string); 
    } 

    return 
$string



chhe 22.06.2004 15:38

So ganz funktionieren tut das auch noch nicht,

da das die Wörter immer noch trennt.

exe 22.06.2004 17:50

Meintest du das vielleicht so:

PHP-Code:

$string preg_replace("/\b([a-z0-9_'-]*?".preg_quote($lexikon['begriff'])."[a-z0-9_'-]*?)\b/i""<a href=\"index.php?id=lexikon&suche=".$lexikon['begriff']."\">\\1</a> [L]"$string); 


Mecca 20.07.2004 22:16

Off-Topic:
Ich würde dir empfehlen das mit der SQL abfrage grundsätzlich so zu
machen, dass das Script abbricht wenn mysql_query einen Fehler erzeugt.
Statt mysql_error() kannst du auch "fehlermeldung: blabla" eingeben.


PHP-Code:

function link_lexikon($string){ 
// Den Sql befehl in einer variable speichern. Ist praktischer ;)
$sql "SELECT * FROM `lexikon` ORDER BY LENGTH(`begriff`) DESC";
// ENTWEDER er führt den mysql befehl aus OR er bricht und gibt mysql_error aus
$query mysql_query($sql); OR die(mysql_error());
    while(
$lexikon mysql_fetch_array($query)){ 
 
undsoweiter undsofort... 



Alle Zeitangaben in WEZ +1. Es ist jetzt 16:53 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25