php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.01.2005, 10:21  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard Regex für attribute in quelltexten

Also was ich versuche ist, gewisse html-tags aus quelltexten herauszufiltern. Filterpunkt sind die attribute. Wie kann ich es schaffen, ein regulären Ausdruch zu erzeugen, der mir alle Bilder herausfiltert, die wie im Code hier das src-Attribut, das alt-Attribut width-Attribut und das height-Attribut haben? aber unabhängig von der reihenfolge und keins darf doppelt sein.

den einzigen ansatz, der allerdings nicht beinhaltet ob eins doppelt ist war der mittels

Ausschnitt als Pseudocode:
Code:
(regex für src|regex für alt|regex für width| regex für height)(regex für src|regex für alt|regex für width| regex für height)(regex für src|regex für alt|regex für width| regex für height)(regex für src|regex für alt|regex für width| regex für height)
zu suchen, allerdings werden dann auch diejenigen gefunden, die z.b. einfach nur 4 alt-tags haben.

Code:
[img]/test.jpg[/img]
Gibts es irgendeinen Ansatz/Tutorial der mir vieleicht weiterhilft oder muss ich die tags manuell mittels explode oder einem allgemeinen regex für attribute und das als teilsuchstring überprüfen?

mfg
robo4[/b]
robo47 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 27.01.2005, 14:11  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

keiner ne idee? regex ist doch das wundermittel schlechthin, irgendiwe muss das doch sicher möglich sein
robo47 ist offline  
Alt 27.01.2005, 14:39  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.783
derHund
Standard

Zitat:
irgendiwe muss das doch sicher möglich sein
davon gehe ich aus ... siehe dazu auch http://de.wikipedia.org/wiki/Turingmaschine ff.

wir können ja um die wette basteln, wer am ende den performanteren ansatz hat ...
__________________
derHund ist offline  
Alt 27.01.2005, 14:58  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

:P
robo47 ist offline  
Alt 27.01.2005, 16:22  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.783
derHund
Standard

Code:
  $code = '
    [img]dingens[/img]
    

dingens</p>
    [img]dingens[/img]
    [img]dingens[/img]
    [img]dingens[/img]
    [img]dingens[/img]
    [img]dingens[/img]
    [img]dingens[/img]
    [img]dingens[/img]
    [img]dingens[/img]
    [img]dingens[/img]
    [img]dingens[/img]
    [img]dingens[/img]
  ';

  function dingens($params) {
    $wanted  = array('alt', 'height', 'src', 'width');
    $attribs = preg_split('#\s+#', $params[1], -1, PREG_SPLIT_NO_EMPTY);
    if (count($attribs) < 4)
      return 'kicked because of lack of ...';
    $attribs_only = preg_replace('#=".+"#', '', $attribs);
    if (count(array_unique($attribs)) != count($attribs))
      return 'kicked because of dupes ...';
    $rest = array_diff($attribs_only, $wanted);
    return $params[0];
  }

  $timer = &new noOtherTimer;

  echo $lines = preg_match_all('#<img.*/>#', preg_replace_callback('#<img(.*) />#Uis', 'dingens', $code), $result).' bilder entsprechen den anforderungen.
';
  echo '<textarea cols="100" rows="'.($lines * 1 + 8).'">'.print_r($result, TRUE).'</textarea>
';

  echo 'eine iteration ben&ouml;tigt '.$timer->getTimer().'ms';
da du nicht alle fakten angegeben hast, habe ich die fehlenden willkürlich ergänzt ...

das script funktioniert (nach meinen vorgaben) ... mußt halt schauen, leerzeichen im wert des attributs, zusätzliche wie style, ...

edit: im endeffekt ists eben nur
Zitat:
die tags manuell mittels explode oder einem allgemeinen regex für attribute und das als teilsuchstring überprüfen?
__________________
derHund ist offline  
Alt 27.01.2005, 17:29  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

WOW

okay danke, hättest du nicht coden brauchen hätte ich auch alleine geschafft, es ging mir eigneltich nur darum ob man direkt mit regulären ausdrücken da was machen kann oder ob es umständlicher sein muss :P

thx
mfg
robo47
robo47 ist offline  
Alt 27.01.2005, 18:29  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.783
derHund
Standard

direkt mit regexp wärs imho noch umständlicher gewesen ...
__________________
derHund ist offline  
 


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
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
Regex: Auslesen der Meta-Tags einer Webseite Sucheingrenzung pepe24 PHP Tipps 2008 12 31.05.2008 15:41
2 Regex in PHP kompatible Syntax übersetzen NoiZy PHP-Fortgeschrittene 6 07.04.2008 09:04
Regex Link Problem Broadcast PHP Tipps 2008 2 29.02.2008 16:30
Gierig/nicht gieriger Regex Papst PHP Tipps 2008 22 02.12.2007 20:15
[gelöst :D ] regex tuts nur einmal pro zeile notyyy PHP Tipps 2008 17 24.09.2007 15:40
RegEx für Mail-Adresse (Bitte prüfen!) vollkommenegal PHP Tipps 2006 13 20.11.2006 20:02
Code optmierung durch regex Spyker PHP Tipps 2006 14 23.05.2006 11:12
there is no attribute "BACKGROUND" ?? Fehler beim Buschdieb HTML, Usability und Barrierefreiheit 4 23.04.2006 21:58
ACCEPT-ENCODING: gzip, regex ermittlung Andreas PHP-Fortgeschrittene 7 04.02.2006 16:52
habe ein paar fragen zu REGEX imported_kremser PHP Tipps 2006 11 31.01.2006 15:30
RegEx findet Stringvorkommen nicht PHP Tipps 2007 6 08.12.2005 21:52
Primärschlüssel da. Wie an andere Attribute rankommen? Datenbanken 1 07.06.2005 10:27
Suche ein bestimmtes Regex Chr!s PHP Tipps 2005 5 21.05.2005 12:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
regex html attribute, regex attribute, html attribute auslesen php regex, html attribut auslesen regex, reg exp um html attribute auszulesen, php img attribute, regex img ttrbute, php regex html atribut auslesen, regex \xml| attribute, php regular expression unabhängig von der reihenfolge, regex tags attribute, php element attribut regexp, php regex img attr, regex für attribut, regex html attribut filtern, php preg_split style width height, preg_replace attribut auslesen, notetab multiple lines regular expression, php $attr, text aus alt attribut filtern regex

Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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.