Hola worldPeace_Plis
No reconoce las matrices por el ámbito de las variables, tus arrays estan en el ámbito global y la función es un ámbito local, podrias hacer lo siguiente:
en caso de que los arrays los va ha utilizar en otras funciones mas
Código PHP:
$char_spec = array("á", "é", "í", "ó", "ú", "Á", "É", "Í", "Ó", "Ú", "ñ", "Ñ", "¡", "¿");
$char_html = array("á", "é", "í", "ó", "ú", "Á", "É", "Í", "Ó", "Ú", "ñ", "Ñ", "¡", "¿");
$anchor_html = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U", "nh", "Nh;", "", "");
function strChangeTo($pChar)
{
global $char_spec, $char_html, $anchor_html;
// TEMA
$item_li = strtoupper($pChar);
$item_li = str_replace($char_spec, $char_html, $item_li);
// ANCLA
$anchor_li = str_replace($char_html, $anchor_html, $item_li);
$anchor_li = ucfirst(strtolower($item_li)); // Asi
$cadena = "<a href='". $anchor_li ."'>". $item_li ."</a>";
return $cadena;
}
si los arrays son solamente para esta funcion
Código PHP:
function strChangeTo($pChar)
{
$char_spec = array("á", "é", "í", "ó", "ú", "Á", "É", "Í", "Ó", "Ú", "ñ", "Ñ", "¡", "¿");
$char_html = array("á", "é", "í", "ó", "ú", "Á", "É", "Í", "Ó", "Ú", "ñ", "Ñ", "¡", "¿");
$anchor_html = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U", "nh", "Nh;", "", "");
// TEMA
$item_li = strtoupper($pChar);
$item_li = str_replace($char_spec, $char_html, $item_li);
// ANCLA
$anchor_li = str_replace($char_html, $anchor_html, $item_li);
$anchor_li = ucfirst(strtolower($item_li)); // Asi
$cadena = "<a href='". $anchor_li ."'>". $item_li ."</a>";
return $cadena;
}
Salud2