Använda path istället för id PHP
Du får ta en titt på http://se2.php.net/urlencode samt http://se2.php.net/urldecode
Du bör behålla id, mycket snabbare och enklare för databasen att hitta.
Jag skulle ha gjort någonting såhär:
class Link {
static $url = 'http://www.sweclockers.com/nyhet/';
static $url_separator = '-';
static $space = '_';
// Tar bort alla onödiga tecken
static function title($string){
// Svenska.
$table = array(
'Å' => 'a', 'å' => 'a',
'Ä' => 'a', 'ä' => 'a',
'Ö' => 'o', 'ö' => 'o',
);
$title = strtr($string, $table);
// Tar bort övriga tecken och tomrum.
$title = preg_replace('/[^' . self::$space . 'a-z0-9\s]+/', '', strtolower($title));
$title = preg_replace('/[' . self::$space . '\s]+/', self::$space, $title);
return trim($title, self::$space);
}
// Skapar en relativ href-länk
static function href($id, $string = NULL){
return empty($string) ? $id : $id . self::$url_separator . self::title($string);
}
// Skapar en absolut href-länk
static function ahref($id, $string = NULL){
return self::$url . self::href($id, $string);
}
// Skapar en färdig länk
static function anchor($id, $title, $long_url = TRUE, $tooltip = FALSE){
// Ska det dyka upp en tooltip med titeln?
$alt = $tooltip ? sprintf(' title="%s" ', $title) : ' ';
$link = self::ahref($id, ($long_url ? $title : NULL));
return sprintf('<a href="%s"%s/>%s</a>', $link, $alt, $title);
}
}
$id = 4321;
$title1 = 'En lång titel (som inte vill ha) EN MASSA %¤£€, men behåller s1ffr0rn4';
print Link::anchor($id, $title1);
print '<br />';
print Link::href($id, $title1);
print '<hr />';
Link::$url = 'http://google.com/blog/';
$title2 = 'Den här texten kommer inte syns inte i adressfältet';
print Link::anchor($id, $title2, NULL);
print '<br />';
print Link::ahref($id, NULL);
$link1 = Link::href($id, $title1);
print "<pre>\nFör att hitta artikeln '{$link1}' använd queryn:\n";
print 'SELECT * FROM pages WHERE id = ' . intval($link1);
- Idag Iphones marknadsandel faller i USA 30
- Igår Airtec Pro Type1 – batteridrivet alternativ till tryckluft på burk 62
- Igår Nu stiger hårddiskpriserna med uppemot 10 procent 16
- Igår Analytiker: Apple har överskattat intresset för Vision Pro 52
- 24 / 4 AMD, Nvidia och Intel – vad är det för skillnad mellan grafikkortstillverkarna? 33
- Iphones marknadsandel faller i USA30
- Därför blockerar Windows 11 24H2 Start‑menyhack24
- Airtec Pro Type1 – batteridrivet alternativ till tryckluft på burk62
- Dator toppar på 100°C vid spel eller annan krävande aktivitet10
- Tips på datorbygge med en 5700G11
- Övriga fynd (bara tips, ingen diskussion) — Läs första inlägget först!1128
- Cage/Bur till Fractal Design Define R5 fråga2
- Vad har ni i lön?12993
- Fedora 403
- MC - förstahoj, körkort och utrustning [Samlingstråd]3045
- Säljes Gigabyte M28U intressekoll
- Säljes BitFenix Dawn Tempererat Glas
- Säljes Kingston PCie 4.0 NVMe M.2 4TB 7300MB/s
- Säljes i3-8100
- Köpes Luftkylning och Fläktar
- Köpes Nvidia Quadro P400,600 eller 620
- Säljes Dell Latitude 7530 15,6”
- Köpes Önskar köpa 6700xt eller 3070
- Säljes Asus Geforce RTX 2070 8GB Strix Gaming OC
- Köpes Köper bärbara datorer, trasiga, utan skärm etc.
- Därför blockerar Windows 11 24H2 Start‑menyhack24
- Iphones marknadsandel faller i USA30
- Konsumentverket granskar tio nätbutiker som lurat kunder17
- Airtec Pro Type1 – batteridrivet alternativ till tryckluft på burk62
- Nintendo-innehåll tas bort från Garrys Mod24
- Nu stiger hårddiskpriserna med uppemot 10 procent16
- Quiz: Vad kan du om Inet?70
- Analytiker: Apple har överskattat intresset för Vision Pro52
- Microsoft rullar ut Startmenyreklam till alla78
- EU röstar igenom ”rätten att reparera”53