Bonjour,

J'aurais voulu savoir s'il était possible de masquer une "div" d'une page web ? lors de l'intégration de cette dernière dans une iframe ?

Le but étant de masquer la fin d'une page web.

Merci pour votre retour.

Cordialement,

Anathole
Modérateur
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...
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

<?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)
Si tu m'identifies précisément ce que tu veux enlever dans le code source html je veux bien te le faire.
Quand on clique sur "Demandez une offre à votre courtier" on est dirigé vers l'ancre correspondant à ce paragraphe et je voudrais tout simplement masquer/enlever tout ce qui se situe après. Je remplacerai ensuite par un bouton vers un formulaire.
Tous les liens sont relatifs. Il faudrait changer toutes les urls.
Ca fait du boulot, faut faire un script php qiu s'occupe de ça.

Désolé je n'aurais pas le temps de te faire ça
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 Smiley confused

<?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)