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?
Link gekopieerd
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.
Link gekopieerd
Wat trim doet, is enkel de whitespaces aan het begin en aan het einde weg nemen.
Niet de whitespaces tussen de woorden.
Link gekopieerd
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?
Link gekopieerd
[php]str_replace[/php]
Link gekopieerd
Ja dat snap ik, maar kun je me helpen hoe de code dan verder wordt?
Link gekopieerd
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>';
?>
Link gekopieerd
Hoe kan ik dat oplossen met str_replace en dan ook de tekens ! , . ( ) etc (die in de string staan)
Link gekopieerd
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) );
}
?>
Link gekopieerd
<?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);
?>
Link gekopieerd
Stefan dat werkt prima.
Alleen geeft hij bij de woorden: "kleuren" en "worden" een dubbele komma. Wat doen we daar aan?
Link gekopieerd