Ultimamente ho inserito nelle pagien di admin dei miei lavori una routine javascript che crea dal titolo in lingua della pagina una stringa url compatibile. Il codice è basato sulle regexp e cioè
codice:
/** ------------------------------------
/** Live URL Title Function
/** -------------------------------------*/
function liveUrlTitle()
{
var defaultTitle = '';
var NewText = document.getElementById('paginaitaliano').value;
if (defaultTitle != '')
{
if (NewText.substr(0, defaultTitle.length) == defaultTitle)
{
NewText = NewText.substr(defaultTitle.length)
}
}
NewText = NewText.toLowerCase();
var separator = '_';
if (separator != '_')
{
NewText = NewText.replace(/\_/g, separator);
}
else
{
NewText = NewText.replace(/\-/g, separator);
}
// Foreign Character Attempt
var NewTextTemp = '';
for(var pos=0; pos<NewText.length; pos++)
{
var c = NewText.charCodeAt(pos);
if (c >= 32 && c < 128)
{
NewTextTemp += NewText.charAt(pos);
}
else
{
if (c == '223') {NewTextTemp += 'ss'; continue;}
if (c == '224') {NewTextTemp += 'a'; continue;}
if (c == '225') {NewTextTemp += 'a'; continue;}
if (c == '226') {NewTextTemp += 'a'; continue;}
if (c == '229') {NewTextTemp += 'a'; continue;}
if (c == '227') {NewTextTemp += 'ae'; continue;}
if (c == '230') {NewTextTemp += 'ae'; continue;}
if (c == '228') {NewTextTemp += 'ae'; continue;}
if (c == '231') {NewTextTemp += 'c'; continue;}
if (c == '232') {NewTextTemp += 'e'; continue;}
if (c == '233') {NewTextTemp += 'e'; continue;}
if (c == '234') {NewTextTemp += 'e'; continue;}
if (c == '235') {NewTextTemp += 'e'; continue;}
if (c == '236') {NewTextTemp += 'i'; continue;}
if (c == '237') {NewTextTemp += 'i'; continue;}
if (c == '238') {NewTextTemp += 'i'; continue;}
if (c == '239') {NewTextTemp += 'i'; continue;}
if (c == '241') {NewTextTemp += 'n'; continue;}
if (c == '242') {NewTextTemp += 'o'; continue;}
if (c == '243') {NewTextTemp += 'o'; continue;}
if (c == '244') {NewTextTemp += 'o'; continue;}
if (c == '245') {NewTextTemp += 'o'; continue;}
if (c == '246') {NewTextTemp += 'oe'; continue;}
if (c == '249') {NewTextTemp += 'u'; continue;}
if (c == '250') {NewTextTemp += 'u'; continue;}
if (c == '251') {NewTextTemp += 'u'; continue;}
if (c == '252') {NewTextTemp += 'ue'; continue;}
if (c == '255') {NewTextTemp += 'y'; continue;}
if (c == '257') {NewTextTemp += 'aa'; continue;}
if (c == '269') {NewTextTemp += 'ch'; continue;}
if (c == '275') {NewTextTemp += 'ee'; continue;}
if (c == '291') {NewTextTemp += 'gj'; continue;}
if (c == '299') {NewTextTemp += 'ii'; continue;}
if (c == '311') {NewTextTemp += 'kj'; continue;}
if (c == '316') {NewTextTemp += 'lj'; continue;}
if (c == '326') {NewTextTemp += 'nj'; continue;}
if (c == '353') {NewTextTemp += 'sh'; continue;}
if (c == '363') {NewTextTemp += 'uu'; continue;}
if (c == '382') {NewTextTemp += 'zh'; continue;}
if (c == '256') {NewTextTemp += 'aa'; continue;}
if (c == '268') {NewTextTemp += 'ch'; continue;}
if (c == '274') {NewTextTemp += 'ee'; continue;}
if (c == '290') {NewTextTemp += 'gj'; continue;}
if (c == '298') {NewTextTemp += 'ii'; continue;}
if (c == '310') {NewTextTemp += 'kj'; continue;}
if (c == '315') {NewTextTemp += 'lj'; continue;}
if (c == '325') {NewTextTemp += 'nj'; continue;}
if (c == '352') {NewTextTemp += 'sh'; continue;}
if (c == '362') {NewTextTemp += 'uu'; continue;}
if (c == '381') {NewTextTemp += 'zh'; continue;}
}
}
NewText = NewTextTemp;
NewText = NewText.replace('/<(.*?)>/g', '');
NewText = NewText.replace('/\&#\d+\;/g', '');
NewText = NewText.replace('/\&\#\d+?\;/g', '');
NewText = NewText.replace('/\&\S+?\;/g','');
NewText = NewText.replace(/['\"\?\.\!*$\#@%;:,=\(\)\[\]]/g,'');
NewText = NewText.replace(/\s+/g, separator);
NewText = NewText.replace(/\//g, separator);
NewText = NewText.replace(/[^a-z0-9-_]/g,'');
NewText = NewText.replace(/\+/g, separator);
NewText = NewText.replace(/[-_]+/g, separator);
NewText = NewText.replace(/\&/g,'');
NewText = NewText.replace(/-$/g,'');
NewText = NewText.replace(/_$/g,'');
NewText = NewText.replace(/^_/g,'');
NewText = NewText.replace(/^-/g,'');
if (document.getElementById('url_title'))
{
document.getElementById('url_title').value = '' + NewText;
}
else
{
document.forms[0].elements['url_title'].value = '' + NewText;
}
}
Il mio problema è ora fare la stessa cosa senza passare dal js, cioè usare il php per creare exnovo queste stringhe in un vecchio db. LA cosa ovviamente è fattibile ma bisogna tradurre dal js al php... nn è che qualcuno sa dirmi se esiste uno script già fatto anche se ovviamente non basato su quella logica? Grazie