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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
20.02.2005, 18:09:12
|
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
|
20.02.2005, 18:49:43
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
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
|
20.02.2005, 18:56:03
|
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)
|
20.02.2005, 19:11:52
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
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
|
20.02.2005, 19:37:24
|
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
|
20.02.2005, 20:40:46
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
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
|
20.02.2005, 21:58:05
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
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
|
21.02.2005, 12:50:37
|
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
|
21.02.2005, 12:59:28
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
AW: regulärer Ausdruck
|
21.02.2005, 13:06:39
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
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
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 00:39:41 Uhr.
|