webForumDet fria alternativet

Ta bort första två ord ur tabell

PHP

1 svar · 285 visningar · startad av noll5

Medlem sedan jan. 20069 inlägg
Frågan#1

Jag skulle vilja ta bort de två första orden ur en tabellen i min databas - eller rättare sagt - jag vill inte att de ska synas när jag ska skiva ut cellens innehåll.

Ex - i cellen står det "hemsida 13 Nu drar vi igång med..." och när jag skriver ut detta på min sida vill jag att hemsida 13 ska försvinna och att det istället bara skrivs ut "Nu drar vi igång med..."

Jag har försökt genom att använda

$row['nyhet'] = substr($row['nyhet'],strpos($row['nyhet'],' '));
$row['nyhet'] = substr($row['nyhet'],strpos($row['nyhet'],' '));

Men får det bara att ta bort det första av orden.

Vad är de som inte stämmer?

Kanske finns det t.o.m ett annat enklare sätt att använda sig av för att ta bort de två första orden.

Medlem sedan aug. 20039 340 inlägg
#2

Lite regexp funkar alltid!

$foo = "hemsida 13 Nu drar vi igång med...";

echo preg_replace("/^(\w+\W){2}/", "", $foo);
// Eller för din del:
$row['nyhet']=preg_replace("/^(\w+\W){2}/", "", $row['nyhet']);

Även om jag tycker min kod är lite smidigare, så kan jag berätta vad du gjorde för misstag. Första kodraden letar efter första förekomsten av ett blanksteg, och tar bort allt fram till blanksteget. Så långt allt väl. Men saken är den att koden glömmer ett blanksteg i början av strängen, så när du kör samma kod igen kommer den fastna vid blanksteget i början av raden, och ta bort allt före det blöanksteget. (Det vill säga ingenting efterso mdet inte finns något före)

/r Så här skulle din kod faktiskt ha sett ut för att funka:

$row['nyhet'] = substr($row['nyhet'],[u]1+[/u]strpos($row['nyhet'],' ')); 
$row['nyhet'] = substr($row['nyhet'],[u]1+[/u]strpos($row['nyhet'],' '));
251 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)