[PHP] récupérer le code source d'une page web
Résoludarkkiller77 -
je essayer de récupérer le code source d'une page web à partir de son URL.
j'ai un code qui le fait avec Java mais j'ai besion en PHP .....
voila le code en java et si qlq peut me l'envoyer en PHP.......Merci
--------------------------------------------------------------------
public static String getIpFrom(String adresse) {
String toreturn = null;
try {
// creation d'un objet URL
URL url = new URL(adresse);
// on etablie une connection a cette url
URLConnection uc = url.openConnection();
// on y cree un flux de lecture
InputStream in = uc.getInputStream();
// on lit le premier bit
int c = in.read();
// on cree un StringBuilder pour par la suite y ajouter tout les bit lus
StringBuilder build = new StringBuilder();
// tant que c n'est pas egale au bit indiquant la fin d'un flux...
while (c != -1) {
build.append((char) c);
// ...on l'ajoute dasn le StringBuilder...
c = in.read();
// ...on lit le suivant
}
// on retourne le code de la page
toreturn = build.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return toreturn;
}
----------------------------------------------------------------------
- Récupérer le code html d'un site web
- Wannonce nouveau site - Guide
- Code ascii - Guide
- Creer un site web - Guide
- Web office - Guide
- Wannonce site fermé - Guide
28 réponses
- 1
- 2
Le but est de récupérer le code source HTML d'une page à partir d'une URL en PHP, en s'appuyant sur un exemple Java fourni pour guider la conversion.
Des solutions PHP existent, notamment via curl ou via file_get_contents lorsque l'accès fopen est autorisé, curl offrant une gestion de timeout et une récupération brute du contenu avec curl_exec.
Attention toutefois: on ne peut pas récupérer le code source PHP d'un fichier distant, on obtient uniquement le HTML généré côté serveur puisque le PHP s'exécute avant l'envoi.
En pratique, pour des pages dynamiques ou des contenus téléchargés, l'usage de curl ou de file_get_contents doit tenir compte des restrictions du serveur et des conditions d'utilisation.
<?php
$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, 'http://www.commentcamarche.net');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
$lines = array();
$lines = explode("\n", $file_contents);
// display file line by line
foreach($lines as $line_num => $line) {
echo "Line # {$line_num} : ".htmlspecialchars($line)."<br />\n";
}
?>
C'est également un remplaçant de fopen pour les serveurs qui n'autorise pas cette fonction.
J'ai pris cette information de :
http://wiki.dreamhost.com/CURL#Getting_binary_data
Vous ne lisez pas ou quoi ?
J'ai compris dès le départ qu'il savait faire une certaine chose en Java et se demandait comment faire pareil en PHP.
Alors, apprenti-hackeurs (failles de sécurité et bla bla bla, j'aimerais bien que vous me donniez des exemples d'hébergeurs, alors. Si vous croyez que c'est si simple que ça, qu'il suffit d'avoir un site sur le même hébergeur et hop on récupère tous les fichiers des autres...)
Voilà, c'était mon coup de gueule pour les gens qui en prennent pas la peine de lire complètement et consciemment avant de répondre (à toute vitesse et avec plein de fotes).
J'ai un gros souci, j'ai créer un site internet, je suis passée par un webdesigner (une petite boite). Ils ont pris plein de retard et on fait tellement d'erreur qu'au bout de 2 ans le site ne marche toujours pas super bien. Pire, dans le contrat ils avait inclus une prestation de référencement naturel comme quoi que je paie une certaine somme à chaque fois que j'apparais sur la premiere page de google. Et selon eux ça allait me coûtait casiment rien. Bref, escro comme ils sont j'ai vit vu qu'apparaitre sur la première page d'un mot clé qui n'a pas de traffic ça sert à rien saut à se ruiner. J'ai tenté de casser ce contrat de référencement car j'ai déjà fini de payer mon site mais l'entreprise étant en situation difficile retient de force ses clients. Il ne veulent donc pas me donner mes codes sources pour que j'aille ailleurs. Je cherche du coup quelqu'un qui pourrait reprendre les codes sources de mon site chez le webmaster.
<?php
$url="https://www.google.fr/?gws_rd=ssl";
$nom_fichier="google.html" ;
$code_html=file_get_contents($url);
file_put_contents($nom_fichier,$code_html);
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPas le PHP de la page, juste le HTML.
Mais avec une fonction PHP qui permettrai grâce à l'URL de récupérer le code source visible d'une page HTML.
Je penses que c'est ça la question, car je cherche la même chose et qu'au bout d'un certain temps sur une page en php, le code php tu peux commencer à le deviner.
moi j'aimerai pas qu'on pique le code source des mes pages sans mon accord
c'est juste une question de principe...
On ne peut absolument pas récupérer le code source d'un fichier php!
Le fichier php auto-génère un fichier html avec du contenu qui est affiché par le navigateur!
En faisant toutes les tentatives possibles, vous ne parviendrez jamais à obtenir un code source PHP, mais juste un code source de la page auto-générée en HTML (sans les $ et sans les fonctions...).....
FIN!
Pour ceux tournant sous ubuntu et passant par la, il faut installer le packet php-curl.
Lapinkiller: On peut recupérer le code de certains sites pour organiser les infos qui nous interresse et les stocker tous sur une même page, pas necessairement pour repomper le code. Les aspirateurs de site sont plus efficace, plus rapides et plus simple d'utilisation.
<?php
$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, 'http://www.bricodepot.fr/maubeuge/');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
$lines = array();
$lines = explode("\n", $file_contents);
// display file line by line
foreach($lines as $line_num => $line) {
echo "Line # {$line_num} : ".htmlspecialchars($line)."<br />\n";
}
?>
Je n'obtiens aucun résultats
Comment cela se fait t'il ? merci
Pour expliquer le principe, c'est un problème de droits d'utilisateurs mal géré sous unix :
Tout les scripts de tout les sites de cet hebergeur ayant le même groupe, et les droits étant mal géré, c'est tout e groupe possesseur qui peut accéder en lecture au site qu'il souhaite du temps qu'il a un compte sur le même serveur.
il peut donc récupérer les identifiants mysql et modifier comme il veux la bdd a partir de son propre script.
De plus, pour ce qui est des exemples, n'y compte pas trop car qui nous dit que tu es qui tu prétend être ?
Enfin, pour conclure, je n'ai pas 36000 exemples, mais je n'en connais qu'un... (mais bon ça existe donc quand même ...=))
je voudrai recuperer quelque info sur cette page web en enlevan tout le superflu et l afficher sur une page web le tout allignier et avec un refresh de 30 sec
je voudrai garder que les info de cette page http://videochat.camfrog.com/room-dir/ALLIANCE_CAMFROG
| status | nickname | age | sex | location |
| | | | | |
en sachan que le non ALLIANCE_CAMFROG
peu changer
c est pour un projet de site web si quelqu un pourrai m aider merci d avance
pour me contacter envoyer moi un email si possible Alliance_Camfrog@live.fr encore merci d avance a tous
D'abord récupérer le html comme cité plus haut
ensuite, faire un "strip_tags()"
$exemple = '<a href="bdgfgdf">plop</a>';
strip_tags($exemple);
ça retourne "plop"
Ensuite pour organiser le tout, perso j'utlise des expressions reguliere,
notament preg_replace();
Je vous donne mon adresse msn ;)
iloov.Heroi2k@live.fr
Merci =)
j'ai recupérer le code source de ma boutique internet
je me suis affilié avec des agence de pub.
j'ai donc le code html des pubs a mettre sur mon site.
j'ai utiliser le logiciel notepad++ pour modifier le code source
je l'ai enregistrer au format html et je les ouvert sur mon navigateur en faisant "fichier" "ouvrir".
Cependant j'ai pas changé pour autant le code source de mon site internet..
est ce que quelqu'un peut m'aider j'ai fait tout les forum tout les tutorials!!je suis perdu
Je sais pas du tout ou tu en est ou à quel niveau......
toujours est il que :
ton probleme n'est pas le même que celui de base d'ici
tu devrais créé un topic
tu devrais demander aux personnes qui ont fait ton site web
tu peux essayer d'apprendre la base (je sais pas ce que tu sais) ici : https://openclassrooms.com/fr/courses/1603881-apprenez-a-creer-votre-site-web-avec-html5-et-css3
Tu ne décris pas ton problème, sois plus explicit
Parfois, même si il ya du spam, il vaut peut être mieux laisser une adresse e mail, ou une adresse venant de "yopmail.com" pour eviter le spam si tu veux que quelqu'un te recontacte :)
ps :
après avoir modifier le code sources, il faut le renvoyer sur le serveur ftp....
ensuite "fichier ouvrir" si c'est une page php, tu ne verra pas grand chose de compréhensible. mais tout ça c'est sur le site du zero.
- 1
- 2
echo $strResult = implode("",file("http://www.monsite.com"));
?>
j'ai utilisé le code que tu as mis
<?php
$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, 'http://www.commentcamarche.net');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
$lines = array();
$lines = explode("\n", $file_contents);
// display file line by line
foreach($lines as $line_num => $line) {
echo "Line # {$line_num} : ".htmlspecialchars($line)."<br />\n";
}
et le résultat me met que la session a expiré et du coup je ne recupere pas le code html de ma page
merci de ton aide
je veut RECUPERER LE CODE HTML D'UNE PAGE WEB dans un tableau en utilisant le langage JAVA, si t a un code qui permet de le faire envoye le moi,stp.
merci d'avance.
import java.net.*; import java.io.*; public class Client{ public static void main (String args[]) throws SocketException, IOException, UnknownHostException{ URL u = new URL ("http://tim.gau.free.fr/"); byte[] pl = new byte[3000]; DataInputStream br = new DataInputStream((InputStream)u.getContent ()); for (int i = 0 ; i<1000 ; i++) System.out.println (br.readLine()); } }$Donc bien sur dans URL tu rentre l'URL que tu veux….