Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/11/2011, 12h37   #1
 
Femme
Ingénieur développement logiciels
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Service public

Informations forums :
Inscription : novembre 2011
Messages : 2
Points : -2
Points : -2
Par défaut PHP pour l'aspiration des sites web

Bonjour,

je veux faire un programme en PHP qui permet d'extraire du texte brut à partir des articles mis en ligne.

et merci d'avance.
deving2008 est déconnecté   Envoyer un message privé Réponse avec citation 04
Vieux 29/11/2011, 13h19   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
D'accord.

Et après ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 29/11/2011, 17h41   #3
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 140
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 2 140
Points : 2 885
Points : 2 885
Facile !
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
function html2txt($html){
    $search = array('@<script[^>]*?>.*?</script>@si',
           '@<style[^>]*?>.*?</style>@siU',
           '@<[\/\!]*?[^<>]*?>@si',
           '@<![\s\S]*?--[ \t\n\r]*>@'
    );
    $clean = preg_replace($search, '', $html);
    return $clean;
}
 
$articles = array(
    'http://google.fr'
);
 
foreach($articles as $article){
    $html = file_get_contents($article);
    $text = html2txt($html);
 
    printf('<div>%s</div>', $text);
}
__________________
Développeur Web, accessoirement geek (ou l'inverse)
http://thomasrambaud.com
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 17h50   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
Citation:
Envoyé par ThomasR Voir le message
Facile !
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
function html2txt($html){
    $search = array('@<script[^>]*?>.*?</script>@si',
           '@<style[^>]*?>.*?</style>@siU',
           '@<[\/\!]*?[^<>]*?>@si',
           '@<![\s\S]*?--[ \t\n\r]*>@'
    );
    $clean = preg_replace($search, '', $html);
    return $clean;
}
 
$articles = array(
    'http://google.fr'
);
 
foreach($articles as $article){
    $html = file_get_contents($article);
    $text = html2txt($html);
 
    printf('<div>%s</div>', $text);
}
encore plus facile : strip_tags
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 01/12/2011, 16h31   #5
 
Femme
Ingénieur développement logiciels
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Service public

Informations forums :
Inscription : novembre 2011
Messages : 2
Points : -2
Points : -2
J'ai trouvé cette solution avec curl

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function recuperer_page_http($url, $timeout = 10, $nom_local = '', $post = NULL) {
    if (extension_loaded('curl')) {
 
        $ch = curl_init($url);
 
		// configuration des options
 
curl_setopt($ch, CURLOPT_HEADER, 0);
 
curl_setopt($ch, CURLOPT_PROXY, "insérer le proxy");  -- optionnel
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
 
/*On indique à curl de suivre les redirections par le header http location*/
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        if ($nom_local) {
            $fp = fopen($nom_local, 'w') or die("Le fichier '$nom_local' n'a pu être ouvert en écriture");
            curl_setopt($ch, CURLOPT_FILE, $fp);
        } else {
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        }
        if ($post) {
            curl_setopt($ch, CURLOPT_POST, TRUE);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        }
        $ret = curl_exec($ch);
        if ($nom_local) {
            fclose($fp);
        }
 
        if ($ret === FALSE) {
            die("Une erreur a été rencontrée : " . curl_error($ch));
        }
		  curl_close($ch);
        return $ret;
 
    } else {
        die("Erreur lors de l'utilisation de la biblio CURL");
    }
}

deving2008 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 17h13   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
bien joué t'as recrée la fonction copy ...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 02/12/2011, 15h15   #7
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 140
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 2 140
Points : 2 885
Points : 2 885
Citation:
Envoyé par stealth35 Voir le message
encore plus facile : strip_tags
strip_tags a des comportements bizzares desfois (lorsque le HTML est invalide par exemple) : http://fr.php.net/manual/fr/function...ags.php#100995
Je préfère une solution simple qui supprime les tags et laisse le texte.
__________________
Développeur Web, accessoirement geek (ou l'inverse)
http://thomasrambaud.com
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h25.


 
 
 
 
Partenaires

Hébergement Web