Inhaltsverzeichnis
Verwenden Sie Reverse Proxy, um Cross-Domänen-Probleme zu lösen
CORS überall einsetzen
Verwenden von Reverse Proxy in Iframe
Verwenden Sie Curl, um den Seitenquellcode (alternativ) abzurufen
Zusammenfassen
Heim Backend-Entwicklung PHP-Tutorial So anzeigen oder simulieren Sie eine mobile Vorschau der Website eines Benutzers in einer Website

So anzeigen oder simulieren Sie eine mobile Vorschau der Website eines Benutzers in einer Website

Aug 30, 2025 pm 06:18 PM

So anzeigen oder simulieren Sie eine mobile Vorschau der Website eines Benutzers in einer Website

Wie kann ich eine mobile Vorschau der Zielwebsite in Ihre Website einbetten? Aufgrund der Einschränkungen der homologen Richtlinien kann die Verwendung von IFRames direkt mit Kreuzdomänenproblemen auftreten. In diesem Artikel wird die Verwendung von Reverse-Proxy zum Hinzufügen von CORS-Headern zur Lösung von Cross-Domänen-Problemen vorgestellt und Beispiele für die Verwendung von IFRames und Reverse-Proxy zur Implementierung mobiler Voransichten bereitgestellt.

Verwenden Sie Reverse Proxy, um Cross-Domänen-Probleme zu lösen

Das Laden der Zielwebsite direkt im IFrame kann "sich geweigert werden, um eine Verbindung herzustellen" -Fehler, da die homologe Richtlinie des Browsers Cross-Domänen-Anforderungen verhindert. Um dieses Problem zu lösen, können Sie einen Reverse-Proxy verwenden, der als Mittelsmann fungiert, Inhalte vom Zielserver erhält und an den Client zurückgibt, während Sie den CORS-Header (Cross-Domain-Ressourcenfreigabe) hinzufügen.

CORS Anywhere ist ein häufig verwendeter NodeJS Reverse -Proxy, der automatisch CORS -Header hinzufügt.

CORS überall einsetzen

  1. Installieren Sie NodeJS und NPM: Stellen Sie sicher, dass NodeJs und NPM (Node Package Manager) auf Ihrem Server installiert sind.

  2. Installieren Sie CORS überall: Verwenden Sie NPM, um CORs überall zu installieren:

     npm install -g cors -anywhere
  3. Führen Sie CORS überall aus: Starten Sie den CORS Anywhere Service:

     CORS-JEDENWHER-Origin "*"-RequireHeader-Ursprung
    • -Origin "*" ermöglicht Anfragen aus einer Domäne (die Produktionsumgebung wird nicht empfohlen, der zulässige Domänenname sollte angegeben werden).
    • -RequireHeader Origin erfordert, dass die Anfrage den Ursprungs-Header enthalten muss.

Verwenden von Reverse Proxy in Iframe

Nachdem Sie CORs überall bereitgestellt haben, können Sie die Proxy -URL im IFrame verwenden.

 <iframe id="Vorschau-Frame1" src="http:%20//%20your-cors-anywhere-server/https:%20//www.kd-brows.com/" style="Höhe: 547px; Breite: 320px;">/iframe></iframe>

Ersetzen Sie http: // your-cors-anwhere-server durch die Adresse Ihres CORS Anywhere Server. https://www.kd-brows.com/ Ersetzen Sie durch die Adresse der Website, die Sie vorschau möchten.

Anmerkungen:

  • Sicherheit: -Origin "*" verfügt über Sicherheitsrisiken in Produktionsumgebungen und sollte so konfiguriert werden, dass der Zugriff nur auf Ihren Domänennamen ermöglicht.
  • Leistung: Die Verwendung eines Reverse -Proxy erhöht die Latenz von Anforderungen, da zusätzliche Server erforderlich sind.
  • CORS Anywhere Einschränkungen: CORs überall selbst können Ratengrenzen oder andere Einschränkungen aufweisen und müssen gemäß den tatsächlichen Bedingungen angepasst werden.
  • Beschränkungen für Zielwebsites: Einige Websites blockieren möglicherweise immer noch den Zugriff über den Proxy, auch wenn CORS -Header hinzugefügt werden.

Verwenden Sie Curl, um den Seitenquellcode (alternativ) abzurufen

Eine andere Möglichkeit besteht darin, Curl zu verwenden, um den HTML -Quellcode der Zielwebsite auf der Serverseite zu erhalten und ihn dann auf Ihrer Website zu analysieren und anzuzeigen. Diese Methode kann die homologe Richtlinie des Browsers umgehen, erfordert jedoch die serverseitige Unterstützung.

PHP -Beispiel:

  Php
Funktion 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, wie Gecko) Chrom/58.0.3029.110 Safari/537.36'); // Benutzer-Agent setzen
  $ output = curl_exec ($ ch);
  curl_close ($ ch);
  $ output zurückgeben;
}

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

// $ content verarbeiten hier, zum Beispiel den Schlüsselinhalt extrahieren und echo "<pre class="brush:php;toolbar:false">" anzeigen. htmlspecialChars ($ content). "
"; ?>

Anmerkungen:

  • Benutzer-Agent: Das Einstellen von curlopt_useragent kann das Browserverhalten simulieren und vermeiden, dass der Zugriff, der von der Zielwebsite als Crawler erkannt wird, verweigert wird.
  • Seitenanalyse: Nach dem Erhalt des HTML -Quellcode muss er analysiert und den angezeigten Inhalt extrahiert werden. Sie können das Domdocument von PHP oder andere HTML -Parsing -Bibliotheken verwenden.
  • Ressourcenbelastung: Curl erhält nur HTML -Quellcode und lädt Ressourcen wie CSS, JavaScript usw. nicht automatisch. Diese Ressourcen müssen manuell verarbeitet werden, z. B. das Ändern der URL, um auf Ihren Server zu verweisen.
  • Rechtsrisiko: Wenn Sie Inhalte von anderen Websites kriechen und verwenden, müssen Sie die relevanten Gesetze und Vorschriften sowie die Nutzungsbedingungen der Website einhalten.

Zusammenfassen

Dieser Artikel beschreibt zwei Möglichkeiten, eine mobile Vorschau der Website eines Benutzers in einer Website anzuzeigen oder zu simulieren: Verwenden eines Reverse -Proxy und Verwendung von CURL, um den Seitenquellcode zu erhalten. Die Methode zur Verwendung von Reverse -Proxy ist einfach und einfach zu bedienen, erfordert jedoch Bereitstellung und Wartung des Reverse -Proxy -Servers. Die Methode der Verwendung von Curl ist flexibler, erfordert jedoch die Seitensprech- und Ressourcenbelastung, und es müssen rechtliche Risiken beachtet werden. Welche Methode zu wählen, hängt von Ihren spezifischen Anforderungen und technischen Funktionen ab.

Das obige ist der detaillierte Inhalt vonSo anzeigen oder simulieren Sie eine mobile Vorschau der Website eines Benutzers in einer Website. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Stock Market GPT

Stock Market GPT

KI-gestützte Anlageforschung für intelligentere Entscheidungen

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie überprüfen Sie, ob eine E -Mail -Adresse in PHP gültig ist? Wie überprüfen Sie, ob eine E -Mail -Adresse in PHP gültig ist? Sep 21, 2025 am 04:07 AM

UseFilter_var () tovalateMailSyntaxandCheckdnsrr () tuverifyDomainMxRecords.Example: $ EMAMME = "User@example.com"; if (f ilter_var ($ mail, filter_validate_email) && checkDnsrr (explode ('@', $ mail) [1], 'mx') {echo "validandDeliverableMail & qu

Wie erstelle ich eine tiefe Kopie oder Klon eines Objekts in PHP? Wie erstelle ich eine tiefe Kopie oder Klon eines Objekts in PHP? Sep 21, 2025 am 12:30 AM

UseUnSerialize (Serialize ($ OBJ)) FODEPCOPYPYWIEDALLDATAISSERIALIZIABLE; Andernfalls implementieren Sie __Clone () TomanuelleduplicatenestoBjectSandavoidSharedReferences.

Wie fusioniere ich zwei Arrays in PHP? Wie fusioniere ich zwei Arrays in PHP? Sep 21, 2025 am 12:26 AM

Usearray_merge () tocombinearrays, überschreibende DuplicatestringKeysandReindexingnumericKeys;

MySQL Bedingte Aggregation: Anwendungsfallerklärung zur Implementierung des Zustands und der Zählung von Feldern MySQL Bedingte Aggregation: Anwendungsfallerklärung zur Implementierung des Zustands und der Zählung von Feldern Sep 16, 2025 pm 02:39 PM

In diesem Artikel wird eingehalten, wie man Fallanweisungen verwendet, um eine bedingte Aggregation in MySQL durchzuführen, um eine bedingte Summierung und Zählung bestimmter Felder zu erreichen. In einem praktischen Abonnement -System -Fall zeigt es, wie die Gesamtdauer und Anzahl der Ereignisse dynamisch auf der Grundlage des Datensatzstatus (z. B. "Ende" und "Abbrechen") berechnet werden kann, wodurch die Einschränkungen herkömmlicher Summenfunktionen überwunden werden, die den Anforderungen der komplexen bedingten Aggregation nicht erfüllen können. Das Tutorial analysiert die Anwendung von Fallanweisungen in Summenfunktionen im Detail und betont die Bedeutung von Koaleszen, wenn es sich um die möglichen Nullwerte des linken Join befasst.

Wie verwende ich Namespaces in einem PHP -Projekt? Wie verwende ich Namespaces in einem PHP -Projekt? Sep 21, 2025 am 01:28 AM

NamespacesinphporganizeCodeAndPreventnamingConflictsByGroupingclasses, Schnittstellen, Funktionen und Constantsunderaspecificname.2.DefineAnaceStHenameSpaceKeyWorthetopoFafile, gefolgt von BythenameSpacename, solcheasapp \ controllers.3.

Was sind magische Methoden in PHP und liefern ein Beispiel für __call () `und __get ()`. Was sind magische Methoden in PHP und liefern ein Beispiel für __call () `und __get ()`. Sep 20, 2025 am 12:50 AM

The__call () methodistiggeredWenaninAccessibleorundEfinedMethodiscalledonanObject, erlaubt CustomHandlingByaccepthodnameandargumente, ashownwhencallingundEfinedMethodselikesayhello (). 2.The__get () methodisinvokedInacescessininginingininginingininginingininginingininginingincessibleceschessibleChessibleChessibleornonon-EX

Wie bekomme ich die Dateierweiterung in PHP? Wie bekomme ich die Dateierweiterung in PHP? Sep 20, 2025 am 05:11 AM

Usepathinfo ($ filename, pathinfo_extension) togetTheFilextesion; itrelablyHandlesMultiPleDOTSandgeCases, ReturningTheExtesion (z.

Wie aktualisiere ich einen Datensatz in einer Datenbank mit PHP? Wie aktualisiere ich einen Datensatz in einer Datenbank mit PHP? Sep 21, 2025 am 04:47 AM

ToupDateadatabaserecordinphp, FirstConnectusepdoOrmysqli, ThenuSePreparedStatementStoExexexeSecuresQLUPDateQuery.example: $ pdo = newpdo ("MySQL: Host = LocalHost; dbname = your_database", $ username, $ username, $ username);

See all articles