|
|
 |
LV. Funciones iconv
Este m贸dulo contiene una interfaz con la facilidad de
conversi贸n de juegos de caracteres iconv. Con 茅ste
m贸dulo, es posible convertir una cadena representada por
un juego de caracteres local a una representada por otro juego de
caracteres, que puede ser el juego de caracteres Unicode. Los
juegos de caracteres soportados dependen de la
implementaci贸n de iconv en su sistema. Note que la
funci贸n iconv en algunos sistemas puede que no funcione
como lo espera. En tal caso, ser铆a una buena idea instalar
la biblioteca libiconv
GNU. Es muy probable que consiga unos resultados
m谩s consistentes.
A partir de PHP 5.0.0, esta
extensi贸n viene con varias funciones utilitarias que le
ayudan a escribir scripts multi-ling眉es. Echemos un vistazo
a las siguientes secciones para explorar las nuevas
caracter铆sticas.
No necesita de nada si el sistema que usa es uno de los sistemas
recientes compatibles con POSIX, ya que las bibliotecas C
est谩ndar que vienen con ellos ofrecen la facilidad
iconv. De otro modo, es necesario instalar la biblioteca libiconv en su sistema.
Para usar las funciones de 茅ste m贸dulo, el binario
PHP debe ser compilado con la siguiente
l铆nea de configuraci贸n: --with-iconv[=DIR].
Nota para Usuarios de Windows庐:
Para habilitar 茅ste m贸dulo en un entorno
Windows庐, necesita colocar un archivo DLL llamado
iconv.dll o iconv-1.3.dll
(antes de 4.2.1), el cual hace parte del paquete binario PHP/Win32,
en un directorio especificado por la variable de entorno
PATH o uno de los directorios de sistema de su
instalaci贸n de Windows庐.
Este m贸dulo es parte de PHP a partir de PHP 5, por lo tanto
iconv.dll y php_iconv.dll
no se requieren m谩s.
El comportamiento de estas
funciones est谩 afectado por los valores definidos en
php.ini.
Tabla 1. Opciones de configuraci贸n de iconv | Nombre | Predeterminado | Modificable | Cambios |
|---|
| iconv.input_encoding | "ISO-8859-1" | PHP_INI_ALL | Disponible desde PHP 4.0.5. | | iconv.output_encoding | "ISO-8859-1" | PHP_INI_ALL | Disponible desde PHP 4.0.5. | | iconv.internal_encoding | "ISO-8859-1" | PHP_INI_ALL | Disponible desde PHP 4.0.5. |
For further details and definitions of the
PHP_INI_* constants, see the Ap茅ndice G.
| Aviso |
Algunos sistemas (como IBM AIX) usan "ISO8859-1" en lugar de
"ISO-8859-1", as铆 que este valor debe usado en las opciones
de configuraci贸n y en los par谩metros de
funci贸n.
|
Nota:
La opci贸n de configuraci贸n
iconv.input_encoding actualmente no es usada
en absoluto.
Esta extensi贸n no tiene
ning煤n tipo de recurso definido.
Desde PHP 4.3.0, es posible identificar,
en tiempo de ejecuci贸n, qu茅 implementaci贸n de
iconv es adoptada por esta extensi贸n.
Tabla 2. Constantes de iconv | Nombre | Tipo | Descripci贸n |
|---|
| ICONV_IMPL | string | El nombre de la implementaci贸n | | ICONV_VERSION | string | La versi贸n de la implementaci贸n |
Nota:
Escribir scripts que dependan de la implementaci贸n con
茅stas constantes no se recomienda en absoluto.
A partir de PHP 5.0.0, las siguientes
constantes se encuentran disponibles tambi茅n:
Tabla 3. Constantes de iconv disponibles desde PHP
5.0.0
nod at mobi dot kz
17-Jul-2006 07:17
If you need convert string from Windows-1251 to 866. Some characters of 1251 haven't representation on DOS 866. For example, long dash -- chr(150) will be converted to 0, after that iconv finish his work and other charactes will be skiped. Problem characters range in win1251 (128-159,163,165-167,169,171-174,177-182,187-190).
Use this:
//$text - input text in windows-1251
//$cout - output text in 866 (cp866, dos ru ascii)
for($i=0;$i<strlen($text);$i++) {
$ord=ord($text[$i]);
if($ord>=192&&$ord<=239) $cout.=chr($ord-64);
elseif($ord>=240&&$ord<=255) $cout.=chr($ord-16);
elseif($ord==168) $cout.=chr(240);
elseif($ord==184) $cout.=chr(241);
elseif($ord==185) $cout.=chr(252);
elseif($ord==150||$ord==151) $cout.=chr(45);
elseif($ord==147||$ord==148||$ord==171||$ord==187) $cout.=chr(34);
elseif($ord>=128&&$ord<=190) $i=$i; //薪械褌 锌褉械写褋褌邪胁谢械薪懈褟 写邪薪薪芯屑褍 褋懈屑胁芯谢褍
else $cout.=chr($ord);
}
andrej009
16-Mar-2006 04:22
There's one more special german character: 脽 (sometimes displayed as 潍)
so: case 159: $out .= "脽";break;
08-Nov-2005 12:05
But this is a very slow method to convert this:
// function to change german umlauts into ue, oe, etc.
function cv_input($str){
Better try this:
$tr = array(chr(xyz) => '', chr(160) => ' '); // Just a simple example, put all your characters in there
$string = strtr($string, $tr);
Christophe Lienert
27-Sep-2005 02:09
In addition to Godfather's note below, you may find this function useful just as well.
// function to change german umlauts into ue, oe, etc.
function cv_input($str){
$out = "";
for ($i = 0; $i<strlen($str);$i++){
$ch= ord($str{$i});
switch($ch){
case 195: $out .= "";break;
case 164: $out .= "ae"; break;
case 188: $out .= "ue"; break;
case 182: $out .= "oe"; break;
case 132: $out .= "Ae"; break;
case 156: $out .= "Ue"; break;
case 150: $out .= "Oe"; break;
default : $out .= chr($ch) ;
}
}
return $out;
}
The Godfather
15-Dec-2004 05:36
With this function you can translate the german Symbols from the character set UTF-8 in windows-1252.
function convert_text($str){
$out = '';
for ($i = 0; $i<strlen($str);$i++){
$ch = ord($str{$i});
switch($ch){
case 252: $out .= chr(129);break; //u Umlaut
case 220: $out .= chr(154);break;//U Umlaut
case 228: $out .= chr(132);break;//a Umlaut
case 196: $out .= chr(142);break;//A Umlaut
case 214: $out .= chr(153);break;//O Umlaut
case 246: $out .= chr(148);break;//o Umlaug
case 223: $out .= chr(225);break;//SZ
default : $out .= chr($ch) ;
}
}
return $out;
}
tokiee at hotmail dot com
19-Aug-2004 01:40
iconv now has been built-in, at least in PHP >= 5.0.1 for win32. You don't have to modify php.ini for this. Actually you should not. And clearly, libiconv does not need to be installed.
thierry.bo
23-Dec-2003 02:26
Windows users.
Personaly I leaved all php dlls in \php\dlls\ directory, just adding this path to my system path, and iconv.dll supplied with php 4.3.2 works fine, also leaving supplied php_iconv.dll in my \php\extensions\ directory. This was working fine with Apache and Omnihttpd server I use.
As soon I installed IIS on the same server, php complained about not finding php_iconv.dll in the extensions directory. In fact PHP with IIS loads all extensions in my \php\extensions directory correctly, except php_iconv.dll.
Although iconv.dll is in my system path, the only way to load php_iconv.dll was to copy iconv.dll file in \%winnt\system32 directory. With other servers, iconv.dll can be in anywhere in the system path.
13-Sep-2002 05:23
I'm not sure how recent version of
glibc 2.x Slackware 7.x/8.x comes with, but
it's very likely that it comes with glibc 2.2.x.
In that case, you don't have to bother at all to
install libiconv in /usr/local. iconv(3) in glibc 2.2.x
is very good (thanks to Ulrich Drepper and
Bruno Haible. the latter is the author of libiconv).
libiconv is very handy for those outdated/non-standard-compliant Unix
and non-Unix systems that don't have
sufficiently good iconv(3) in their C library.
elk at NOSPAMmodel-fx dot com
26-Jul-2002 09:07
If you use the libiconv library instead of the libc's iconv support, don't forget to use libiconv() instead of iconv()
elk at NOSPAMmodel-fx dot com
25-Jul-2002 08:39
To compile libiconv under Slackware 7.0 or 8.0 without errors (either with the apache module of PHP or the CGI version), you must specify the full path of the libiconv installation.
Exemple :
--with-iconv=/usr/local
| |
|
| Inicio | Acción | Estrategia | Palabras | Puzzles | Solitarios | Foro Trucos |  | Cake Mania Jugadores: 6835 Categoría del juego: Acción Objetivo del juego: Ayuda a Jill a recuperar la pasteler韆 de su abuela llevando su propia pasteler韆; consigue clientes y gana dinero. |
|  | Rainbow Web Jugadores: 2199 Categoría del juego: Puzzles Objetivo del juego: Rompe un pegajoso hechizo y salva un reino de fantas韆 en Rainbow Web. Tendr醩 toneladas de diversi髇 mientras juegas a este m醙ico desaf韔 para la mente. |
|  | Mahjongg Fortuna Jugadores: 12462 Categoría del juego: Solitarios Objetivo del juego: Velocidad y habilidad mental son las armas más importantes en esta versión de un antiguo juego asiático. Despeja el tablero lo antes posible haciendo clic en las fichas iguales y gánate la fama eterna de la puntuación más alta. |
|  | Chainz 2 Jugadores: 6955 Categoría del juego: Puzzles Objetivo del juego: Entra en el mundo de las combinaciones con Chainz 2: Relinked, emocionante secuela del exitazo del a駉 pasado, Chainz. Gira eslabones y crea combinaciones de 3 m醩. |
|  | Delicious Jugadores: 4405 Categoría del juego: Acción Objetivo del juego: 縀res un as de la multitarea? 縌uieres que tus clientes est閚 contentos? ues Delicious es tu juego! Sacia el apetito de los clientes y tenlos contentos; o te arriesgues! |
|  | Bookworm Jugadores: 4568 Categoría del juego: Palabras Objetivo del juego: Junta las letras para formar palabras. ¡Las palabras más largas valen más puntos! |
|  | Zuma Jugadores: 4976 Categoría del juego: Acción Objetivo del juego: Controla el 韉olo de la rana de piedra de los antiguos Zuma en este intrigante enigma de acci髇. ispara bolas para formar conjuntos de tres, pero si dejas que lleguen a la calavera dorada morir醩! |
|  | Jewel of Atlantis Jugadores: 3798 Categoría del juego: Puzzles Objetivo del juego: Descubre la ciudad hundida de la Atl醤tida y busca valiosos tesoros. Viaja m醩 all de las profundidades del mar y vive trepidantes aventuras en Jewel of Atlantis. |
|  | Jewel Quest Jugadores: 3727 Categoría del juego: Puzzles Objetivo del juego: Convierte la arena de la antigua selva en oro tan r醦ido como puedas juntando grupos de 3 elementos. os grupos m醩 grandes valen m醩 puntos! |
|  | Bejeweled 2 Jugadores: 3659 Categoría del juego: Puzzles Objetivo del juego: Con cuatro modos de juego 鷑icos y fascinantes, nuevas piezas de juego explosivas e imponentes fondos planetarios, Bejeweled 2 es mucho m醩 adictivo que nunca. |
|
|