webForumDet fria alternativet

formatera sträng

PHPur PHP

4 svar · 332 visningar · startad av sibben11

Medlem sedan maj 200214 inlägg
Frågan#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!

Medlem sedan dec. 2001314 inlägg
#2

Så här kanske ?

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

Medlem 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;

Medlem 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

Medlem 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.

271 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
137 ms — hämta forumlista (db)
131 ms — hämta statistik (db)
135 ms — hämta tråd, inlägg och bilagor (db)