/* Auteur: Lsinclar-3 */ /* Plateforme: Win32/Linux */ /* Compilateur/version: gcc/? */ /* Version: 3 merci Ti-R */ /* Dernière Modif: 10 aout 2006 10:00 */ #include <stdio.h> #include <string.h> int main() { char buf[8192]; /* paquet lu sur stdin */ int i=1, n; /* i caractères lus, n pour boucler dessus */ char URL[2048]; /* une URL vers stdout */ unsigned short b=0; /* sa longueur en octets */ unsigned char tag=0, flag=0; /* les flags */ while (i) { i = fread(buf, 1, 8192, stdin); for (n=0; n<i; n++) { if (buf[n]==0X3C) tag=1; else if (buf[n]==0X3E) tag=0; else if (buf[n]==0X22 || buf[n]==0X27) /* guillemet ou apostrophe? */ { if (tag) { /* <A HREF="url"> ou <A HREF='url'> */ if ( buf[n-1]=='=' && buf[n-2]=='F' && buf[n-3]=='E' && buf[n-4]=='R' && buf[n-5]=='H' && buf[n-6]==' ' && buf[n-7]=='A') flag=1; /* <a href="url"> ou <a href='url'> */ else if ( buf[n-1]=='=' && buf[n-2]=='f' && buf[n-3]=='e' && buf[n-4]=='r' && buf[n-5]=='h' && buf[n-6]==' ' && buf[n-7]=='a') flag=1; /* <IMG SRC="url"> ou <IMG SRC='url'> */ else if ( buf[n-1]=='=' && buf[n-2]=='C' && buf[n-3]=='R' && buf[n-4]=='S' && buf[n-5]==' ' && buf[n-6]=='G' && buf[n-7]=='M' && buf[n-8]=='I') flag=1; /* <img src="url"> ou <img src='url'> */ else if ( buf[n-1]=='=' && buf[n-2]=='c' && buf[n-3]=='r' && buf[n-4]=='s' && buf[n-5]==' ' && buf[n-6]=='g' && buf[n-7]=='m' && buf[n-8]=='i') flag=1; else if (flag) { URL[b] = '\0'; puts(URL); flag = b = 0; //memset(URL, 0, b); } } /* if tag */ } /* if " ou ' */ else if (flag) URL[b++] = buf[n]; } /* for n */ } /* while fread() */ return 0; }