¿Alguien ha tenido problemas con la función iconv_strlen mientras ejecuta MAMP?función iconv_strlen que causa el tiempo de espera de ejecución, ejecutándose en MAMP
Respuesta
He estado teniendo un problema de tiempo de espera con él, pero no con ninguna excepción lanzada. Estoy trabajando en un sitio de Zend Framework. Al seguir el depurador profundamente en las agallas, rastreé el problema hasta el uso de iconv_strlen. No está siendo invocado en ninguna cadena extraña, es una función simple que se utiliza para validar un nombre de host.
Para verificar el problema, intenté con un simple iconv_strlen ("prueba", "UTF-8"); Esto hace que surja un error: un cargador infinito en el navegador pero ningún mensaje de registro de errores, y el script va más allá del tiempo máximo de ejecución. Parece que esto es un gran problema en esta versión de PHP.
Mi colega encontró este artículo que podría resolver el problema. Estoy en una máquina Mac OS X actualizada con la última versión de Snow Leopard, que es 10.6. Parece que se trata de un error conocido y hay una solución si construyes tu propio php o utilizas la versión de Apple integrada o usas puertos.
- Bug #49267 Linking fails for iconv: "Undefined symbols: _libiconv"
- PHP 5.3.0 on Mac OS 10.6 (Snow Leopard) - Fabien Potencier; 05 Nov 2009
Para resumir, se puede profundizar en su propio recompilar PHP con el parche anterior, pero este tipo de derrotas el punto de MAMP en el primer lugar.
La solución más rápida es simplemente o nunca usar iconv_strlen() (o cualquiera de las funciones iconv_) - y esta no es una opción si usa Zend Framework - o revertir MAMP para usar php 5.2.
Hasta que MAMP comience a incluir archivos fuente php y proporcione un método por el cual recompilar fácilmente el php incluido con todas las bibliotecas necesarias, esto será necesariamente una limitación del paquete. MAMP funciona muy bien hasta que llegas al punto donde necesitas recompilar php. Cuando eso sucede, es mucho más fácil simplemente usar puertos.
user673450, este es el problema exacto que estoy teniendo. Thx para la información sobre posibles soluciones. – blacktie24
Tengo el mismo problema con iconv_strpos pero solo en 5.3.5. Funciona en mi otra máquina con 5.3.2 ... entonces, ¿cómo puede ser esto? – spankmaster79
gracias. genial saber que no me estoy volviendo loco esto sigue siendo un problema para mí en Mamp Pro 2.0.1. – Steve
wbond, lo tienes un poco mezclado. MAMP 1.9.4 funciona 100% bien. Es cualquier versión de MAMP de 1.9.5 a 2.0.1 que contiene el problema "iconv". Además, probé tu solución en PHP 5.3.6 en MAMP 2.0.1 y no funciona. La única solución es retrotraer a MAMP 1.9.4 o utilizar el último MAMP, pero volver a pasar PHP a 5.2.x.
<?php
$str = 'Hello, world!';
$str = iconv_function('UTF-8', 'UTF-8//IGNORE', $str);
echo $str;
function iconv_function ($in_charset, $out_charset, $str) {
return iconv($in_charset, $out_charset, $str);
}
?>
De acuerdo con los foros de MAMP, the new update to version 2.x (2.0.2 released on August 17, 2011) resolves the iconv issue. ¡Sí!
- 1. Tiempo de espera una función en PHP
- 2. ¿Cuenta el tiempo de espera para el límite de tiempo de ejecución?
- 3. Javascript IOS5 "ejecución de JavaScript excedió el tiempo de espera"
- 4. ob_flush() de PHP que causa el error
- 5. evaluación Función desactivada debido a que una evaluación de la función anterior Tiempo de espera agotado
- 6. Ejecución RegEx Tiempo de espera en .NET 4
- 7. modificar un método/función en el tiempo de ejecución
- 8. Python: crea dinámicamente la función en el tiempo de ejecución
- 9. Función de tiempo de espera si tarda demasiado en terminar
- 10. ¿Cómo diferenciar cuándo espera (tiempo de espera prolongado) salir para notificar o tiempo de espera?
- 11. ¿Qué causa el tiempo de espera expirado SqlExceptions en LINQ to SQL?
- 12. PHP iconv_strlen() que significa la pregunta
- 13. Cómo implementar una "función de tiempo de espera" en Javascript - no sólo el 'setTimeout'
- 14. Set rieles solicitar tiempo de espera (ejecución expiró)
- 15. Extracción de una función en tiempo de ejecución en PHP
- 16. Función con valor de retorno que falta, el comportamiento en tiempo de ejecución
- 17. Ejecutándose en ejecución como un usuario diferente
- 18. Método de tiempo de espera en java
- 19. Establecer el tiempo de espera en simplexml_load_file
- 20. Tiempo de espera agotado - Tiempo de espera agotado
- 21. hibernate Excedido el tiempo de espera de espera de bloqueo;
- 22. boost :: función de rendimiento en tiempo de ejecución
- 23. Cómo extender el tiempo de espera de una consulta SQL
- 24. función que devuelve un tipo genérico cuyo valor es conocido sólo en tiempo de ejecución
- 25. php Tiempo de espera de GearmanClient
- 26. Implementación de un tiempo de espera en una función que devuelve un valor
- 27. Cómo evitar el tiempo de espera del navegador en procesos de larga ejecución?
- 28. ¿comprobó que las excepciones suceden en el tiempo de ejecución?
- 29. ejecutar la función de tiempo de espera con
- 30. Mida el tiempo de ejecución en C#
¿Cómo se almacenan las cadenas en PHP? ¿Con un '\ 0' o llevan una longitud? – alex
Tienen una longitud en bytes, pero no hay codificación. ['iconv_strlen'] (http://us2.php.net/manual/en/function.iconv-strlen.php) convierte la cadena en codificaciones de caracteres y luego devuelve el recuento de * caracteres *, a diferencia de la longitud del byte. – Charles
@ blacktie24, ¿podría proporcionarnos una cadena de muestra que cause problemas? Puede publicarlo de forma segura aquí después de ejecutarlo a través de 'rawurlencode' para asegurarse de obtener los bytes correctos reales. (He vuelto a marcar su publicación.) – Charles