FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Flitig postare
|
Har ett script som klipper ner text efter valt antal tecken....
Men det händer något skumt. Text som går in: Citat:
Citat:
Varför blir å istället �? (ser inte ut som här på forumet, det ser ut som en box, ni har säkert sett det) Texten som går in är verkligen å inte å så det är inte därför. Koden: Kod:
function neat_trim($str, $n, $delim='…') { $len = strlen($str); $str = strip_tags($str); if ($len > $n) { preg_match('/(.{' . $n . '}.*?)\b/', $str, $matches); return rtrim($matches[1]) . $delim; } else { return $str; } } |
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Mycket flitig postare
|
Du använder nog utf-8 vilket är bra. PHP är däremot inte alltid lika klar i huvudet.
preg_match('/(.{' . $n . '}.*?)\b/u', $str, $matches); Notera u:et i raden ovan. Vet dock inte om \b hanteras korrekt av php vid andra bokstäver än [a-z]. |
|||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Har WN som tidsfördriv
|
Varför gör du inte en rtrim bara ?
|
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Mycket flitig postare
|
Citat:
1. Det blir en himla massa tecken du måste ange att trimma bort, 2. rtrim är antagligen inte heller utf-8-medveten, 3. det går inte att trimma till ordgränser på något enkelt sätt Regexp är väl utmärkta för just den här typen av uppgifter (koden i exemplet skulle förstås kunna kortas ner till en rad om man så vill). |
|||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Supermoderator
|
eller utf8_decode()?
|
|||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Flitig postare
|
Citat:
??? Vill iofs inte decoda utf8, vill "klippa" strängar till bestämd längd. Citat:
Hittade också mer info så jag kan lära mig! http://www.regular-expressions.info |
||
![]() |
![]() |
Svara |
|
|