Ver Mensaje Individual
  #23 (permalink)  
Antiguo 06/12/2010, 14:03
Avatar de metacortex
metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
Respuesta: Problema con array

Bueno aquí estoy jodiendo la paciencia otra vez. Sucede que también necesito extraer otras líneas además de [msgid], [msgstr] y las demás mencionadas. Se trata de [#:] y [#,]. Ambas son importantes para el proyecto y hasta hace poco no lo había tomado en cuenta.

Utilicé el código del pana Abimael para esto, modificando la expresión regular contenida en el preg_match:

Código PHP:
Ver original
  1. foreach($leer as $k => $l){
  2.     // preg_match('/^(\w+(?:\[\d\])?).*/is', $l, $m); Original
  3.     preg_match('/^(#(\:|,).*|\w+(?:\[\d\])?).*/', $l, $m); // Modificada
  4.     if(!empty($m[1])){
  5.         $arr[$n][$m[1]] = $k + 1 .' '. $m[0];
  6.         $bool = false;
  7.     }
  8.     elseif(!$bool && empty($m[1])) {
  9.         $bool = true;
  10.         $n++;
  11.     }
  12. }
Entonces me devuelve este resultado (ejemplo):

Código PHP:
Ver original
  1. [4] => Array
  2.         (
  3.             [#: wp-admin/edit-category-form.php:80] => 35 #: wp-admin/edit-category-form.php:80
  4.            [#: wp-admin/edit-link-category-form.php:27] => 36 #: wp-admin/edit-link-category-form.php:27
  5.            [#: wp-admin/includes/template.php:266] => 37 #: wp-admin/includes/template.php:266
  6.            [msgid] => 38 msgid "Update Category"
  7.             [msgstr] => 39 msgstr "Actualizar categoría"
  8.         )
Fíjense que al array [: ...] lo acompaña el texto de toda la línea. Lo ideal es que quede así:

Código PHP:
Ver original
  1. [4] => Array
  2.         (
  3.             [#:] => 35 #: wp-admin/edit-category-form.php:80
  4.            [#:] => 36 #: wp-admin/edit-link-category-form.php:27
  5.            [#:] => 37 #: wp-admin/includes/template.php:266
  6.            [msgid] => 38 msgid "Update Category"
  7.             [msgstr] => 39 msgstr "Actualizar categoría"
  8.         )
Creo que el problema es el primer asterisco de la expresión; ésta se acomoda cuando se lo quito, pero en contraparte sólo muestra un "[:]" dejando por fuera a los demás (en los casos de arrays con muchos "[:]") ¿Cuál es la manera correcta de configurar esa expresión?.