---
title: "Bestämma textlängd"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/160924-bestämma-textlängd"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "magnumBonum"
published: "2007-05-30T10:48:48.000Z"
updated: "2007-05-30T13:30:16.000Z"
replies: 5
views: 633
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/160924-bestämma-textlängd"
---

# Bestämma textlängd

## #1 — magnumBonum, 2007-05-30T10:48Z

Jag undrar om det är någon som har en kod för att bestämma hur många tecken som visas av en text, i det här fallet artikeltitlarna från DNs RSS.

Alltså, jag har lyckats få rss flödet att visas på min hemsida med radbrytning efter varje titel, men jag vill att titlarna ska ha bestämd längd, t.ex. om titeln är **"Oväntad händelse under presidentvalet i Chile"** ska endast **"Oväntad händelse under president..."** visas.

Tack på förhand!

Permalänk: https://www.webforum.nu/p/160924

## #2 — stevenet, 2007-05-30T11:48Z

<http://se2.php.net/strlen> Returnerar längden på en sträng.
<http://se2.php.net/substr> Returnerar en del av en sträng.

```php
<?php

function dotTruncate($string, $length="20")
{
		return (strlen($string) > $length) ? substr($string,0,$length).'...' : $string;
}

echo dotTruncate("Oväntad händelse under presidentvalet i Chile", 37);

?>
```

Permalänk: https://www.webforum.nu/p/1985659

## #3 — magnumBonum, 2007-05-30T12:19Z

nytt problem!

Tack för hjälpen!
Jag får det inte att funka dock har du lust att granska koden?

\<?php
function dotTruncate($string, $length="20")
{
		return (strlen($string) \> $length) ? substr($string,0,$length).'...' :
$string;
}

define('MAGPIE_DIR', './magpierss/');
require_once(MAGPIE_DIR.'rss_fetch.inc');

$url = "http://www.dn.se/toppnyheter-rss";

if ( $url ) {
	$rss = fetch_rss( $url );
	foreach ($rss-\>items as $item) {
		$href = $item\['link'\];
		$title = $item\['title'\];	
		echo dotTruncate("\<a class=style7 href=$href target=\_blank\>$title\</a\>\<br\>", 37);
	}
}
?\>

Permalänk: https://www.webforum.nu/p/1985675

## #4 — fiddler, 2007-05-30T12:25Z

```php
$title = dotTruncate($item['title'],37);
```

Permalänk: https://www.webforum.nu/p/1985680

## #5 — stevenet, 2007-05-30T12:25Z

Hej igen!

Du vill förmodligen bara korta av $title, annars kommer din html-kod bli avklippt.

```php
<?php
function dotTruncate($string, $length="20")
{
return (strlen($string) > $length) ? substr($string,0,$length).'...' :
$string;
}

define('MAGPIE_DIR', './magpierss/');
require_once(MAGPIE_DIR.'rss_fetch.inc');

$url = "http://www.dn.se/toppnyheter-rss";

if ( $url ) {
$rss = fetch_rss( $url );
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title']; 
echo '<a class="style7" href="'.$href.'" target="_blank">';
echo dotTruncate($title, 37);
echo '</a><br>';
}
}
?>
```

Permalänk: https://www.webforum.nu/p/1985681

## #6 — Troxy, 2007-05-30T13:30Z

Här är en förkortningsfunktion för text som tar hänsyn till ord, dvs. den undviker att klippa mitt i ett ord.
Sen kan man även skicka med en "svans" som valfritt tredje argument, vilket läggs till i slutet efter förkortningen.

```
function str_truncate($input, $length, $tail = '') {
	if (!strlen($input) > $length) {
		return $input;
	} else {
		$output = substr($input, 0, $length);
		$dot = strrpos($output, '.');
		$space = strrpos($output, ' ');
		$output = substr($output, 0, ($dot > $space? $dot : $space)) . $tail;
		return $output;
	}
}
```

Permalänk: https://www.webforum.nu/p/1985715

---

Tråden på webben: https://www.webforum.nu/amne/php/160924-bestämma-textlängd
