[PHP] Stukken uit string filteren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Mexxus
  • Registratie: Januari 2004
  • Laatst online: 20-09 17:01
Beste mensen,

Ik heb een bestand met heleboek 'ongeveer' de zelfde regels code onder elkaar:

code:
1
2
3
4
5
<a href="/var_dir/">[img]"http://link"></a>
<a[/img][img]"http://link_bla"></a>
<a[/img][img]"http://bar"></a>
<a[/img][img]"http://lalala"></a[/img]
etc..


De format van de regels zijn dus telkens het zelfde, enkel zijn de href en de src telkens anders. Wat ik nu wil doen is d.m.v. een php script alle href's en src's in twee array's zetten, zodat we uiteindelijk iets als dit krijgen:

code:
1
2
3
4
5
6
7
8
9
$href[0] = "/var_dir/";
$href[1] = "/var_dir2/";
$href[2] = "/var_dir_foo/";
$href[3] = "/dir/";

$src[0] = "http://link";
$src[1] = "http://link_bla";
$src[2] = "http://bar";
$src[3] = "http://lalala";


Ik ben al bezig geweest met o.a. ereg_replace(), preg_replace() en str_replace()..maar volgens mij ben ik met die functies compleet verkeerd bezig. Er staat op php.net zover ik kan vinden ook niet echt nuttige info over een dergelijk iets. Alleenmaar over 'vervangen' van onderdelen in een string. Ik wil ze er juist uit filteren...

Iemand enig idee?

Acties:
  • 0 Henk 'm!

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 18-09 23:26

Tjark

DON'T PANIC

bestand inlezen en dan per regel een preg_match doen?
PHP:
1
2
3
4
if(preg_match("/href=['\"](.*?)['\"].*?src=['\"](.*?)['\"]/",$regel,$matches)) {
  $href[] = $matches[1];
  $src[] = $matches[2];
}

per regel is $matches[1] de href en $matches[2] de src.

[ Voor 41% gewijzigd door Tjark op 06-09-2005 21:55 ]

*insert signature here


Acties:
  • 0 Henk 'm!

  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 18-08 10:15
Bestand inlezen en dan inlezen per regel en daar een preg_match over doen , die plaatst de resultaten in een array en klaar

PHP:
1
2
3
4
5
6
<?

preg_match("/href\=\"(.*?)\"><img  src\=\"(.*?)\"/",$line,$matchArray);

$href[] = $matchArray[1];
$img[] = $matchArray[2];

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
Mexxus schreef op dinsdag 06 september 2005 @ 21:47:

Ik ben al bezig geweest met o.a. ereg_replace(), preg_replace() en str_replace()..maar volgens mij ben ik met die functies compleet verkeerd bezig. Er staat op php.net zover ik kan vinden ook niet echt nuttige info over een dergelijk iets. Alleenmaar over 'vervangen' van onderdelen in een string. Ik wil ze er juist uit filteren...

Iemand enig idee?
Wat jij zoekt is een Regular Expression. Daar is idd enorm veel over te vinden, waaronder de PW faq.