![]() |
problem med validering
Jag har upptäckt ett problem med validering(xhtml 1.0 transitional). Jag har ett nyhets script på första sidan som kortar av nyheter vars tecken är fler än 200.
Se: http://gsk.jbn.nu/home/index.php?startnytt Nyheten visar endast 200 tecken sedan skrivs ... ut och en läs mer länk. Nyheterna skrivs i ett adminsystem (cms - egen byggt) där jag använder fckeditor (wysywig editor) för att att skriva/uppdatera sidor och nyheter. Editorn skriver min text som html och skriver i bakgrunden <p>min text</p> men problemet kommer när min text är längre än 200 tecken då bryts min text rätt av och det betyder att koden bakom också bryts av - så koden kan börja med <p> men det blir inget slut p och då blir validering fel för startsidan för det saknas ju en p sluttagg.. har någon något bra förslag på lösning av detta ? |
Kod:
echo $text; |
I värsta fall kan den ju klippa efter < men före >.
Säkrast att köra strip_tags() innan texten klipps ner till 200 tecken och lägga dit egna taggar före och efter. Eller att klippa efter ca 200 tecken, men bara klippa före ett whitespace, och lägga till </p> sist vid behov. |
If sats fungerar okej. tänkte inte så långt, det finns ju redan en if sats som lägger till ... om antal tecken är över 200. lade bara till ...</p> istället =) men ja visst Björn jag förstår vad du menar. Tack för era svar. Jag skall kolla upp strip_tags() =)
|
Citat:
Det enklaste är nog att i så fall använda en vanlig textruta och bara lägga på nl2br() på texten när du skriver ut den. |
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. |
eller lägg till nytt fält i databasen med en kortare beskrivning av nyheten
|
Citat:
|
Alla tider är GMT +2. Klockan är nu 18:08. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson