Visa ett inlägg
Oläst 2009-11-09, 01:34 #6
BjörnJ BjörnJ är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2009
Inlägg: 971
BjörnJ BjörnJ är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2009
Inlägg: 971
Man kan även råka ut för att det är andra taggar som inte stängs, om texten t.ex. kan innehålla fetstil.

Finns det någon funktion i PHP för att stänga öppna taggar i sträng? Jag letade lite snabbt, men hittade inte.

Jag tror att det bästa om man inte vill köra strip_tags() skulle vara att göra ungefär så här:
1) Klipp texten före ett whitespace efter ca 200 tecken. Om strängen kan innehålla taggar som innehåller whitespace får man tänka om lite och göra något mer avancerat som inte klipper i taggar.
2) Kör typ $string=close_tags($string) (först måste man dock hitta eller skriva en sådan funktion).
3) Om man vill ha med ... så får man stoppa in det i strängen några tecken från slutet (före det </p> som ska finnas där nu), eller använda regexp för att ersätta '</p>$' med '...</p>' (vilket skulle få samma effekt). Man kan även göra det lite enklare och lägga till ... innan man kör close_tags() istället, om det är ok att ... blir t.ex. fetstil eller del av en länk om det är så att </b> eller </a> hade blivit bortklippt.
BjörnJ är inte uppkopplad   Svara med citatSvara med citat