Kom ihåg mig?
Home Menu

Menu


Plocka två meningar ur en text

Ämnesverktyg Visningsalternativ
Oläst 2008-09-21, 15:35 #1
Tezs avatar
Tez Tez är inte uppkopplad
Flitig postare
 
Reg.datum: Feb 2007
Inlägg: 436
Tez Tez är inte uppkopplad
Flitig postare
Tezs avatar
 
Reg.datum: Feb 2007
Inlägg: 436
Skulle bli jätteglad för lite hjälp, jag är inte så haj på sånt här.

Följande plockar ut första meningen ur en textmassa. Hur gör jag för att ändra så att det blir två meningar istället?


<?=isset($jDesc) ? str_replace(array("\"", "\n", "\r"), "", preg_replace(array("#^(.{0,200}?\.).*$#s", "#<[^>]*?>#s"), array("$1", ""), substr($jDesc, 0, 200))) : "" ?>

Tusen tack om någon kan hjälpa mig... Jag chansade helt utan kunskap på att ändra $1 till $2 men så lätt var det tydligen inte..
Tez är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-09-21, 15:43 #2
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Det inom parantesen är den intressanta biten:
^(.{0,200}?\.).*$
På svenska betyder det nåt i stil med "Nåt som börjar med upp till 200 valfria tecken, och som avslutas med en punkt". Ska du ha två meningar borde det alltså bli "Nåt som börjar med upp till 200 valfria tecken, och som avslutas med en punkt, följt av upp till 200 valfria tecken som avslutas med en punkt"
^(.{0,200}?\..{0,200}?\.).*$
Fast denna är ju inte helt 100%-ig. För det första kan meningarna inte ha mer än 200 tecken, för det andra klipper den helt enkelt efter andra punkten, vilket inte nödvändigtvis måste vara precis där andra meningen slutar. Vill man exempelvis hindra att den klipper vid tre punkter (ellipsis) får man säga att det måste vara minst ett tecken som inte är punkt mellan de två meningarna, men då blir det ju mer komplicerat. Frågan är hur säkert det måste vara.
Lindahl är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-09-21, 16:06 #3
Tezs avatar
Tez Tez är inte uppkopplad
Flitig postare
 
Reg.datum: Feb 2007
Inlägg: 436
Tez Tez är inte uppkopplad
Flitig postare
Tezs avatar
 
Reg.datum: Feb 2007
Inlägg: 436
Jättetack!!

Jag ändrar till lite fler tecken också, precis som du påpekar. Tror att det räcker med med den "enkla" varianten, åtminstone tills vidare.
Tez är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-09-21, 18:17 #4
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Splitta på punkt och ta med de två första bitarna som är längre än typ 3 tecken.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 11:46.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017