Wie zu entfernen: https:// aus der URL und fügen Sie http:// statt dem string in PHP?
Zuerst muss ich überprüfen Sie die URL-Zeichenfolge, wenn das Protokoll der URL ist https
, dann muss ich ersetzen http
in PHP.
So können die Eingänge und Ausgänge dieser php-Funktion muss wie folgt sein:
Input -> https://example.com/example/https.php
Output-> http://example.com/example/https.php
Input -> http://example.com/example/https.php
Output-> http://example.com/example/https.php
schönes Beispiel. sehr selten hier..
InformationsquelleAutor JohnUS | 2012-02-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dadurch wird sichergestellt, es ist am Anfang der Zeichenfolge, und es ist gefolgt von
://
Große +1 für diese. Verhindert Probleme mit allen anderen Antworten, die Sie so weit, wo es vielleicht mehr als ein
https
in einem string.Ich bin damit einverstanden, ist dies die richtige Stelle für die mithilfe
strncmp
oderstrpos
(die ist schneller alsstrncmp
im php als string beginnt mit Nadel).Warum bevorzugen Sie RegEx statt Vyktor Antwort ?
Da eine regex ermöglicht die Verwendung von Dinge wie
^
um nur auf den Anfang eines Strings, das ist eine nützliche Funktion in diesem Fall. Alle Geschwindigkeits-Unterschiede sind, wird ziemlich vernachlässigbar, wenn man nicht eine große Website wie Facebook.InformationsquelleAutor inhan
Den
Ist auf Zweck und ist nicht === da wir nur der Fall, wenn die URL beginnt mit https://und einfach ersetzen.
Siehe auch: http://php.net/manual/en/function.parse-url.php
https://
mehrmals in der URL, es wäre wahrscheinlich falsch (einige nicht-URL-escaped-Eintrag), aber es kann passieren:https://..../index.php?source=https://...
.Wird, aktualisiert, um widerzuspiegeln, dass die Möglichkeit, danke!
Hh, auf das update, was über URLs wie
$url = 'http://username:password@hostname/path?arg=value#anchor';
? :)) (aber ich mag Ihre Art zu denken, +1)Gut, mal wieder aktualisiert...ich glaube, dass sollte funktionieren. Prüft, wenn diese mit https beginnt und nur sollte nur ersetzen des ersten Vorkommens.
Sie haben am Ende mit meiner Antwort .)) so, jetzt habe ich nichts schlechtes zu sagen 🙂 vielleicht
strncmp
- und/oderstrpos
wäre schneller alsparse_url
, aber das ist ein richtiger Weg, um zu überprüfen, Protokoll.InformationsquelleAutor Captain Insaneo
Zuerst müssen Sie überprüfen
https
Präsenz mitstrpos()
:(Hinweis
===
), als Sie können extrahieren Sie alle Strings nachhttps://
(das ist, nachdem die ersten 8 Zeichen, oder 5, wenn Sie den ursprünglichen://
) mitsubstr()
:InformationsquelleAutor Vyktor
Können Sie diese Lösung verwenden.
InformationsquelleAutor Onkar Janwa
Können Sie eine Kombination von
str_pos()
undstr_replace()
um dies zu erreichen:=== 0
statt, um sicherzustellen, dass es auf den Anfang der Zeichenkette.Es kann "https:" in einem string mehr als einmal.
gute call. Aktualisierte Antwort, nur ersetzen Sie die erste Instanz von 'https:' und wenn nur am Anfang. (Man beachte das 4.
count
parameter Hinzugefügt str_replace.InformationsquelleAutor Brian Glaz
InformationsquelleAutor Paul T.
Versuchen, diese Arbeit auf mich..
InformationsquelleAutor MAHABUB HOSSAIN RISHAD