Recuperer code source dans variable [Résolu/Fermé]

Signaler
Messages postés
445
Date d'inscription
vendredi 21 octobre 2011
Statut
Membre
Dernière intervention
8 octobre 2017
-
Messages postés
89
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
15 juin 2014
-
Bonjour,

je possede un petit site, avec SQL/php/css ect.
mais voila, je connait un autre site (je ne le siterait pas) et je voulait recuperer son code source dans une variable !

en clair :
-le cherche un code en php pour recuperer le code source d'un autre site et le metre dans une variable.
-voila un exemple : "https://www.google.com/?gws_rd=ssl" dans une variable
pourier vous me donner un bout de code svp, je suis tros debutant pour le moment, mais c'est en forgeons qu'on devien forgeron ;)

ensuite je comptai fair une sorte de recherche pour recuperer une valeur precise, mais chaque chose en son temps !


merci de votre aide


4 réponses

Messages postés
4761
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
23 octobre 2020
1 228
'lut, ça peut se faire avec file_get_contents:
$code = file_get_contents("http://google.com/");

Tu peux même faire en sorte que PHP demandes la page au serveur avec des en-têtes personnalisés (tu peux faire croire que c'est un certain navigateur par ex, ici je simule Firefox 22 sous Android):
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: fr\r\n" .
              "User-Agent: Mozilla/5.0 (Android; Mobile; rv:22.0) Gecko/22.0 Firefox/22.0\r\n"
  ));
$context = stream_context_create($opts);
$code = file_get_contents("http://google.com/", false, $context);

from human import idiocy
del idiocy
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
89
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
15 juin 2014
21
file_get_contents pour les cas les plus simples OUI !

Pour les cas plus compliqué, j'aurais proposé "un peu plus simple" !...

http://php.net/manual/fr/book.curl.php/
(Mais effectivement l'extension n'est pas installé de base je te l'accorde, mais curl est un équivalant à la commande wget très utilisée dans le monde UNIX)

Je me suis servi dernièrement de cette extension pour envoyer des notifications vers des mobiles IOS (connexion SSL sur un hote distant à l'aide d'un certificat fourni par Apple).

Un exemple ici : https://stackoverflow.com/questions/14200765/apple-push-notification-with-curl
Messages postés
4761
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
23 octobre 2020
1 228
J'ai aussi pensé à cURL qui est plus flexible, en effet. Mais étant donné que c'est pas présent par défaut (donc pas chez les hébergeurs non plus dans certains cas), je me suis limité à ce que PHP fournir, qui est tout de même très convenable :)
Messages postés
89
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
15 juin 2014
21
Oui c'est vrai, je bosse sur des dédiés du coup j'ai pas pensé à ce problème !
Messages postés
445
Date d'inscription
vendredi 21 octobre 2011
Statut
Membre
Dernière intervention
8 octobre 2017
39
ok, gver tester et je te dit si sa marche,
t'aurai pas aussi un bout de code pour cherche un truc preci entre 2 balise precise (genre un code aleatoir entre <div id="machincose">se que je cherche</div>
Messages postés
4761
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
23 octobre 2020
1 228
PHP possède une extension pour gérer du HTML/XML (DOM), mais c'est un peu lourd je trouve.
Si tu est sûr que le code de la balise ne change pas (toujours mêmes attributs et type), tu peux utiliser ceci:
function get_in_between($str, $start, $end) {
    $cut = substr(strstr($str, $start), strlen($start));
    return substr($cut, 0, strpos($cut, $end));
}
$data = get_in_between($code, '<div id="machincose">', '</div>');
Messages postés
445
Date d'inscription
vendredi 21 octobre 2011
Statut
Membre
Dernière intervention
8 octobre 2017
39
moi sa me rend :

Parse error: syntax error, unexpected '$start' (T_VARIABLE), expecting ')' in C:\xampp\htdocs\teste.php on line 5


le code source de ma petite page :
<html>
<body>
<?php
$code = file_get_contents("cacher mouahahaha");
function get_in_between($str $start, $end) {
$cut = substr(strstr($str, $start), strlen($start));
return substr($cut, 0, strpos($cut, $end));
}
$data = get_in_between($code, '<input type="hidden" name="reloadToken" value="', '">');
?>
</body>
</html>
--
installer un programme pour en supprimer un autre: inutile
demander comment faire et se casser nu peu la tête : utile efficace et sans problème supplémentaire ;)
Messages postés
4761
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
23 octobre 2020
1 228
Oups, j'ai raté une virgule ;)
J'ai corrigé le code, la virgule manquait dans les paramètres de la fonction.
Messages postés
445
Date d'inscription
vendredi 21 octobre 2011
Statut
Membre
Dernière intervention
8 octobre 2017
39
merci, t'est un vrai geni, je peu enfin construir mon bote de triche pour les jeux par navigateur mouahahahahaha !

corrdialement thomas
Messages postés
4761
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
23 octobre 2020
1 228
Un p'tit coup de "Marquer comme résolu", en dessous tu titre? :)
Messages postés
89
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
15 juin 2014
21
lol.... Mettre Google dans une variable ! Hummm intéressant ! (un peu réducteur mais intéressant) !
Cf :http://www.scriptol.fr/web/serveurs.php

PS : je pense que ta RAM va exploser !
(Bon évidement je blague ! hein... Faut bien que quelqu'un détende l'atmosphère ici non !?!)