Avatar billede apromis Praktikant
08. august 2012 - 22:09 Der er 6 kommentarer og
1 løsning

Find link i streng

Hej Alle sammen.

Jeg har en streg som levere en tekst del. Denne indeholder nogle links.
Jeg vil meget gerne "fange" det sidste link og placere det i en ny streng.

Det kan se således ud :
a class="read_more" href="URL" title="opskrifter !">Read more...</a>

Hvorledes gør jeg det ?

På forhånd tak.
Avatar billede inteeeL Nybegynder
09. august 2012 - 04:29 #1
Hvis opstillingen altid ser ud, som du har vist, kan du bruge følgende kode. Der er flere måder at gøre det på. Jeg splitter først stringen efter dobbel-quote, fjerner de 3 første elementer samt de 3 sidste - og afslutningsvis står jeg tilbage med URL-elementet. Eftersom det stadig er et array, bruger jeg implode til at samle det til en string.
<?php

$string = '<a class="read_more" href="URL" title="opskrifter !">Read more...</a>';
$url = implode('', array_slice(explode('"', $string), 3, -3));

echo $url;

?>
Avatar billede apromis Praktikant
09. august 2012 - 11:04 #2
Hej min ven.

URL vil desværre være dynamisk og dermed vil ovenstående ikke virke :(.

HAr du et andet forslag ?
Avatar billede inteeeL Nybegynder
09. august 2012 - 13:38 #3
Hvad mener du? Vil hele stringen være dynamisk? Den opfanger jo det, der står mellem href=" og ", uanset om det er URL eller et (hypotetisk) link. Ellers må du lige uddybe. :-)
Avatar billede olsensweb.dk Ekspert
09. august 2012 - 23:42 #4
prøv denn function (kan optimeres), url kan placeres forskellige steder i stringen som du kan se af mine test stringe
functionen er den er lagnt fra gennemtested

<?php
function GetUrl($string){
    $ar=explode(' ', $string);
    $lng=count($ar);
    $rest="";
    for($j=0;$j<$lng; $j++){       
        $str=stristr($ar[$j], "href=");           
        if(strlen($str)>0){
            $rest = substr($str, 6, -1);           
            break;
        }   
    }
    return $rest;   
}
// $string = '<a class="read_more" href="http://olsensweb.dk" title="opskrifter !">Read more...</a>';
// $string = '<a href="http://olsensweb.dk" class="read_more" title="opskrifter !">Read more...</a>';
// $string = '<a title="opskrifter" href="http://it-k.dk/dynamisk-web-nu-ogs%C3%A5-til-mobil" >Read more...</a>';
$string = '<a title="opskrifter" href="http://www.google.com/?var=234&key=234" >Read more...</a>';
echo GetUrl($string);
?>


hvis det ikke virker må du komme med eks på stringe du tester på
Avatar billede olsensweb.dk Ekspert
09. august 2012 - 23:48 #5
hvis du ikke gider at rette op på de link E's url parser har smadret ligger den her
http://experten.olsensweb.dk/967125/test.php?source
Avatar billede apromis Praktikant
15. juni 2013 - 13:05 #6
Svar og du skal have points :)
Avatar billede olsensweb.dk Ekspert
28. juni 2013 - 00:40 #7
får du her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester