Har en variabel som är tagen ur ett databas fält med hjälp av en whilesats.
säg att det är: "$text="hejsan här är en webadress, https://www.php.net "
Nu vill jag ha en ny sträng där den börjar på www och slutar vid nästa mellanrum.
Med andra ord tar ut en webadress ur en databascell...
Har använt:
$sok=$text;
$link=strstr($sok,"www");
Men då kan man bara speca början av strängen.
Vad ska jag använda för att speca även slutet av strängen (mao. ett mellanrum)??
Vilket kommando ska jag använda?
Tackar på förhand!
ThACRoWMedlem sedan dec. 2001314 inlägg Så här kanske ?
$sok=$text;
$temp=explode(" ",strstr($sok,"www"));
$link=$temp[0];
Ville sig inte...
Det gick bra att få fram detta ur ett textfält med endast en länk.
Men om man har flera länkar i dokumentet så visas bara den första.
Här e koden:
$text = "a sbaiddi difkdi https://www.php.se https://www.ifk.se
piece6";
$temp=explode(" ",strstr($text,"www"));
$link=$temp[0];
$link2=$temp[1];
echo $link;
echo $link2;
Men jag vill inte sitta och göra varibler för varje gång den hittar en www-länk i dokumentet.
Hur gör jag detta ?
Även om det finns hundra länkar i $text-varibeln....
För sen hade jag tänkt mig nåt med:
$länken="<a href=\"http://$link\"> $link </a>";
echo $länken;
nkrantzMedlem sedan apr. 2002830 inlägg testa detta.. den tar texten och formaterar dels till vanliga länkar och dels till mail länkar:
function fixDbText($text)
{
$text = preg_replace("/((http(s?):\/\/)|(www\.))([\w\.\\:\\?\\=\\&\-_\/]+)/i","<a href=\"http$3://$4$5\" target=\"_blank\"><u>$2$4$5</u></a>",$text);
$text = preg_replace("/([\w\.\-_]+)(@)([\w\.\-_]+)/i", "<a href=\"mailto:$0\"><u>$0</u></a>",$text);
$text = str_replace("\r\n","<br>",$text);
return $text;
}
borde funka...
//Nippe
psykologMedlem sedan apr. 2000137 inlägg Fler fält
Omj du ändå har en databas, varför inte skapa en tabell med bara URL:s där varje post är kopplad till den som skrev den, blir mer flexibelt och du slipper låta PHP arbeta mer än nödvändigt.