2017-12-25 11 views
-3

Ich versuche, Link von Array zu isolieren, aber in foreach-Schleife funktioniert es nicht für mich. Es cider beide Elemente als Link.Link aus Arrayphp extrahieren

Ich möchte nur Hyperlink google.com und nicht Bäckerei Text, aber ich bekomme Link auf beiden, wenn Teil nicht funktioniert und seine Bäckerei als Link.

$services=array('Bakery','www.google.com'); 

foreach($services as $service): 

    if (!filter_var($service, FILTER_VALIDATE_URL) === false) { 
     $service = $service; 
    } else { 
     $service = '<a href='.$service.'>'.$service.'</a>'; 
    } 
    echo $service; 
endforeach; 
+0

Sie erkennen, gibt es einen Parse-Fehler hier –

+0

Semikolon fehlte aber das ist nicht das Problem, fügte ich it.my Frage ist nicht in Bezug auf das Parsen oder Syntaxfehler – user2477139

+0

Sie werden detailliert beschreiben müssen, welche Ergebnisse Sie im Gegensatz zu dem bekommen, was Sie jetzt bekommen. Ich habe Ihren Code getestet und erhalte Ergebnisse. Ihre Bearbeitung und der ursprüngliche Post haben das nicht beschrieben und Sie können nicht erwarten, dass wir/mich herausfinden, was Sie suchen. –

Antwort

1

Das Problem hierbei ist, mit der folgenden Aussage:

if (!filter_var($service, FILTER_VALIDATE_URL) === false) 
    ^           ^^^^^ 

Sie sind hier doppelt negativ mit dem ! Operator sein, was bedeutet, „nicht“ und Sie verwenden „false“.

Entweder entfernen Sie die ! oder ändern Sie die "falsch" auf "wahr".

Sie müssen auch http:// zu der URL hinzufügen, die Sie verwenden möchten, um ordnungsgemäß zu validieren.

$services=array('Bakery','www.google.com'); 

wird für den Google-Link fehlschlagen. Wenn Sie es überprüfen möchten, müssen Sie es ändern:

$services=array('Bakery','http://www.google.com');