2017-08-31 2 views
1

Ich möchte wissen, ob es möglich ist, zu überprüfen, ob eine Textbox einen Link enthält. Und wenn es möglich ist, diese Verbindung aus dem Feld zu wählen.PHP Überprüfen, ob Textbox einen Link enthält

Ich habe es so versucht, aber das Problem ist, dass ich nicht den ganzen Link auswählen kann und die Abfrage ist sehr ungenau.

$a = 'Lorem ipsum dolor sit amet, consetetur sadipscing www.loremipsum.com/asd/fgh/jkl elitr, sed diam '; 

       if (strpos($a, 'www.') !== false) { 
        echo 'true'; 
       } 

Also noch einmal zur Erklärung:

Ich habe ein Textfeld, das einen Kommentar, sondern auch Links enthalten. Ich muss den richtigen Link aus diesem Feld auswählen und es separat in einer Variablen speichern.

Ich möchte nicht, dass Sie meinen Code codieren, aber es wäre großartig, wenn jemand eine Funktion oder eine Methode dafür kennt.

Vielen Dank!

+1

https://stackoverflow.com/questions/910912/extract-urls-from-text-in-php –

+0

Probieren Sie einen regulären Ausdruck wie die oben gewählte Antwort in https://stackoverflow.com/questions/3809401/ what-is-a-good-Regular-Ausdruck-zu-Übereinstimmung-URL zusammen mit 'preg_match' oder' preg_match_all', um die URL abzurufen. –

+0

Mögliches Duplikat von [URL aus Text in PHP extrahieren] (https://stackoverflow.com/questions/910912/extract-urls-from-text-in-php) – JustBaron

Antwort

2

Hier ist ein regulärer Ausdruck, der www.whatever https://regex101.com/r/rdOKQB/1/ Spiele

<?php 

$string = 'Lorem ipsum dolor sit amet, consetetur sadipscing www.loremipsum.com/asd/fgh/jkl elitr, sed diam '; 
$regex= '#www\.\S+#'; 

preg_match_all($regex,$string, $matches); 
var_dump($matches); 

Welche Ausgänge: www.loremipsum.com/asd/fgh/jkl es hier ansehen: https://3v4l.org/4t2oV

Sie könnten eine andere Regex Test für http wollen: // oder https: // stattdessen/zu? https://regex101.com/r/rdOKQB/2

#https?:\/\/\S+# 
+0

wow, danke, dass es wirklich funktioniert. aber wie kann ich nur den Link und nicht das ganze Array ausgeben? –

+0

'echo $ passt [0] [0];' Überprüfen Sie hier https://3v4l.org/1u09A – delboy1978uk

+0

danke. Ich habe es mit einer For-Schleife gelöst. weil es mehr als eine Verbindung sein kann. Aber ist nicht das erste [0] unnötig? –

0

Statt strpos Sie strstr verwenden können, das nächste Wort zurückgibt.

Verwandte Themen