25. juli 2009 - 22:51
Der er
9 kommentarer og 1 løsning
Grim tekst til pæn tekst
Jeg skal bruge en funktion som automatisk laver input til kun a-z, 0-9 samt bindestreg (hvis der er mellemrum i teksten, skal den lave om til bindestreg) F.eks: Titel: "Hej jeg hedder Nerd og han sagde 'LAD DER BLIVE VAND'" Hvis jeg putter den ind i en funktion skal den outputte: hej-jeg-hedder-nerd-og-han-sagde-lad-der-blive-vand Håber i forstår - altså SEO (søgemaskineoptimering) til søgevenlige URL's ved url_rewrite.
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
Jeg bruger denne til mine url_rewrites: $string = ereg_replace("[^a-zA-Z0-9]", "_", $string); Underscores istedet for hyphens...
$title = 'Bananfluerne er overalt: Hvad gør vi dog her. Citat: "Ruth"'; Bananfluerne-er-overalt--Hvad-g-r-vi-dog-her--Citat---Ruth- Hvordan fjerner jeg overflødige mellemrum? F.eks sådan der ikke er 2 eller 3 bindestrege efter hinanden?
Er der nogen grund til det? Altså, en nem måde at gøre det på er at have en funktion til det: function safeString($string) { $parts = explode(" ", $string); $parts = array_filter($parts); $string = implode(" ", $parts); $string = ereg_replace("[^a-zA-Z0-9]", "_", $string); return $string; }
<?php $title = 'Bananfluerne er overalt: Hvad gør vi dog her. Citat: "Ruth"'; function __replacement($in) { $parts = explode(" ", $in); $parts = array_filter($parts); $string = implode(" ", $parts); return @ereg_replace("[^a-zA-Z0-9]", "-", $string); } echo __replacement($title); ?> Outputter stadig forkert: Bananfluerne-er-overalt--Hvad-g-r-vi-dog-her--Citat---Ruth-
Nej, outputtet er ikke forkert - det stemmer fuldstændig overens med det du ønskede.
Jeg ønskede, at den ikke tilføjede 3 bindestreger efter hinanden, og det gør den stadig...
Bananfluerne-er-overalt--Hvad-g-r-vi-dog-her--Citat---Ruth- skulle gerne blive Bananfluerne-er-overalt-Hvad-g-r-vi-dog-her-Citat-Ruth BTW... Ingen bindestreger TIL SIDST i sætningen eller i starten.. Håber du kan hjælpe..
Oprindeligt ønskede du jo den kun tog a-Z og 0-9. Det fik du. Vi udvider bare funktionen lidt: function safeString($string) { $parts = explode(" ", $string); $parts = array_filter($parts); $string = implode(" ", $parts); $string = ereg_replace("[^a-zA-Z0-9]", "-", $string); $parts = explode("-", $string); $parts = array_filter($parts); $string = implode("-", $parts); return $string; } Og så håber jeg altså at du kan forklare hvorfor du sætter @ foran ereg_replace linien?
25. juli 2009 - 23:46
#10
Det kom her...
Vi tilbyder markedets bedste kurser inden for webudvikling