Table des matières
Utilisez le proxy inversé pour résoudre les problèmes de domaine croisé
Déploier des Cors n'importe où
En utilisant le proxy inversé dans iframe
Utilisez Curl pour obtenir le code source de la page (alternative)
Résumer
Maison développement back-end tutoriel php Comment afficher ou simuler un aperçu mobile du site Web d'un utilisateur dans un site Web

Comment afficher ou simuler un aperçu mobile du site Web d'un utilisateur dans un site Web

Aug 30, 2025 pm 06:18 PM

Comment afficher ou simuler un aperçu mobile du site Web d'un utilisateur dans un site Web

Comment intégrer un aperçu mobile du site Web Target dans votre site? En raison des limites des politiques homologues, l'utilisation directement des IFRAMES peut rencontrer des problèmes de domaine croisé. Cet article introduira l'utilisation du proxy inversé pour ajouter des en-têtes COR pour résoudre les problèmes de domaine transversal, et fournira des exemples d'utilisation des iframes et de proxy inversé pour implémenter les aperçus mobiles, et mentionne également brièvement comment utiliser Curl pour obtenir le code source de page.

Utilisez le proxy inversé pour résoudre les problèmes de domaine croisé

Le chargement du site Web cible directement dans l'IFRAME peut rencontrer des erreurs "refusées de connecter" car la politique homologue du navigateur empêche les demandes de domaine croisé. Pour résoudre ce problème, vous pouvez utiliser un proxy inversé, qui agit comme un intermédiaire, obtient du contenu du serveur cible et le renvoie au client, tout en ajoutant l'en-tête CORS (partage de ressources inter-domaines).

CORS Anywhere est un proxy inversé NodeJS couramment utilisé qui ajoute automatiquement les en-têtes CORS.

Déploier des Cors n'importe où

  1. Installez NodeJS et NPM: assurez-vous que NodeJS et NPM (Node Package Manager) sont installés sur votre serveur.

  2. Installez les COR n'importe où: utilisez le NPM pour installer COR n'importe où:

     NPM Install -g CORS-Anhewhere
  3. Exécutez CORS n'importe où: Démarrez le service CORS n'importe où:

     CORS-ANHOINE - ORIGIN "*" - ORIGINATION
    • --origin "*" autorise les demandes de n'importe quel domaine (l'environnement de production n'est pas recommandé, le nom de domaine autorisé doit être spécifié).
    • - Origine de requireheader exige que la demande doit contenir l'en-tête d'origine.

En utilisant le proxy inversé dans iframe

Après avoir déployé des COR n'importe où, vous pouvez utiliser l'URL proxy dans l'IFRAME.

 <iframe id="Preview-Frame1" src="http:%20//%20your-cors-anywhere-server%20/%20https:%20//www.kd-brows.com/" style="hauteur: 547px; largeur: 320px;"> / iframe></iframe>

Remplacez http: // your-cors-anywhere-server par l'adresse de votre serveur CORS n'importe où. https://www.kd-brows.com/ Remplacez par l'adresse du site Web que vous souhaitez prévisualiser.

Notes:

  • Sécurité: --origin "*" présente des risques de sécurité dans les environnements de production et doit être configuré pour permettre l'accès uniquement à votre nom de domaine.
  • Performances: l'utilisation d'un proxy inversé augmente la latence des demandes car des serveurs supplémentaires sont nécessaires.
  • CORS Anywhere Limitations: CORS n'importe où lui-même peut avoir des limites de taux ou d'autres restrictions et doit être ajustée en fonction des conditions réelles.
  • Restrictions sur les sites Web cibles: certains sites peuvent toujours bloquer l'accès via le proxy, même si des en-têtes COR sont ajoutés.

Utilisez Curl pour obtenir le code source de la page (alternative)

Une autre façon consiste à utiliser Curl pour obtenir le code source HTML du site Web cible du côté serveur, puis analyser et l'afficher sur votre site Web. Cette méthode peut contourner la stratégie homologue du navigateur, mais nécessite une prise en charge côté serveur.

Exemple PHP:

  Php
fonction get_page_content ($ url) {
  $ ch = curl_init ();
  curl_setopt ($ ch, curlopt_url, $ url);
  curl_setopt ($ ch, curlopt_returntransfer, 1);
  curl_setopt ($ ch, curlopt_useragent, 'Mozilla / 5.0 (Windows NT 10.0; win64; x64) Applewebkit / 537.36 (khtml, comme gecko) Chrome / 58.0.3029.110 Safari / 537.36'); // Définir l'utilisateur-agent
  $ output = curl_exec ($ ch);
  curl_close ($ ch);
  return $ output;
}

$ url = 'https://www.kd-brows.com/';
$ content = get_page_content ($ url);

// Processus $ Contenu ici, par exemple, extraire le contenu clé et afficher l'écho "<pre class="brush:php;toolbar:false">". htmlSpecialChars ($ contenu). "
"; ?>

