PHP - URL - zunanja ali notranja povezava?
 
Lucifix 25. maj 2010 07:03:04 Pridružen od:
14. okt 2008
744 objav
438 12 0
#1

Imam eno funkcijo v php-ju, ki preveri ali se v tekstu nahaja povezava in če se, ji doda html a href...



Želel bi pa preveriti ali je to zunanja povezava na drug spletni naslov ali je notranja.



Ima kdo kakšno idejo?


function parse_urls($text, $target = '_self')
{
if (preg_match_all('/((ht|f)tps?:\/\/([\w\.]+\.)?[\w-]+(\.[a-zA-Z]{2,4})?[^\s\r\n\(\)"\'<>\,\!]+)/si', $text, $urls))
{
foreach (array_unique($urls[1]) AS $url)
{
$text = str_replace($url, '<a href="'. $url .'" target="'. $target .'" title="'. $url .'">'. $url .'</a>', $text);
}
}
return $text;
}
všeč(0) ni všeč(0) spam(0)
 
Roky 25. maj 2010 07:07:25 Pridružen od:
9. apr 2008
2506 objav
3240 335 107
#2

Zakaj ne uporabljaš DomDocument, potem greš čez vse linke in rečeš $link->getAttribute('target') == 'blank' ....?


všeč(0) ni všeč(0) spam(0)
rok.meglic@gmail.com - 031 492 148
 
Lucifix 25. maj 2010 07:14:23 Pridružen od:
14. okt 2008
744 objav
438 12 0
#3

Nisem se nikoli poglabljal v DomDocument...



V mojem primeru se gre, da bi vse zunanje povezave na strani redirectal preko kakšne preproste php skripte, ampak samo v primeru ko je povezava zunanja.



Do sedaj sem naredil nekaj takega:


<?php

$url = $_GET["u"];

if(!isValidURL($url)) {
echo "Please enter valid URL including http://";
} else {
header("Location: ".$url."");
}
exit;

function isValidURL($url) {
return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
}
?>
všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se