Hey iedereen,
Om een stukje tekst af te knippen bij xx aantal tekens
heb ik op het internet een mooie functie gevonden.
Maar ik krijg hierbij een fout op mijn pagina:PHP Code:
function neat_trim($str, $n, $delim='...') {
if (!empty($str)){
$len = strlen($str);
if ($len > $n) {
preg_match('/(.{' . $n . '}.*?)\b/', $str, $matches);
return rtrim($matches[1]) . $delim;
}
else {
return $str;
}
}
}
Regel 36 is deze regel:Code:Notice: Undefined offset: 1 in /home/*User*/domains/*domein*/public_html/config.php on line 36Ik weet dat je de error melding gewoon uit kan zetten, dit wil ik dus juist nietPHP Code:
return rtrim($matches[1]) . $delim;
de rest van de site werkt helemaal goed alleen deze fout zit er nog in.
Hoe kan ik dit oplossen?
Groeten,
Ben
- PHP - undefined offset
-
02-06-2010, 16:15 #1
- Berichten
- 442
- Lid sinds
- 16 Jaar
PHP - undefined offset
-
-
02-06-2010, 18:22 #2
- Berichten
- 691
- Lid sinds
- 15 Jaar
Ik kan het hier niet reproduceren.
Wat geef je in bij de parameters?
-
02-06-2010, 18:41 #3
- Berichten
- 126
- Lid sinds
- 15 Jaar
De preg_match zoekt vanaf het 'n'-de teken terug in de string, totdat er een 'blank' wordt gevonden.
De melding 'undefined offset' betekent hier dat de preg_match niks heeft gevonden. Kan het kloppen dat er in de invoerstring voor de 'n'-de positie inderdaad geen blanks staan?
-
02-06-2010, 19:05 #4
- Berichten
- 442
- Lid sinds
- 16 Jaar
PHP Code:$omschrijving = neat_trim($products[$j]['description'], 350);
De preg_match zoekt vanaf het 'n'-de teken terug in de string, totdat er een 'blank' wordt gevonden.
De melding 'undefined offset' betekent hier dat de preg_match niks heeft gevonden. Kan het kloppen dat er in de invoerstring voor de 'n'-de positie inderdaad geen blanks staan?
De tekst word uit een database gehaald het is een producten omschrijving, dit script
zorgt ervoor dat die word afgekapt op 350 tekens. en daar naast staat een link "meer informatie"
-
02-06-2010, 20:02 #5
- Berichten
- 691
- Lid sinds
- 15 Jaar
Maar $products[$j]['description'] is een arraytype, de functie verwacht een string.
Zou verwachten dat het ook een fout zou geven.
Of mis ik iets?
-
02-06-2010, 20:15 #6
- Berichten
- 1
- Lid sinds
- 15 Jaar
het woord 'Undefined' zegt het al een beetje, dus mischien komt het omdat je expressie niks heeft opgeleverd....
probeer eens var_dump($matches) ;)
-
02-06-2010, 21:17 #7
- Berichten
- 257
- Lid sinds
- 15 Jaar
ik zou het eens proberen met $matches[0]
-
02-06-2010, 21:21 #8
- Berichten
- 394
- Lid sinds
- 15 Jaar
Parameters:PHP Code:$omschrijving = neat_trim($products[$j]['description'], 350);
Het zou best kunnen, maar hoe voorkom ik deze fout zonder show errors uit te zetten.
De tekst word uit een database gehaald het is een producten omschrijving, dit script
zorgt ervoor dat die word afgekapt op 350 tekens. en daar naast staat een link "meer informatie"
substr($string, 0, 350);
?
-
02-06-2010, 21:46 #9
- Berichten
- 442
- Lid sinds
- 16 Jaar
-
02-06-2010, 22:03 #10
- Berichten
- 69
- Lid sinds
- 18 Jaar
http://nl.php.net/manual/en/function...ity-decode.php
Met die functie.
-
03-06-2010, 07:25 #11
- Berichten
- 394
- Lid sinds
- 15 Jaar
html_entity_decode($string, ENT_QUOTES);
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic