SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 20.02.2005, 18:09:12
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
regulärer Ausdruck

Man ich nerve dieses Forum ja extrem ^^

Ich möchte vor und nach einem Suchtreffer 25 Zeichen mit ausgeben lassen.

Mein regulärer Ausdruck lautet:

eregi("^.{0-50}".$suchbegriff.".{0-50}^",$inhalt , $regs);

$regs[1] sollte der erste Treffer sein, der ausgegeben wird.

Die Zeichen vor und nach dem $suchbegriff können alle zeichen sein.

Ich hoffe einer kennt sich damit aus ^^

Ich bekomme nur folgenden Fehler:

Warning: eregi() [function.eregi]: REG_BADBR in .......includes/suche.inc.php4 on line 30

Gruß,
nivRam
Mit Zitat antworten
  #2  
Alt 20.02.2005, 18:49:43
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: regulärer Ausdruck

hi,

versuch es mal so (ist nicht getestet):
PHP-Code:
preg_match('/.{0,25}'.$suchbegriff.'.{0,25}/'$str$match);
print 
$match[0]; 
wenn $str = 'selfphp ist echt cool', und $suchbegriff = 'echt' ist, ist $match[0] = 'selfphp ist echt cool'. ist $str = 'das ganze projekt selfphp ist nicht nur echt cool, sondern auch der absolute wahnsinn' dann ist $match[0] = 'kt selfphp ist nicht nur echt cool, sondern auch der a'. so sollte es zumindes ablaufen :-)
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #3  
Alt 20.02.2005, 18:56:03
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
AW: regulärer Ausdruck

Okay, es funktioniert.
Sehe ich das richtig, das bei Index 0 der erste, bei 1 der zweite Treffer usw. drinsteht?

Besten Dank schonmal..

Gruß,
nivRam

edit: Wenn wir das mit den Zeichen machen, kann man das auch einbauen das er bis sagen wir 25 vor und nach guckt und dann aber ein Leerzeichen da stehn muss??
Es kann ja sein das wie gesagt es so anfängt ...a ist meine Mutter. "Mama ist meine Mutter" ^^
Da ich aber kein einzelnen Buchstaben dastehen haben will, soll er 25 Zeichen und dann nur ein komplettes Wort nehmen!

Geändert von nivram (20.02.2005 um 19:08:11 Uhr)
Mit Zitat antworten
  #4  
Alt 20.02.2005, 19:11:52
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: regulärer Ausdruck

nein, die variable $match wird von preg_match immer als array definiert, in diesem fall ist das array aber immer nur ein element groß. in anderen fällen, wenn teil-treffer gefordert sind z.b. so:

PHP-Code:
$str 'das ganze projekt selfphp ist nicht nur echt cool, sondern auch der absolute wahnsinn!';
$suchbegriff 'echt';

preg_match('/(.{0,25})('.$suchbegriff.')(.{0,25})/'$str$match); 

print 
$match[0]; // 0-25 zeichen $suchbegriff 0-25 zeichen
print $match[1]; // 0-25 zeichen vor $suchbegriff
print $match[2]; // $suchbegriff
print $match[3]; // 0-25 zeichen nach $suchbegriff 
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #5  
Alt 20.02.2005, 19:37:24
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
AW: regulärer Ausdruck

Ok, das mit den Leerzeichen habe ich auch hinbekommen!

Mein Ausdruck sieht nun so aus:

preg_match('/[ ].{0,100}'.$suchbegriff.'.{0,100}[ |.]/', $inhalt, $match);

Kann es sein das preg_match auf Groß und Kleinschreibung achtet?
Wie kann ich das ganze mit eregi machen? Weil das geht nich.. oder ich hab was falsch gemacht!

Gruß,
nivRam
Mit Zitat antworten
  #6  
Alt 20.02.2005, 20:40:46
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: regulärer Ausdruck

wenn preg_match nicht auf groß/klein schreibung achen soll, dann setz den modifikator "i" (.../i', $inhalt, $match);"

wenn auf ganze worte geachtet werden soll, dann ist das ganze etwas komplexer zugestalten...
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #7  
Alt 20.02.2005, 21:58:05
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: regulärer Ausdruck

PHP-Code:
preg_match('/s.{0,25}'.$suchbegriff.'.{0,25}s/i'$inhalt$match); 
hiermit wird erstens im caseinsensitiv mode gesuch, sprich auf groß und klein schreibung wird nicht geachtet. zweitens, wenn $inhalt = "das ganze projekt selfphp ist nicht nur echt cool, sondern der absolute wahnsinn!", dann ist $match != "kt selfphp ist nicht nur echt cool, sondern der absolu", sondern dann ist $match = " selfphp ist nicht nur echt cool, sondern der ".

es wird also nach dem linken äussersten leerzeichen innerhalb der 25 zeichen und und dem rechten äussersten leerzeichen innerhalb von 25 zeichen gesucht. so werden keine wörter mehr abgeschitten.

desweiteren würde ich dir von ereg oder eregi abraten, da diese im schnitt langsamer und ausserdem nicht so schön umfangreich nutzbar wie preg's sind.
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #8  
Alt 21.02.2005, 12:50:37
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
AW: regulärer Ausdruck

Jau, funktioniert! Danke!


Zwei Fragen noch:

Was bedeutet das "s" ?
Und kennt irgendwer eine verständliche Seite über joins in Abfragen?
Im SQL-Referenzhandbuch hab ich irgendwie nich wirklich schönes gefunden.

Gruß,
nivRam
Mit Zitat antworten
  #9  
Alt 21.02.2005, 12:59:28
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
AW: regulärer Ausdruck

Das 's':
--> http://php.net/manual/en/reference.p....modifiers.php
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #10  
Alt 21.02.2005, 13:06:39
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: regulärer Ausdruck

"s" steht für "whitespaces" (leerzeichen), sprich das ist die gruppierung von:
leerzeichen (space)
tabulator (tab)
seitenumbruch (formfeed)
wagenrücklauf (carriage return)
zeilenumbruch (newline)

aber vorsicht! "S" ist die negitierung der obigen gruppe.

carsten, das 's' meinte er nicht :-)
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Regulärer Ausdruck: links finden Jacki PHP Grundlagen 1 19.12.2004 09:42:04
Regulärer Ausdruck Phil PHP für Fortgeschrittene und Experten 6 07.07.2004 14:25:46
Problem: Regulärer Ausdruck? Funjoy PHP für Fortgeschrittene und Experten 6 30.06.2004 09:40:52
Kniffliger regulärer Ausdruck DiJae PHP für Fortgeschrittene und Experten 7 20.02.2004 15:29:09
welchen regulärer ausdruck? franz_5 PHP für Fortgeschrittene und Experten 6 01.07.2003 22:01:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:39:41 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt