Domanda

Sto programmando un blog e voglio che gli URI siano il titolo come il titolo della domanda qui in StackOverflow o come wordpress.
Quali sono le regole per la sanificazione di un URI?
Esiste un codice già creato in PHP che lo fa?

Grazie in anticipo,
Omer

È stato utile?

Soluzione

Molti CMS hanno implementato qualcosa del genere, quello di Wordpress è stato pubblicato in un'altra domanda . Potresti essere interessato alla domanda su questa tecnica anche in generale.

Altri suggerimenti

Questo potrebbe essere il modo più breve per sostituire qualsiasi carattere non alfanumerico con un singolo trattino:

trim(preg_replace('/[^a-z0-9-]+/', '-', strtolower($str)), '-')

Ecco come lo fa drupal .

In caso di caduta del sito:

<?php
function pathauto_cleanstring($string)
{
    $url = $string;
    $url = preg_replace('~[^\\pL0-9_]+~u', '-', $url); // substitutes anything but letters, numbers and '_' with separator
    $url = trim($url, "-");
    $url = iconv("utf-8", "us-ascii//TRANSLIT", $url); // TRANSLIT does the whole job
    $url = strtolower($url);
    $url = preg_replace('~[^-a-z0-9_]+~', '', $url); // keep only letters, numbers, '_' and separator
    return $url;
}

Generalmente vorresti che il tuo URL avesse solo 0-9 e a-z, e assicurati che tutto sia in minuscolo. Sostituisci gli spazi con trattini (-) e rimuovi il resto del gibberish.

È così praticamente capito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top