Toon posts:

[php] weer een regex iets.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit weer met een regex probleem en kom er natuurlijk niet uit :(

ik wil uit een grote html bepaalde dingen filteren!

code:
1
2
<td width="330" bgcolor="#000099"><font size="2" color="white" face="verdana">&nbsp; underneath your clothes - shakira       </td>
<td width="60"  bgcolor="#3333cc"><a href="http://pages.eidosnet.co.uk/blabestaatniet.class"><center><b><font size="1" face="tahoma">download</a></td>


en uit dit stukje weer de song titel en filename halen..

ik heb al het volgende

PHP:
1
2
3
4
5
6
7
8
9
10
11
$fd = fopen("xxxhiddenurl", "r");
while (!feof ($fd)) {
    $buffer .= fgets($fd, 4096);
}
// echo $buffer;
$regex = '!face=\"verdana\">&nbsp;(.*)<\/td>(.*)<a href=\"(.*)\"><b>!ism';
preg_match_all($regex, $buffer, $regout);

echo '<pre>';
print_r($regout);
echo '</pre>';


maar kom er niet uit :{ wie o wie bied de uitkomst... en of een goede tip waarop ik door kan gaan :)

  • Rashann
  • Registratie: Maart 2000
  • Laatst online: 24-08 07:20

Rashann

Zoek de hond...

Verwijderd schreef op 10 augustus 2002 @ 18:57:
PHP:
1
2
3
4
5
6
7
8
9
10
11
$fd = fopen("xxxhiddenurl", "r");
while (!feof ($fd)) {
    $buffer .= fgets($fd, 4096);
}
// echo $buffer;
$regex = '!face=\\"verdana\\">&nbsp;(.*)</td>(.*)<a href=\\"(.*)\\"><b>!ism';
preg_match_all($regex, $buffer, $regout);

echo '<pre>';
print_r($regout);
echo '</pre>';


maar kom er niet uit :{ wie o wie bied de uitkomst... en of een goede tip waarop ik door kan gaan :)
Ik kan het helemaal fout hebben, maar moet je niet de backslash ('\') escapen? En dus niet de '/' :?

Check dit maar eens...

[ Voor 0% gewijzigd door Rashann op 10-08-2002 21:38 . Reden: URL erbij ]

If nothing is written below, I was the last to reply...


Verwijderd

Topicstarter
Ik weet het niet, maar dacht dat dat niet hoefde, \ escaped de "

  • Rashann
  • Registratie: Maart 2000
  • Laatst online: 24-08 07:20

Rashann

Zoek de hond...

Verwijderd schreef op 10 augustus 2002 @ 22:25:
Ik weet het niet, maar dacht dat dat niet hoefde, \ escaped de "
Klopt (als het karakter erna niets speciaals is - het mag trouwens wel), maar dan hoef je ook zeker de / niet te escapen... dus gewoon '!face="verdana"> (.*)</td>(.*)<a href="(.*)"><b>!ism' gebruiken...

De " is namelijk niet het einde van je string, want die begon met '... dus de " hoeft niet geescaped (en de \ dus ook niet :))te worden, of zit ik nou helemaal verkeerd te denken?

If nothing is written below, I was the last to reply...


Verwijderd

Topicstarter
mischien heb ik het wel verkeerd, ff proberen :)

PHP:
1
$regex = '!face="verdana">&nbsp;(.*)</td>(.*)<a href="(.*)"><b>!ism';


werkt echter ook niet.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Volgens mij gaat het fout bij die <b> :?

  • Rashann
  • Registratie: Maart 2000
  • Laatst online: 24-08 07:20

Rashann

Zoek de hond...

ACM schreef op 11 augustus 2002 @ 00:24:
Volgens mij gaat het fout bij die <b> :?
D'oh! Da's waar... d'r staat in de HTML een <center> tussen! |:( Ach ja, hij werkt nu wel :)

Voor xtentic: Test Page, Test Page Source.

If nothing is written below, I was the last to reply...


Verwijderd

Topicstarter
RainManX schreef op 11 augustus 2002 @ 01:50:
[...]
D'oh! Da's waar... d'r staat in de HTML een <center> tussen! |:( Ach ja, hij werkt nu wel :)

Voor xtentic: Test Page, Test Page Source.
Tegek! :) mag ik zeggen hartstikke bedankt ;) je source werk geweldig! :)

maar nu zit ik met het volgende probleem nu wil ik de 'files' saven..

code:
1
2
3
4
5
6
7
8
9
10
    $filename = $regout[1][$x] . ".mp3";

    $fw = fopen($filename, "w");
    $fd = fopen($regout[3][$x], "r");
    while (!feof ($fd)) {
       $buffer .= fgets($fd, 1024);
    }
    fputs($fw, $buffer);
    fclose($fw);
    fclose($fd);


maar de bestanden die ik van me eigen script rip zijn onluisterbaar :? hoe kan dat?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

onluisterbaar :?
Maar als je ze wel goed kan schrijven zal het wel een rechten probleem zijn en moet je de boel chmodden.

Verwijderd

Topicstarter
ACM schreef op 11 augustus 2002 @ 11:48:
onluisterbaar :?
Maar als je ze wel goed kan schrijven zal het wel een rechten probleem zijn en moet je de boel chmodden.
als ik ze gewoon 'download' kan ik ze beluisteren en hebben ze ook de goede grote, maar als ik ze binnenhaal met mijn script klopt er geen van de grote en kan ik ze niet afsluiteren.

:? erg vaag :)

Verwijderd

Topicstarter
ACM? zou je hierop een reactie kunnen geven? pls :)

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
Verwijderd schreef op 11 augustus 2002 @ 22:10:
ACM? zou je hierop een reactie kunnen geven? pls :)
Een schopje na elf uur foeii

Maar probeer het eens met fpassthru

  • Rashann
  • Registratie: Maart 2000
  • Laatst online: 24-08 07:20

Rashann

Zoek de hond...

Verwijderd schreef op 11 augustus 2002 @ 10:01:maar nu zit ik met het volgende probleem nu wil ik de 'files' saven..

code:
1
2
3
4
5
    [...]
    while (!feof ($fd)) {
       $buffer .= fgets($fd, 1024);
    }
    [...]


maar de bestanden die ik van me eigen script rip zijn onluisterbaar :? hoe kan dat?
Je hebt toch wel eerst je buffer leeggemaakt he? Want je gebruikt $buffer ook bij het inlezen van de html file...

If nothing is written below, I was the last to reply...


  • Joror
  • Registratie: Augustus 2001
  • Laatst online: 11-03-2017

Joror

the eternal lurker

Bij het schrijven van een regex die iets uit html moet halen kan je je het best vasthouden aan de html-tags, en dan liefst allemaal.. kijk wat altijd hetzelfde is.

bijv:
PHP:
1
2
$regex = 
'~<td width="330".*><font.*>(.*)</td>(.*)<td width="60".*><a href="(.*)">.*</a></td>~isU';


Let vooral op de 'U' parameter, die zorgt ervoor dat hij 'ungreedy' zoekt, wat ongeveer inhoud dat hij bij dingen als .* zoweinig mogelijk pakt.
Dit is handig aangezien je niet wilt dat ie het hele document matcht omdat er aan het eind van de pagina nog een </td> staat.

edit:
Ah ik zie dat het antwoord al gevonden is.. even overheen gelezen, ehm beschouw het maar als 'advies voor de toekomst' dan oid ;)

nada aka zilch, formerly known as zip

Pagina: 1