18041 sujets
Questions générales et questions de débutants
A premier vue je te dirait que ce n'est pas possible.
De ce que j'ai lu sur internet rapidement il semblerait que c'est possible si la page intégrée provient du même domaine ou si les CORS ont été ouvert.
Sinon j'ai aussi vu un mec qui disait avoir modifié une page distante en la récupérant son contenu via php et en injectant son CSS dedans : https://stackoverflow.com/a/12521755
à voir...
De ce que j'ai lu sur internet rapidement il semblerait que c'est possible si la page intégrée provient du même domaine ou si les CORS ont été ouvert.
Sinon j'ai aussi vu un mec qui disait avoir modifié une page distante en la récupérant son contenu via php et en injectant son CSS dedans : https://stackoverflow.com/a/12521755
à voir...
Oui tout à fait, au lieu d'utiliser une iframe, tu peux récupérer, en PHP, la source html de la page en question, et supprimer les parties qui ne t'intéressent pas, puis les afficher sur ta page.
Il faut utiliser la fonction file_get_contents('url_vers_la_page')
http://php.net/manual/fr/function.file-get-contents.php
Il faut utiliser la fonction file_get_contents('url_vers_la_page')
http://php.net/manual/fr/function.file-get-contents.php
Tiens, j'ai adapté un morceau de code que j'avais fait dans une classe dédié à la récupération de pages justement.
En espérant que cela te soit utile. N'hésites pas à poser des questions
Modifié par taspeur (01 Dec 2017 - 19:55)
En espérant que cela te soit utile. N'hésites pas à poser des questions
<?php
//Output correspond à la source html de la page
//Pattern correspond au texte que tu recherches dans le html
//way='begin' signifie que l'on garde le html à partir de la position $pos déterminée par strpos(), tout ce qui est avant est éliminé
//way='end' signifie que l'on garde le html du début jusqu'à la position $pos déterminée par strpos(), tout ce qui est apès est éliminé
//KeepPattern=true veut dire que l'on garde le texte recherché dans le résultat final. Si définie à false, on supprimes également le texte recherché
function truncateOutput($output, $pattern, $way = 'begin', $keepPattern = true){
//Ici on recherche le pattern dans notre html (output). La fonction strpos renvoie la position du pattern dans la variable output.
$pos = strpos($output, $pattern);
switch($way){
case 'begin':
if(!$keepPattern)
$pos += strlen($pattern);
$output = substr($output, $pos);
break;
case 'end':
if($keepPattern)
$pos += strlen($pattern);
$output = substr($output, 0, $pos);
break;
}
return $output;
}
$output = file_get_contents('http://www.tapage.fr');
//Exemple, on veut conserver que ce qu'il y a après la balise body, sans conserver la balise body elle meme
$output = truncateOutput($output, '<body>', 'begin', false);
//Exemple, on veut supprimer tout ce qu'il y a à partir de la balise footer, y compris la balise footer
$output = truncateOutput($output, '<footer', 'end', false);
echo $output;
?>
Modifié par taspeur (01 Dec 2017 - 19:55)
J'ai regardé mais pas réussi.
Je voudrais insérer dans iframe le site suivant : www.p50.be mais arrêter l'affichage à partir de l'onglet contact (je supprime tout ce que se trouve après Demander une offre... ) et tout en gardant la présentation)
Je voudrais insérer dans iframe le site suivant : www.p50.be mais arrêter l'affichage à partir de l'onglet contact (je supprime tout ce que se trouve après Demander une offre... ) et tout en gardant la présentation)
Bonjour,
Je voudrais clarifier ta vision des choses:
Dans ta page web tu vois TON site mais tu ne peux agir sur l'Iframe qui est un autre site
tu est très exactement comme si l'iframe était sur un autre onglet de ton navigateur !
Reprenons ce site, si tu fais un CURL dessus tu obtiendra un html que te renvoie ce site
il est en ASP, pas en PHP !
Copies ceci dans un php chez toi, cela te fera un html mais n'étant pas dans un iframe tu n'est plus sur leur site et toutes les ressources ne seront pas récupérées les CSS JS etc...
Voila pourquoi c'est trés complexe de t'aider
Et lance le curl lire un site.htm
Modifié par Christele (02 Dec 2017 - 02:48)
Je voudrais clarifier ta vision des choses:
Dans ta page web tu vois TON site mais tu ne peux agir sur l'Iframe qui est un autre site
tu est très exactement comme si l'iframe était sur un autre onglet de ton navigateur !
Reprenons ce site, si tu fais un CURL dessus tu obtiendra un html que te renvoie ce site
il est en ASP, pas en PHP !
Copies ceci dans un php chez toi, cela te fera un html mais n'étant pas dans un iframe tu n'est plus sur leur site et toutes les ressources ne seront pas récupérées les CSS JS etc...
Voila pourquoi c'est trés complexe de t'aider
<?php
$ch = curl_init("http://www.p50.be/");
$fp = fopen("curl lire un site.htm", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
Et lance le curl lire un site.htm
Modifié par Christele (02 Dec 2017 - 02:48)
Salut Christele,
Je vois qu'avec curl tu peux passer des headers http.
J'imagine que l'avantage de curl sur file_get_contents, c'est que tu peux, par exemple, te connecter sur un compte, et récupérer une page non publique.
Ou passer des cookies etc...
Pour faire ça j'utilise les sockets avec la fonction fsockopen(), puis je me connecte en TCP sur le site en question.
C'est le système d'un proxy en fait.
Jamais essayé CURL, ça a l'air pas mal
Modifié par taspeur (02 Dec 2017 - 08:59)
Je vois qu'avec curl tu peux passer des headers http.
J'imagine que l'avantage de curl sur file_get_contents, c'est que tu peux, par exemple, te connecter sur un compte, et récupérer une page non publique.
Ou passer des cookies etc...
Pour faire ça j'utilise les sockets avec la fonction fsockopen(), puis je me connecte en TCP sur le site en question.
C'est le système d'un proxy en fait.
Jamais essayé CURL, ça a l'air pas mal
Modifié par taspeur (02 Dec 2017 - 08:59)
Salut
Je t'invite à regarder ce sujet :
https://stackoverflow.com/questions/217776/how-to-apply-css-to-iframe
Apparement tu peux injecter du css
Je t'invite à regarder ce sujet :
https://stackoverflow.com/questions/217776/how-to-apply-css-to-iframe
Apparement tu peux injecter du css
var cssLink = document.createElement("link");
cssLink.href = "style.css";
cssLink.rel = "stylesheet";
cssLink.type = "text/css";
frames['frame1'].document.body.appendChild(cssLink);