php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.08.2004, 14:16  
Gast
 
Beiträge: n/a
Standard preg_match --> pattern

Spiele mich mit diesem Code jetzt schon 1 Stunde und komm nich annähernd zu einem Ergebnis. Muss leider auch sagen, dass ich bezüglich Pattern ein vollständiger Noob bin.

PHP-Code:
preg_match("/(<tr>)(.)(<\/tr>)/i"'<table><tr><td>Eins</td><td>Eins2</td></tr><tr><td>Zwei</td><td>Zwei2</td></tr></table>'$matches); 
Zur Zeit wird folgendes ausgegeben:
PHP-Code:
Array ( [0] => EinsEins2ZweiZwei2 [1] => [2] => EinsEins2ZweiZwei2 [3] => ) 
Aber eigentlich möchte ich es anders haben. Es soll ungefähr so aussehen:
PHP-Code:
Array ( [0] => <td>Eins</td><td>Eins2</td> [1] =><td>Zwei</td><td>Zwei2</td> ) 
Wäre nett, wenn ihr mir das noch schnell erklären könnt.
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 27.08.2004, 14:20  
Gast
 
Beiträge: n/a
Standard

Wenn es nur um die Ausgabe und die Abstände der Tabellen Spalten geht, kannst du einach Cellspacing und Cellpadding benutzten.
 
Alt 27.08.2004, 14:23  
Gast
 
Beiträge: n/a
Standard

Nein. Ich brauch die Zeilen fürs weiterverarbeiten. Arbeite gerade an einem Script das eine Tabelle in ein Bild umwandeln kann.
 
Alt 27.08.2004, 16:11  
Gast
 
Beiträge: n/a
Standard

kann mir keiner helfen?
 
Alt 27.08.2004, 18:12  
Gast
 
Beiträge: n/a
Standard

Dein Pattern schießt etwas über das Ziel hinaus.
PCRE arbeitet per Voreinstellung gierig. D.h. .* versucht so viel wie möglich zu binden, solange das Muster damit erfüllt wird.
<tr><td>Eins</td><td>Eins2</td></tr><tr><td>Zwei</td><td>Zwei2</td></tr>
Gierig kann .* den gesamten roten Teil in einem Rutsch binden, und Dein Muster wird immer noch erfüllt.
Du kannst pcre auf nicht-gierig umstellen. Dann binden .* .+ usw. so wenig wie möglich Zeichen, um das Muster zu erfüllen.
Und dann noch preg_match_all statt preg_match
PHP-Code:
<?php
$text 
'<table><tr><td>Eins</td><td>Eins2</td></tr><tr><td>Zwei</td><td>Zwei2</td></tr></table>';

$pattern '!<tr>(.+)</tr>!Ui';
preg_match_all($pattern$text$matches);
print_r($matches);

/* unter php5 mit simplexml auch möglich:
$xml = simplexml_load_string($text);
foreach ($xml->tr as $td)
{
    foreach($td as $cell)
        echo $cell, "
\n";
}
*/
?>
siehe auch:
http://php.net/reference.pcre.pattern.modifiers
http://php.net/simplexml
 
 


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
Bild vor Link pattern TimmaY PHP Tipps 2007 5 21.03.2007 18:06
Hilfe bei Pattern Syntax Charly Shop Sui PHP Tipps 2006 4 13.05.2006 20:10
Decorator pattern: 'protected' und parallele vererbung axo PHP-Fortgeschrittene 5 20.10.2005 15:53
[Erledigt] Design Pattern - MySQL Sitzung in allen Objekten nutzen PHP-Fortgeschrittene 21 28.04.2005 22:18
Folgendes Pattern PHP Tipps 2005 5 01.03.2005 12:41
Probleme mit Pattern bei Templateersetzung RudiS PHP-Fortgeschrittene 2 19.02.2005 22:09
Pattern Syntax Problem mit MulitLine PHP Tipps 2004-2 2 21.12.2004 15:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
preg_match pattern syntax, preg_match syntax, preg_match, preg_match pattern, preg_match_all syntax, preg_match tabelle, php preg_match <tr>, preg_match table, preg syntax, php preg_match_all tr, php preg_match_all pattern, preg pattern syntax, preg_match_all bilder, preg_match_all tr, preg_match tr mit bestimmten inhalt, i pattern preg_match, php preg_match pattern syntax, php5 pattern in tabelle speichern, preg_match bilddateien, preg_match so viele wie möglich

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