<?php
/**
* @file formater_nametoken.php
* @brief Page qui transforme un intitulé en nametoken.
*
* @author hughes monget
* @see http://monget.com/
*/
define('STR_TEXTE', 'texte');
define('STR_ACTION', 'action');
$bool_action = isset($_REQUEST[STR_ACTION]) && isset($_REQUEST[STR_TEXTE]);
$str_texte = '';
$str_formater = '';
if ($bool_action)
{
$str_texte = $_REQUEST[STR_TEXTE];
if (get_magic_quotes_gpc())
{
$str_texte = stripslashes($str_texte);
}
$str_formater = $str_texte;
// On remplace les caractères accentués par leur équivalent ascii.
// http://www.phpsources.org/scripts84-PHP.htm
$str_from = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ';
$str_to = 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn';
/* $str_formater = strtr($str_formater, $str_from, $str_to); */
$str_from = str_split($str_from);
$str_to = str_split($str_to);
$str_formater = str_replace($str_from, $str_to, $str_formater);
// On remplace tous les caractères non autorisés par underscore.
$str_formater = preg_replace('/[^a-zA-Z0-9_]+/', '_', $str_formater);
// On remplace les underscores consécutifs par un seul.
$str_formater = preg_replace('/__+/', '_', $str_formater);
// On supprime les underscores en début et fin.
$str_formater = preg_replace('/^_|_$/', '', $str_formater);
// On minuscule.
$str_formater = strtolower($str_formater);
$str_texte = htmlspecialchars($str_texte);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Formater un texte en nametoken</title>
<style type="text/css">
<!--
body *
{
font-family: monospace;
font-size: 8pt;
}
input
{
display: block;
}
input.text
{
width: 800px;
}
form
{
margin: 0;
}
-->
</style>
<script type="text/javascript">
<!--;
function on_load()
{
if (document && document.getElementById)
{
var obj_pattern = document.getElementById('<?php print STR_TEXTE; ?>');
if (obj_pattern && obj_pattern.focus)
{
obj_pattern.focus();
}
}
}
//-->
</script>
</head>
<body onload="on_load();">
<form method="post">
<input type="hidden" name="<?php echo STR_ACTION; ?>" value="<?php echo STR_ACTION; ?>" />
<input class="text" type="text" name="<?php echo STR_TEXTE; ?>" value="<?php echo $str_texte; ?>" />
<input type="submit" class="submit" value="formater" />
</form>
<?php
if ($bool_action)
{
printf('<input class="text" type="text" value="%s" onclick="this.select();" readonly="readonly" />', $str_formater);
}
echo '<hr />';
highlight_file(__FILE__);
?>
</body>
</html>