Så må du jo lave mellemrum om til bindestreg.
Jeg gør sådan her.
Demo : http://scootergrisen.dk/test/test0185.php
- $tekst = "her er noget tekst der skal stå tilsidst i urlen";
-
- $nytekst = urlencode(kortfinurl($tekst));
-
- $url = "http://www.skinke.dk/artikler/24/" . $nytekst;
-
- echo '<a href="' . $url . '">' . $url . '</a>';
-
- function byttegn($data){
-
- $fra = array(
- "æ","ø","å","Æ","Ø","Å","?"," ",",","."
- ,"(",")","/",",","'","[","]","¨","^","~","-","+","´","`"
- ,"ë","ÿ","ü","ï","ö","ä"
- ,"Ë", "Ü","Ï","Ö","Ä"
- ,"ê", "û","î","ô","â"
- ,"Ê", "Û","Î","Ô","Â"
- ,"é","ý","ú","í","ó","á"
- ,"É","Ý","Ú","Í","Ó","Á"
- ,"è", "ù","ì","ò","à"
- ,"È", "Ù","Ì","Ò","À"
- ,"¹","²","³"
- ,"©"
- );
-
- $til = array(
- "e","o","a","e","o","a","_","_","_","_"
- ,"_","_","_","_","_","_","_","_","_","_","_","_","_","_"
- ,"e","y","u","i","o","a"
- ,"E", "U","I","O","A"
- ,"e", "u","i","o","a"
- ,"E", "U","I","O","A"
- ,"e","y","u","i","o","a"
- ,"E","y","U","I","O","A"
- ,"e", "u","i","o","a"
- ,"E", "U","I","O","A"
- ,"1","2","3"
- ,"c"
- );
-
- return str_replace($fra, $til, $data);
-
- }
-
- function kortfinurl($data){
-
- // lav SEO venlig url så det ser flot ud
-
- $indhold = '';
-
- $indhold .= byttegn($data);
- $indhold = str_replace('__', '_', $indhold);
- $indhold = str_replace('_', '-', $indhold);
- $indhold = preg_replace('/\s[\s]+/', '-', $indhold); // fjern flere mellemrum
- $indhold = preg_replace('/[\s\W]+/', '-', $indhold); // fjern mellerum og non-alpha-numeric
- $indhold = preg_replace('/^[\-]+/', '', $indhold); // fjern - i starten
- $indhold = preg_replace('/[\-]+$/', '', $indhold); // fjern - i slutningen
- $indhold = strtolower($indhold);
-
- return $indhold;
-
- }
Jeg vil kig på det i weekende eller i morgen, når jeg få mere tid
Tror bare jeg lade den være og så må den være sådan som den er fordi eller blive jeg mega forvirret omkring hvordan jeg skal gøre det osv. håber du kan følge mig
EIDTJeg har prøve at gjore sådan her;
Det er sådan på forsiden her;
- function indhold_index()
- {
- if ($stmt = $this->mysqli->prepare('SELECT `id_artikler`, `rank`, `title`, `title_url`, `kort` FROM `artikler` ORDER BY `artikler`.`id_artikler` DESC LIMIT 3')) {
- $stmt->execute();
-
- $stmt->bind_result($id_artikler, $rank, $title, $title_url, $kort);
-
- while ($stmt->fetch()) {
- ?>
- <div id="indhold_index">
- <?php
- if($_SESSION["logged_in"] = true && $_SESSION["rank"] == 1)
- {
- echo "<ul>";
- echo "<li><a href=\"/slet-artikler/$id_artikler/\">Slette indhold</a></li>";
- echo " - ";
- echo "<li><a href=\"/ret-artikler/$id_artikler/\">Ret indhold</a></li>";
- echo "</ul>";
- }
- echo "<h3>$title</h3>";
- if($rank == 1)
- {
- echo "<img src=\"/img/rank/web.png\" alt=\"web\" height=\"32\" width=\"32\" border=\"0\">";
- }
- if($rank == 2)
- {
- echo "<img src=\"/img/rank/php.png\" alt=\"php\" height=\"32\" width=\"32\" border=\"0\">";
- }
- if($rank == 3)
- {
- echo "<img src=\"/img/rank/css.png\" alt=\"css\" height=\"32\" width=\"32\" border=\"0\">";
- }
- if($rank == 4)
- {
- echo "<img src=\"/img/rank/html.png\" alt=\"css\" height=\"32\" width=\"32\" border=\"0\">";
- }
- if($rank == 5)
- {
- echo "<img src=\"/img/rank/js.png\" alt=\"css\" height=\"32\" width=\"32\" border=\"0\">";
- }
- if($rank == 6)
- {
- echo "<img src=\"/img/rank/mysqli.png\" alt=\"css\" height=\"32\" width=\"32\" border=\"0\">";
- }
- echo "<p>$kort</p>";
-
- ?>
- <ul>
- <li><a href="/artikler/<?php echo $id_artikler;?>/<?php echo $title_url;?>/" title="Læse mere: <?php echo $title;?>">Læse mere: <?php echo $title;?></a></li>
- </ul>
- </div>
- <?php
- }
- $stmt->close();
-
- } else {
- echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
- }
- }
Det er sådan når den ligge ind idatabasen;
- function inset_1()
- {
- $title = $_POST["title_URL"];
-
- $from = array('"', "'", " ", "æ", "Æ", "ø", "Ø", "å", "Å");
- $to = array("", "", "-", "ae", "Ae", "oe", "Oe", "aa", "Aa");
- $alias = strtolower(str_replace($from, $to, $title));
-
- if($stmt = $this->mysqli->prepare('INSERT INTO `artikler` (`rank`, `title`, `title_url`, `tekst`, `kort`, `link`, `keywords`, `description`) VALUES (?, ?, ?, ?, ?, ?, ?, ?)'))
- {
- $stmt->bind_param('isssssss', $rank, $title, $title_url, $tekst, $kort, $link, $keywords, $description);
-
- $rank = $_POST["rank"];
- $title = $_POST["title"];
- $title_url = $alias;
- $tekst = $_POST["tekst"];
- $kort = $_POST["kort"];
- $link = $_POST["link"];
- $keywords = $_POST["keywords"];
- $description = $_POST["description"];
-
- $stmt->execute();
-
- $stmt->close();
-
- ?>
- <script language="javascript" type="text/javascript">
- window.location.href = "/forside/";
- </script>
- <?php
-
- }
- else
- {
- echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
- }
- }
Når jeg henter på siden;
(Dog få jeg fejl 404)- function artikler_indhold()
- {
- if ($stmt = $this->mysqli->prepare('SELECT `id_artikler`, `title`, `tekst`, `link` FROM `artikler` WHERE `id_artikler` = ? AND `title_url` = ? ORDER BY `artikler`.`id_artikler` DESC ')) {
- $stmt->bind_param('is', $id, $title_url);
- $id = $_GET['id_artikler'];
- $title_url = $_GET["title_url"];
-
- $stmt->execute();
- $stmt->store_result();
-
- $stmt->bind_result($id_artikler, $title, $tekst, $link);
-
-
- if ($stmt->fetch()) {
- echo "<h1>$title</h1>";
- echo "$tekst";
- if($link != "")
- {
- echo "<ul>";
- echo "<li><a href=\"$link\" target=\"_blank\" title=\"$title - link\">$title - Link</a></li>";
- echo "</ul>";
- }
- }
-
- $stmt->close();
- } else {
- echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
- }
-
- }
sådan ser min .htaccess :
RewriteRule ^artikler/([0-9]+)/([a-z]+)/ $ artikler.php?id=$1&title_url=$2 [L]
Indlæg senest redigeret d. 07.12.2012 14:47 af Bruger #17136