preg_match: Filterung von Inhalten

Hallo,

leider konnte ich selbst keine Lösung finden, deshalb meine Anfrage hier.

Folgender Text:

abc123

Nun möchte ich den Inhalt „abc123“ erhalten, jedoch zusätzlich noch separat „font7“ und zwar so, dass es später einfach möglich ist zu wissen, dass nur „123“ mit „font7“ zusammenhängen, also am liebsten ein Array bsp. so:

$tmp[0][0][‚font‘]=’’;
$tmp[0][0][‚text‘]=‚abc‘;
$tmp[0][1][‚font‘]=‚font7‘;
$tmp[0][1][‚text‘]=‚123‘;

Oder andere Ideen? Wie ist dies möglich?

Danke!

Viele Grüße

Hallo,

Folgender Text:
abc123
Nun möchte ich den Inhalt „abc123“ erhalten, jedoch zusätzlich
noch separat „font7“ und zwar so, dass es später einfach
möglich ist zu wissen, dass nur „123“ mit „font7“
zusammenhängen, also am liebsten ein Array bsp. so:
$tmp[0][0][‚font‘]=’’;
$tmp[0][0][‚text‘]=‚abc‘;
$tmp[0][1][‚font‘]=‚font7‘;
$tmp[0][1][‚text‘]=‚123‘;

Oder andere Ideen? Wie ist dies möglich?

Deine Anfrage ist imho nicht konkret genug. Geht
es um allgemeine Tags? Oder nur um die Fonts? Wie
soll das weiterverwendet werden?

Würde das so schon reichen?:

function getfntclassinf($htmlpiece) {
 $Res = Array();
 $reg = '/
 ([^ ([^
 )
 /x';
 if(preg\_match\_all($reg, $htmlpiece, $Matches, PREG\_SET\_ORDER) ) {
 foreach($Matches as $m) {
 $Res[] = count($m) \> 2
 ? Array('text' =\> $m[3], 'font' =\> $m[2])
 : Array('text' =\> $m[1], 'font' =\> '');
 }
 }

 return $Res;
}


$text = 'abc123';
$tmp = getfntclassinf($text);

… oder kommen noch weitere Spezifikationen dazu?

Grüße

CMБ

Hallo,

danke funktioniert, bei weiteren Anforderungen werde ich mich melden, falls ich es nicht selbst lösen kann, danke.

Viele Grüße

Hallo,

die Lösung habe ich nun in eine bestehende Anwendung integriert. Darin werden bereits andere preg_match Funktionen ausgeführt. Jetzt benötige ich die selbe Funktion, nur mit preg_match und nicht preg_match_all. Wichtig ist, dass ich nur dann einen positiven Rückgabewert erhalte, wenn auch wirklich ein FONT-Tag gefunden wurde, denn dies ist nicht immer der Fall.

Vielen Dank!

Viele Grüße

Hallo,

die Lösung habe ich nun in eine bestehende Anwendung
integriert. Darin werden bereits andere preg_match Funktionen
ausgeführt. Jetzt benötige ich die selbe Funktion, nur mit
preg_match und nicht preg_match_all. Wichtig ist, dass ich nur
dann einen positiven Rückgabewert erhalte, wenn auch wirklich
ein FONT-Tag gefunden wurde, denn dies ist nicht immer der
Fall.

Hmmm. Was macht ihr denn wirklich? Beschreibe doch bitte
mal in Worten, was das Ziel ist.

Grüße

CMБ

Hallo,

also mit einem Script wird ein HTML-File eingelesen. Dieses wird nach und geparst und deren Inhalte gespeichert. Nun kann es aber vorkommen, dass innerhalb des der angesprochene -Tag auftauchen kann. Bisher haben wir alle Tags einfach entfernt und den reinen Text gespeichert. Der -Tag sollte aber nun eine Ausnahme sein, hier muss der Zusammenhang zum CLASS-Attribut mit abgespeichert werden. Hierfür benötige ich den preg_match, falls dieser nicht trifft gibt es kein -Tag und dann kann ich diese Zeile behandeln wie alle anderen (alle Tags entfernen, falls vorhanden). Falls jedoch dieser preg_match trifft, benötige ich jeweils zum eigentlichen Inhalt des auch den Inhalt vom CLASS-Attribut jeweils zu jeweiligen Inhalt.

also mit einem Script wird ein HTML-File eingelesen. Dieses
wird nach und geparst und deren Inhalte gespeichert.
Nun kann es aber vorkommen, dass innerhalb des der
angesprochene -Tag auftauchen kann. Bisher haben wir
alle Tags einfach entfernt und den reinen Text gespeichert.
Der -Tag sollte aber nun eine Ausnahme sein, hier muss
der Zusammenhang zum CLASS-Attribut mit abgespeichert werden.

das waere mir mit regexp iel zu aufwendig, ich wuerde es mit DOMXML oder SimpleXML loesen.

Hallo,

hilft mir leider nicht wirklich weiter, es fehlt ja lediglich der-Teil, der Rest ist bereits integriert von einer älteren Anwendung.

Kann mir den Schnipsel jemand von preg_match_all auf preg_match umschreiben?

Danke!