Recuperer code source dans variable

Résolu/Fermé
thomascre Messages postés 445 Date d'inscription vendredi 21 octobre 2011 Statut Membre Dernière intervention 8 octobre 2017 - 30 mai 2014 à 16:25
-helper- Messages postés 89 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 15 juin 2014 - 30 mai 2014 à 21:21
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


A voir également:

4 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
Modifié par gravgun le 30/05/2014 à 16:55
'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
-helper- Messages postés 89 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 15 juin 2014 27
Modifié par -helper- le 30/05/2014 à 21:18
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
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
30 mai 2014 à 21:18
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 :)
0
-helper- Messages postés 89 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 15 juin 2014 27
30 mai 2014 à 21:21
Oui c'est vrai, je bosse sur des dédiés du coup j'ai pas pensé à ce problème !
0
thomascre Messages postés 445 Date d'inscription vendredi 21 octobre 2011 Statut Membre Dernière intervention 8 octobre 2017 38
30 mai 2014 à 17:02
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>
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
Modifié par gravgun le 30/05/2014 à 17:23
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>');
0
thomascre Messages postés 445 Date d'inscription vendredi 21 octobre 2011 Statut Membre Dernière intervention 8 octobre 2017 38
30 mai 2014 à 17:23
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 ;)
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
30 mai 2014 à 17:24
Oups, j'ai raté une virgule ;)
J'ai corrigé le code, la virgule manquait dans les paramètres de la fonction.
0
thomascre Messages postés 445 Date d'inscription vendredi 21 octobre 2011 Statut Membre Dernière intervention 8 octobre 2017 38
30 mai 2014 à 17:26
merci, t'est un vrai geni, je peu enfin construir mon bote de triche pour les jeux par navigateur mouahahahahaha !

corrdialement thomas
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
30 mai 2014 à 17:37
Un p'tit coup de "Marquer comme résolu", en dessous tu titre? :)
0
-helper- Messages postés 89 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 15 juin 2014 27
Modifié par -helper- le 30/05/2014 à 21:09
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 !?!)
0