Hallo,

Op mijn site kunnen gebruikers artikelen plaatsen. Nu wil ik de omschrijving ook echo'en in de keywords meta tag. Dat gaat opzich prima:

<META NAME="keywords" CONTENT="<?php $keys = implode(', ', array_map('trim', explode(' ', $omsch)));
echo $keys;
?>">

Stel dit is een artikel omschrijving:

//

Heel leuk vrolijk blouseje. Vrolijke kleuren, leuke details. Kan 't hele jaar door gedragen worden, zelf deed ik er in 't najaar een zalm kleurig shirtje met lange mouwen onder en liet ik 't blousje open staan. Echt vlot! Als nieuw Maat 80

//

Dan geeft hij het zo weer:

<META NAME="keywords" CONTENT="Heel, leuk, vrolijk, blouseje.
Vrolijke, kleuren,, leuke, details.
Kan, 't, hele, jaar, door, gedragen, worden,, zelf, deed, ik, er, in, 't, najaar, een, zalm, kleurig, shirtje, met, lange, mouwen, onder, en, liet, ik, 't, blousje, open, staan.
Echt, vlot!
Als, nieuw,
Maat, 80">

Waarom haalt hij de Enters niet weg? Daarnaast moet hij ook tekens als . ' ! en komma's die in de beschrijving staan weghalen.

Iemand een idee?
Trim haalt alleen de enters weg

Edit: Oeps zat niet na te denken alles aan begin en einde idd :P

maaruh als je meer dan 25 keywords hebt ofzo beschouwd google dat als spam en worden die niet gebruikt. Dus heeft niet zo'n zin.
Wat trim doet, is enkel de whitespaces aan het begin en aan het einde weg nemen.
Niet de whitespaces tussen de woorden.
Trim haalt blijkbaar geen enters weg, want waarom geeft hij dat dan zo raar weer.

Dit is overigens alleen als test bedoeld. Het worden natuurlijk minder keywords.

maar hoe kan ik dat doen dat hij ook tekens als: . ' ! ( ) en komma's die al in de omschrijving staan weghaalt?
[php]str_replace[/php]
Ja dat snap ik, maar kun je me helpen hoe de code dan verder wordt?
trim haalt spaties, tabs en enters weg, maar enkel in het begin en aan het einde.

Kijk, een voorbeeld.
<?php
$string = ' Er staat een paard in de '. PHP_EOL .'gang'. PHP_EOL . PHP_EOL . PHP_EOL ;
$string2 = trim($string);
echo '<pre style="margin: 2px; padding: 0x; background-color: #bbbbbb;">'. $string .'</pre>';
echo '<pre style="margin: 2px; padding: 0x; background-color: #bbbbbb;">'. $string2 .'</pre>';
?>
Hoe kan ik dat oplossen met str_replace en dan ook de tekens ! , . ( ) etc (die in de string staan)
bv.
<?php
$string = ' Er staat een paard in de '. PHP_EOL .'gang'. PHP_EOL . PHP_EOL . PHP_EOL ;
$string2 = trim($string);
$string3 = trimEnEntersWeglaten($string);
echo '<pre style="margin: 2px; padding: 0x; background-color: #bbbbbb;">'. $string .'</pre>';
echo '<pre style="margin: 2px; padding: 0x; background-color: #bbbbbb;">'. $string2 .'</pre>';
echo '<pre style="margin: 2px; padding: 0x; background-color: #bbbbbb;">'. $string3 .'</pre>';

function trimEnEntersWeglaten($string)
{

$vervangenDoor = ''; // of eventueel = ' '
return trim( str_replace(PHP_EOL, $vervangenDoor, $string) );
}
?>


<?php
$illegalchars = array(".", "'", '"',"!", "\n");
$replacewith = array("", "", "", "");
$string = explode(" ", str_replace($illegalchars, $replacewith, "Heel leuk vrolijk blouseje. Vrolijke kleuren, leuke details. Kan 't hele jaar door gedragen worden, zelf deed ik er in 't najaar een zalm kleurig shirtje met lange mouwen onder en liet ik 't blousje open staan. Echt vlot! Als nieuw Maat 80"));

echo implode(", ", $string);
?>
Stefan dat werkt prima.

Alleen geeft hij bij de woorden: "kleuren" en "worden" een dubbele komma. Wat doen we daar aan?

Reageren