| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

20-06-2009, 12:43
|
|
mgutt
Registrierter Benutzer
|
|
Registriert seit: May 2006
Beiträge: 73
|
|
preg_match() erstes Element / kompletten Treffer unterbinden?
Hi,
ist es möglich den kompletten Treffer nicht in das $matches-Array zu übergeben?
Also Index 0 soll NICHT mit ausgegeben werden.
Gruß
Marc
|

20-06-2009, 12:52
|
|
jmc
PHP Junior
|
|
Registriert seit: Mar 2006
Beiträge: 868
|
|
Ja, du musst dir einen eigenen Parser schreiben
Darf man fragen, was es dir schadet?
|

20-06-2009, 13:10
|
|
mgutt
Registrierter Benutzer
|
|
Registriert seit: May 2006
Beiträge: 73
|
|
Meinem Arbeitsspeicher
Ich arbeite mit preg_match_all() und im Ergebnis landen ziemlich viele Ergebnisse, die ich auch alle brauche bis auf den Haupttreffer. Der ist unnütz.
|

20-06-2009, 13:31
|
|
mgutt
Registrierter Benutzer
|
|
Registriert seit: May 2006
Beiträge: 73
|
|
*doppel*
|

20-06-2009, 15:08
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.307
|
|
ich weiss zwar nicht, warum dich der eintrag nervt, aber du willst die anderen treffer doch sicher in einer for-schleife verarbeiten. dann setz doch dort den anfangswert auf 1 und nicht auf 0.
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

20-06-2009, 15:25
|
|
mgutt
Registrierter Benutzer
|
|
Registriert seit: May 2006
Beiträge: 73
|
|
Zitat:
Zitat von Kropff
ich weiss zwar nicht, warum dich der eintrag nervt
|
Das steht in meinem 2. Beitrag.
|

20-06-2009, 15:26
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.482
|
|
Oder array_shift & wegwerfen ...
Löst aber alles natürlich keine Speicherplatzprobleme, die evtl. beim matchen schon auftreten.
Dass du den kompletten Treffer als 0tes Element bekommst, kannst du AFAIK nicht verhindern - das ist bei preg quasi "build-in".
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

20-06-2009, 15:56
|
|
mgutt
Registrierter Benutzer
|
|
Registriert seit: May 2006
Beiträge: 73
|
|
Zitat:
Zitat von wahsaga
Dass du den kompletten Treffer als 0tes Element bekommst, kannst du AFAIK nicht verhindern - das ist bei preg quasi "build-in".
|
Das wollte ich wissen. Was ich danach mit dem Array mache, bringt mich nicht weiter, weil die Ergebnisse durch eine Schleife laufen und dann immer wieder aufs neue gefüllt werden und dann wieder nur unnötig eine weitere Funktion einen Löschvorgang ausführt. Auch wenn ich mit unset() arbeiten würde, würde es also nichts bringen, da der Speicher dann schon zugewiesen wurde und die Schleife selber nicht besonders umfangreich ist.
Also ich kann auch einfach nach der Schleife das Array löschen. Mache ich aber nicht, weil ich alle temporären Arrays möglichst auf eins reduziert habe um die Definitionstabelle zu entlasten.
|

20-06-2009, 23:54
|
 |
fireweasel
Registrierter Benutzer
|
|
Registriert seit: Sep 2008
Ort: At home
Beiträge: 679
|
|
Zitat:
Zitat von mgutt
Hi,
ist es möglich den kompletten Treffer nicht in das $matches-Array zu übergeben?
Also Index 0 soll NICHT mit ausgegeben werden.
|
Den Eintrag Null im Treffer-Array bekommst du natürlich nicht weg. Aber möglicherweise kann man den RegEx so umschreiben, dass die erfassten Treffer kürzer werden. Also zeig mal dein Suchmuster her.
Nebenbei könntest du statt preg_match_all() auch einfach preg_match() in einer weiteren Schleife verwenden.
__________________
PHP-Code:
class Brick implements Throwable {
// ...
}
Geändert von fireweasel (20-06-2009 um 23:58 Uhr)
|

21-06-2009, 12:04
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
PHP-Code:
preg_match($pattern, $matches[0], $matches);
|

22-06-2009, 09:04
|
Forsaken
  Administrator
|
|
Registriert seit: May 2009
Beiträge: 30
|
|
PHP-Code:
array_shift($matches)
 so würde ich es einfach machen
Edit: Oh ganz deinen Post übersehen das du preg_match_all und nicht preg_match benutzt, da wirst du fürchte ich um eine schleife nicht herum kommen
Geändert von Forsaken (22-06-2009 um 20:35 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
|
|
|
|
PHP News
|