Avatar billede Jakie Juniormester
31. januar 2013 - 19:00 Der er 6 kommentarer og
1 løsning

PHP: Meta description - str_replace - fjern linjebrydning, men samtidig have mellemrum?

Hej Eksperter

Jeg henter indholdet ud fra et forum indlæg, fjerner bbcode, substr strengen så den ikke er længere end 250 og derefter så fjerner jeg linjeafstanden med et ' ' med replace. Koden:

$cms_description = $value['emne_content'];

        $BBcode = new BBcode();
        $description = $BBcode->stripBBCode($cms_description);

        $newdescription = substr($description,0,250);

        $newdescription = str_replace(array("\r", "\n"), array('', ' '), $newdescription);



    ?>
    <meta name="description" content="<?php echo $newdescription; ?>"/>

Problemet er, at når jeg gør dette, så kommer der 5 mellemrrum istedet for ét. Nogen, der kan hjælpe?
Avatar billede scootergrisen Nybegynder
31. januar 2013 - 19:59 #1
Det skulle vel ikke være fordi der er 5 linieskift ?
Avatar billede Jakie Juniormester
31. januar 2013 - 21:17 #2
Selvfølgelig!

Hvordan får jeg klaret den?
Avatar billede Slettet bruger
31. januar 2013 - 21:50 #3
while (strpos ($newdescription, "  "))        // 2 mellemrum
    str_replace("  ", " ", $newdescription);  // => 1
Avatar billede Slettet bruger
31. januar 2013 - 21:53 #4
Hov

while (strpos ($newdescription, "  "))                                      // 2 mellemrum
    $newdescription = str_replace("  ", " ", $newdescription);  // => 1
Avatar billede olebole Juniormester
01. februar 2013 - 18:14 #5
<ole>

#4: Den holder ikke helt. Hvis 'nålen' ligger i begyndelsen af 'høstakken' vil betingelsen i while-løkken ikke være opfyldt. Skal man bruge strpos til den slags, skal der testes med:

while (strpos($haystack, $needle)!==false)

Årsagen er, at hvis nålen står på første plads i høstakken, returnerer funktionen '0' - hvilket af PHP tolkes som false.

Mon ikke dette alt i alt vil være lettere:
$newdescription = preg_replace('/\s+/', ' ', $newdescription);

/mvh
</bole>
Avatar billede Jakie Juniormester
03. februar 2013 - 14:25 #6
tak for hjælpen alle sammen :)

Jeg ved at Ole ikke samler på svar, så i to andre må gerne vedlægge svar :)
Avatar billede Jakie Juniormester
13. februar 2013 - 00:24 #7
ingen svar i 10 dage.. jeg vedlægger svar :)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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