| Visa föregående ämne :: Visa nästa ämne |
| Startad av: |
Meddelande |
hallis

Medlem i: 3690 dagar Från: Stockholm
Status: Offline
#687100
|
Skrivet: 2010-08-25 16:30
Ämne: Omskrivning till SEO-vänlig URL
|
|
|
Skrev ihop en funktion som jag ska använda för en kund, kan vara rätt bra för de flesta.
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
1: echo urlname('MacWorld är en tidning för riktiga mac-nördar'); 2: // macworld-ar-en-tidning-for-riktiga-mac-nordar
|
Exempel #2
1: echo urlname('Solnedgång över en lugn sjö.jpg'); 2: // solnedgang-over-en-lugn-sjo.jpg
|
|
|
|
_________________ Utvecklingsbloggen |
| Till toppen på sidan |
|
Aurix
Medlem i: 1405 dagar
Status: Offline
#687105
|
Skrivet: 2010-08-25 17:18
Ämne:
|
|
|
Tack för skriptet, som SEO optimerare kan det komma väl till användning faktiskt.  |
|
|
_________________ Bakrecept | Billiga webbhotell | Internetmarknadsföring |
| Till toppen på sidan |
|
Sawny
Medlem i: 1006 dagar
Status: Offline
#688593
|
Skrivet: 2010-09-14 16:52
Ämne:
|
|
|
Tackar :D
Sökte i flera minuter( ) 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 |
|
marabou


Medlem i: 3150 dagar Från: Sveriges framsida
Status: Offline
#688637
|
Skrivet: 2010-09-14 22:34
Ämne:
|
|
|
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 ä, Å för Å osv.
Här plockar den ut första (eller de två första) tecknen och tar bort entity-koden.
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($s, ENT_NOQUOTES, $charset); 7: 8: $s = preg_replace($pattern, $replace, $s); 9: 10: $s = html_entity_decode($s, ENT_NOQUOTES, $charset); 11: 12: return preg_replace('/[^a-z0-9._-]/', '-', strtolower( $s )); 13: 14: }
|
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 |
|
ciwie
Medlem i: 1051 dagar
Status: Offline
#688761
|
Skrivet: 2010-09-16 12:57
Ämne:
|
|
|
Grymt! Detta ska man spara!  |
|
|
_________________ http://storaordlistan.se
http://laddauppbilder.se |
| Till toppen på sidan |
|
Bazze

Medlem i: 2792 dagar Från: Karlskrona
Status: Offline
#691310
|
Skrivet: 2010-10-16 17:01
Ämne:
|
|
|
Ännu ett alternativ, använder sig av iconv.
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 |
|
olesson
Medlem i: 2408 dagar Från: Skåne
Status: Offline
#694766
|
Skrivet: 2010-11-28 20:02
Ämne:
|
|
|
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 |
|
grizz
Medlem i: 1184 dagar
Status: Offline
#709616
|
Skrivet: 2011-06-30 23:19
Ämne:
|
|
|
| Tack för kod :D |
|
|
_________________ Webbhotell | Dokumenthantering |
| Till toppen på sidan |
|
hallis

Medlem i: 3690 dagar Från: Stockholm
Status: Offline
#709644
|
Skrivet: 2011-07-01 14:37
Ämne:
|
|
|
| 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 ä, Å för Å osv.
Här plockar den ut första (eller de två första) tecknen och tar bort entity-koden.
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($s, ENT_NOQUOTES, $charset); 7: 8: $s = preg_replace($pattern, $replace, $s); 9: 10: $s = html_entity_decode($s, ENT_NOQUOTES, $charset); 11: 12: return preg_replace('/[^a-z0-9._-]/', '-', strtolower( $s )); 13: 14: }
|
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 |
|
marabou


Medlem i: 3150 dagar Från: Sveriges framsida
Status: Offline
#709646
|
Skrivet: 2011-07-01 15:28
Ämne:
|
|
|
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 |
|
|