Notes:

  • User-Agent: Définir Curlopt_Userager peut simuler le comportement du navigateur et éviter l'accès refusé par le site Web cible reconnu comme un robot.
  • Analyse des pages: Après avoir obtenu le code source HTML, il doit être analysé et extrait le contenu qui doit être affiché. Vous pouvez utiliser DomDocument de PHP ou d'autres bibliothèques d'analyse HTML.
  • Chargement des ressources: Curl n'obtiendra que le code source HTML et ne chargera pas automatiquement des ressources telles que CSS, JavaScript, etc. Ces ressources doivent être traitées manuellement, comme la modification de l'URL pour pointer vers votre serveur.
  • Risque juridique: lors de la rampe et de l'utilisation du contenu d'autres sites Web, vous devez vous conformer aux lois et réglementations pertinentes et aux conditions d'utilisation du site Web.

Résumer

Cet article décrit deux façons d'afficher ou de simuler un aperçu mobile du site Web d'un utilisateur dans un site Web: à l'aide d'un proxy inversé et à l'utilisation de Curl pour obtenir le code source de page. La méthode d'utilisation du proxy inverse est simple et facile à utiliser, mais nécessite le déploiement et la maintenance du serveur proxy inversé. La méthode d'utilisation de Curl est plus flexible, mais nécessite l'analyse de la page et le chargement des ressources, et les risques juridiques doivent être prêts attention. La méthode à choisir dépend de vos besoins spécifiques et de vos capacités techniques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment vérifier si une adresse e-mail est valide en PHP? Comment vérifier si une adresse e-mail est valide en PHP? Sep 21, 2025 am 04:07 AM

Usefilter_var () tovalidateemailsyntaxandcheckdnsrr () toverifydomainmxrecords.example: $ email = "user@example.com"; if (f ilter_var ($ e-mail, filter_validate_email) && checkdnsrr (explosage ('@', $ e-mail) [1], 'mx')) {echo "ValidAndDeliverableMail & Qu

Comment faire une copie profonde ou un clone d'un objet en PHP? Comment faire une copie profonde ou un clone d'un objet en PHP? Sep 21, 2025 am 12:30 AM

UseUnserialize (serialize ($ obj)) FordopcopyingwhenallDataisSerializable; Sinon, implémentez__Clone () TomanuallyDuplicatesedObjectsAndavoidSharedReferences.

Comment fusionner deux tableaux en php? Comment fusionner deux tableaux en php? Sep 21, 2025 am 12:26 AM

UseArray_merge () toCombineArrays, écrasant leduplicatestringKeysAndreIndexingNumericKeys; ForsimplecCaTencatenation, en particulierInphp5.6, usethesplatoperator [... $ array1, ... $ array2].

Comment utiliser des espaces de noms dans un projet PHP? Comment utiliser des espaces de noms dans un projet PHP? Sep 21, 2025 am 01:28 AM

NamespacesInphporganizEcodeAndPreventnamingConflictsBygroupingClasses, Interfaces, Functions et ConstantsunSunSaspecificName.2.DefineanamespaceusingTheNamesPaceSpaceKeyWordAtTopofaFile, suiviByTheNamesPacename, Suchasapp \ Controlers...USUSEUSEKEYWORDTOI

MySQL Aggrégation conditionnelle: Instruction de cas d'utilisation pour mettre en œuvre le résumé de la condition et le comptage des champs MySQL Aggrégation conditionnelle: Instruction de cas d'utilisation pour mettre en œuvre le résumé de la condition et le comptage des champs Sep 16, 2025 pm 02:39 PM

Cet article explique en profondeur comment utiliser les instructions de cas pour effectuer une agrégation conditionnelle dans MySQL pour atteindre la sommation conditionnelle et le comptage de champs spécifiques. Grâce à un cas de système d'abonnement pratique, il montre comment calculer dynamiquement la durée totale et le nombre d'événements en fonction de l'état des enregistrements (tels que "end" et "annuler"), surmontant ainsi les limites des fonctions de somme traditionnelles qui ne peuvent pas répondre aux besoins d'une agrégation conditionnelle complexe. Le tutoriel analyse en détail l'application des instructions de cas en détail et souligne l'importance de la fusion lorsqu'il s'agit des valeurs nulles possibles de la jointure gauche.

Quelles sont les méthodes magiques en PHP et fournissent un exemple de `__Call () 'et` __get ()'. Quelles sont les méthodes magiques en PHP et fournissent un exemple de `__Call () 'et` __get ()'. Sep 20, 2025 am 12:50 AM

La méthodiette () méthodiste axée sur le point de réviser la mise en œuvre de l'inscription, ce qui permet de faire de la maintenance à la qualité de qualité et

Comment mettre à jour un enregistrement dans une base de données avec PHP? Comment mettre à jour un enregistrement dans une base de données avec PHP? Sep 21, 2025 am 04:47 AM

ToupDateAdatabasereCorDinPhp, FirstConnectUsingPDoOrmysQLi, theNusepreparedStationStoExECUSEASECURSQLUPDATEQUERY.example: $ pdo = newPDO ("MySql: host = localhost; dbname = votre_database", $ username, $ mot de passe); $ sql = "dameussem =.

Comment obtenir l'extension de fichier en php? Comment obtenir l'extension de fichier en php? Sep 20, 2025 am 05:11 AM

UsePathinfo ($ nom de fichier, pathinfo_extension) togetThefileExtension; itreliabblyHandlesMultipledototsEdGasases, renvoyantTheExtension (par exemple, "pdf") oranemptystringefNoneExists.

See all articles