qualitum logo
Omskrivning till SEO-vänlig URL

PHPportalen Forum Index » Tips och Trix
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
hallis



Medlem i: 3690 dagar
Från: Stockholm
Status: Offline



#687100
Inlägg Skrivet: 2010-08-25 16:30      Ämne: Omskrivning till SEO-vänlig URL Citera

Skrev ihop en funktion som jag ska använda för en kund, kan vara rätt bra för de flesta.

PHP:
1:
 function urlname($fn)
2:
{
3:
   # Rewrite all signs to lower case
4:
   $fn strtolower($fn);
5:
   
6:
   # Rewrite non-accepted URL signs
7:
   $fn str_replace(array('å''ä''ã''â''á''ā'),         'a'$fn);
8:
   $fn str_replace(array('ö''õ''ô''ķ''ō''ø'),          'o'$fn);
9:
   $fn str_replace(array('ü''û''ú''ų'),                'u'$fn);
10:
   $fn str_replace(array('é''č''ę''ë'),               'e'$fn);
11:
   $fn str_replace(array('í''ė''ī''î'),               'i'$fn);
12:
   $fn str_replace(array('ņ'),                           'n'$fn);
13:
   $fn str_replace(array('˙'),                           'y'$fn);
14:
   $fn str_replace(array('ß'),                           'ss'$fn);
15:
   $fn str_replace(array('æ'),                           'ae'$fn);
16:
   
17:
   $fn preg_replace("/\s/""-"$fn);
18:
   $fn preg_replace("/[^\w\d\.\-]/"""$fn);
19:
   $fn preg_replace("/[\-]{2,}/""-"$fn);
20:
   
21:
   # Return string as URL standard
22:
   return $fn;
23:


Kan användas när man skriver om en rubrik till url (www.domain.se/news/det-har-ar-en-rubrik-som-ar-omskriven/) eller när man laddar upp filer.

Exempel #1
PHP:
1:
 echo urlname('MacWorld är en tidning för riktiga mac-nördar');
2:
// macworld-ar-en-tidning-for-riktiga-mac-nordar 


Exempel #2
PHP:
1:
 echo urlname('Solnedgång över en lugn sjö.jpg');
2:
// solnedgang-over-en-lugn-sjo.jpg 
 

_________________
Utvecklingsbloggen
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Aurix



Medlem i: 1405 dagar

Status: Offline



#687105
Inlägg Skrivet: 2010-08-25 17:18      Ämne: Citera

Tack för skriptet, som SEO optimerare kan det komma väl till användning faktiskt. Smile
 

_________________
Bakrecept | Billiga webbhotell | Internetmarknadsföring
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Sawny



Medlem i: 1006 dagar

Status: Offline



#688593
Inlägg Skrivet: 2010-09-14 16:52      Ämne: Citera

Tackar :D
Sökte i flera minuter(Smile) efter detta script.
Såg detta förut men behövde inte då.

Men nu behövde jag, tackar!
 

_________________
HTML, CSS, PHP, JS
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
marabou
Moderator



Medlem i: 3150 dagar
Från: Sveriges framsida
Status: Offline



#688637
Inlägg Skrivet: 2010-09-14 22:34      Ämne: Citera

Här är en funktion som jag skrev till ett projekt. Den använder htmlentities, och då kan konvertera alla bokstäver som har motsvarande HTML-entiteter.

Alla tecken som inte ingår i ASCII-teckentabellen får ju en entity-kod, t.ex. ä för ä, &Aring för Å osv.

Här plockar den ut första (eller de två första) tecknen och tar bort entity-koden.

PHP:
1:
    function makeSafe$s$charset='UTF-8' ) {
2:
      
3:
      $pattern '/&([a-z][ze]?)(uml|acute|circ|tilde|ring|lig|grave|slash|horn|cedil|th);/i';
4:
      $replace "\\1";
5:
      
6:
      $s htmlentities($sENT_NOQUOTES$charset);
7:
      
8:
      $s preg_replace($pattern$replace$s);
9:
      
10:
      $s html_entity_decode($sENT_NOQUOTES$charset);
11:
      
12:
      return preg_replace('/[^a-z0-9._-]/''-'strtolower$s ));
13:
      
14:
   



PHP:
1:
 echo makeSafe("MacWorld är en tidning för riktiga mac-nördar");
2:
// macworld-ar-en-tidning-for-riktiga-mac-nordar 
 

_________________
"Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
ciwie



Medlem i: 1051 dagar

Status: Offline



#688761
Inlägg Skrivet: 2010-09-16 12:57      Ämne: Citera

Grymt! Detta ska man spara! Smile
 

_________________
http://storaordlistan.se
http://laddauppbilder.se
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
Bazze



Medlem i: 2792 dagar
Från: Karlskrona
Status: Offline



#691310
Inlägg Skrivet: 2010-10-16 17:01      Ämne: Citera

Ännu ett alternativ, använder sig av iconv.

PHP:
1:
 setlocale(LC_ALL'sv_SE.UTF8');
2:
function toAscii($str$replace=array(), $delimiter='-') {
3:
    if( !empty($replace) ) {
4:
        $str str_replace((array)$replace' '$str);
5:
    }
6:
 
7:
    $clean iconv('UTF-8''ASCII//TRANSLIT'$str);
8:
    $clean preg_replace("/[^a-zA-Z0-9\/_|+ -]/"''$clean);
9:
    $clean strtolower(trim($clean'-'));
10:
    $clean preg_replace("/[\/_|+ -]+/"$delimiter$clean);
11:
 
12:
    return $clean;
13:

Källa: http://cubiq.org/the-perfect-php-clean-url-generator
 

_________________
"Speak softly and carry a big stick, you will go far."

http://onlinefunctions.net/ # http://snsolutions.se/ # http://webshopmodules.com
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
olesson



Medlem i: 2408 dagar
Från: Skåne
Status: Offline



#694766
Inlägg Skrivet: 2010-11-28 20:02      Ämne: Citera

Tja jag tackar så mycket på scriptet!
Men jag undra hur ska jag göra så att den välja från databasen i stället med id ? ska jag använda .htaccess eller ?

pss kan vara stav fel prugund av dyslexia
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
grizz



Medlem i: 1184 dagar

Status: Offline



#709616
Inlägg Skrivet: 2011-06-30 23:19      Ämne: Citera

Tack för kod :D
 

_________________
Webbhotell | Dokumenthantering
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
hallis



Medlem i: 3690 dagar
Från: Stockholm
Status: Offline



#709644
Inlägg Skrivet: 2011-07-01 14:37      Ämne: Citera

marabou skrev:
Här är en funktion som jag skrev till ett projekt. Den använder htmlentities, och då kan konvertera alla bokstäver som har motsvarande HTML-entiteter.

Alla tecken som inte ingår i ASCII-teckentabellen får ju en entity-kod, t.ex. ä för ä, &Aring för Å osv.

Här plockar den ut första (eller de två första) tecknen och tar bort entity-koden.

PHP:
1:
    function makeSafe$s$charset='UTF-8' ) {
2:
      
3:
      $pattern '/&([a-z][ze]?)(uml|acute|circ|tilde|ring|lig|grave|slash|horn|cedil|th);/i';
4:
      $replace "\\1";
5:
      
6:
      $s htmlentities($sENT_NOQUOTES$charset);
7:
      
8:
      $s preg_replace($pattern$replace$s);
9:
      
10:
      $s html_entity_decode($sENT_NOQUOTES$charset);
11:
      
12:
      return preg_replace('/[^a-z0-9._-]/''-'strtolower$s ));
13:
      
14:
   



PHP:
1:
 echo makeSafe("MacWorld är en tidning för riktiga mac-nördar");
2:
// macworld-ar-en-tidning-for-riktiga-mac-nordar 


Såg inte det här inlägget förrän nu när tråden fick en bump. Denna lösning är ju otroligt smart!
 

_________________
Utvecklingsbloggen
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
marabou
Moderator



Medlem i: 3150 dagar
Från: Sveriges framsida
Status: Offline



#709646
Inlägg Skrivet: 2011-07-01 15:28      Ämne: Citera

Rolling Eyes

Dock vet jag inte om den är så effektiv. Jag tror att iconv är effektivare/snabbare, men denna ger ett trevligt resultat för de flesta språk.
 

_________________
"Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Tips och Trix
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic
qualitum logo