webForumDet fria alternativet

formatera sträng

4 svar · 332 visningar · startad av sibben11

sibben11Medlem sedan maj 200214 inlägg
#1

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
#2

Så här kanske ?

$sok=$text;
$temp=explode(" ",strstr($sok,"www"));
$link=$temp[0];

sibben11Medlem sedan maj 200214 inlägg
#3

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
#4

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
#5

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.

124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)