Avatar billede silmarillion Juniormester
13. marts 2010 - 16:09 Der er 9 kommentarer og
1 løsning

Read more link

Hej Eksperter,

Jeg har fundet et lille script, som skulle vise de første syv ord, og derefter lave et link, til en anden side, hvis teksten indeholder mere end syv ord. Som det er nu, er det ud fra en på forhånd defineret tekst, hvordan modificeres scriptet, så den gør det ud fra en tekst fra en mysql database?

Det originale script ser ud som følger:

<?php
$wordLimit = 7;
$myText = "The quick brown fox jumped over the lazy dog";
$teaserText = '';

$words = explode(' ',$myText);
$i = 0;
while($i < $wordLimit)
    {
    $i++;
    $teaserText .= $words[$i]." ";
    }
$teaserText .= "... <a href="<your more link>">more</a>";
?>

Jeg har prøvet at ændre det til følgende uden, at få det til at virke:

<?php
$wordLimit = 7;
$myText = $row_rsresultat['tekst'];
$teaserText = '';

$words = explode(' ',$myText);
$i = 0;
while($i < $wordLimit)
    {
    $i++;
    $teaserText .= $words[$i]." ";
    }
$teaserText .= "... <a href="<your more link>">more</a>";
?>

Nogle gode ideér til hvordan det kommer til at virke?

På forhånd tak for hjælpen.
Avatar billede majbom Novice
13. marts 2010 - 17:28 #1
nu skriver du at det ikke virker - hvordan skal det forstås?

skriver den ikke noget ud, eller virker linket ikke, eller noget helt 4.?

umiddelbart vil jeg mene, at hvis $row_rsresultat['tekst'] ikke er tom, så burde det virke som originalen...
Avatar billede Slettet bruger
13. marts 2010 - 17:38 #2
Du skal meget gerne have fat i et link også:

<?php
$wordLimit = 7;
$myText = $row_rsresultat['tekst'];
$teaserText = '';

$words = explode(' ',$myText);
$i = 0;
while($i < $wordLimit)
    {
    $i++;
    $teaserText .= $words[$i]." ";
    }
$teaserText .= "... <a href="<your more link>">more</a>";
?>
Avatar billede silmarillion Juniormester
13. marts 2010 - 18:26 #3
Jeg har indsat følgende som link:

$teaserText .= "... <a href="index.php">more</a>"

Jeg får denne fejl:

Parse error: syntax error, unexpected T_STRING in test.php on line 13

Det er denne linje

$teaserText .= "... <a href="index.php">more</a>"
Avatar billede Slettet bruger
13. marts 2010 - 18:47 #4
Du afslutter strengen ved "index.php", og får derfor en parsing-fejl:
$teaserText .= "... <a href="index.php">more</a>"

Du kan enten escape gåseøjnene:
$teaserText .= "... <a href=\"index.php\">more</a>"
Eller udskifte de gåseøjne der omgrænser strenget med apostroffer:
$teaserText .= '... <a href="index.php">more</a>'

Og så husk lige det afsluttende semikolon (";"), ellers får du bare en fejl på næste linje.
Avatar billede silmarillion Juniormester
17. marts 2010 - 15:26 #5
Jeg har prøvet med både

$teaserText .= "... <a href=\"index.php\">more</a>";

og

$teaserText .= '... <a href="index.php">more</a>';

Jeg får bare en blank skærm, der kommer hverken den korrekte tekst eller en fejlbeskrivelse.

Er der en anden fejl i scriptet jeg ikke kan få øje på?
Avatar billede majbom Novice
17. marts 2010 - 19:33 #6
du er jo nødt til at linke til den side, hvor man kan læse mere... eller det er måske index.php?
Avatar billede silmarillion Juniormester
17. marts 2010 - 19:39 #7
Det vil være på index.php man vil kunne læse mere, men burde den ikke kunne vise den første del af teksten samt et "more" link, selv om der pt. ikke står noget på index.php?
Avatar billede Slettet bruger
17. marts 2010 - 22:39 #8
Den eneste potentielle fejl jeg kan se i koden er denne:

$myText = $row_rsresultat['tekst'];

Hvis $row_rsresultat['tekst'] ikke er sat, smides vist en warning, fordi du prøver at tilgå en ikke-defineret variabel.
Avatar billede majbom Novice
04. november 2010 - 13:28 #9
kom du videre?
Avatar billede silmarillion Juniormester
04. november 2010 - 13:44 #10
Ja, jeg fandt denne side der var til god hjælp.

http://www.the-art-of-web.com/php/truncate/?nohilite
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester