Código HTML:
Ver original
El sistema debe encontrar automáticamente las coincidencias y convertirlas en algo como esto:
Código HTML:
Por supuesto además de la lista existe un montón de texto extra. La forma más lógica que pude pensar fue convertir lista y datos en arrays para luego encararlas con strtr(), de manera que el reemplazo se haga sólo en la zona indicada (en lugar de ejecutarse en otra coincidencia que exista en el texto completo). Lo hice de esta forma:Ver original
Código PHP:
Con esto logré sacar ambos arrays. El de los datos:Ver original
$patron = "/\(Art. .*\)/"; foreach ($coinc[0] as $k => $v) { }
Código PHP:
y el de las listas:Ver original
// Resultado: ( ( [0] => 500 ) ( [0] => 600-a ) ( [0] => 700 [1] => 1000 ) ( [0] => 800-a [1] => 1000 ) ( [0] => 900 [1] => 1000-a ) ( [0] => 999-a [1] => 1000-b ) ( [0] => 76 [1] => 763 [2] => 829 [3] => 860 [4] => 872 [5] => 879 [6] => 881-x [7] => 921 [8] => 927 [9] => 928 [10] => 954 [11] => 1085 [12] => 1127 [13] => 1140 ) )
Código PHP:
El problema que no logro resolver es que el array de datos salga así:Ver original
Código PHP:
He tratado de modificar esas claves y valores, pero no puedo hacerlo sin que el array pierda la actual estructura. Agradecido a quien me pueda orientar. Dejo el archivo completo por si alguien quiere probar:Ver original
Código PHP:
Ver original
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8" /> <title>Indice</title> <style type="text/css"> * { margin: 0; padding: 0; } body { font: normal normal normal 13px Lucida Sans Unicode; background: #fff; } </style> </head> <body> <?php $html =' <ul> <li>Caso 1 (Art. 500).</li> <li>Caso 2 (Art. 600-a).</li> <li>Caso 3 (Art. 700 y 1000).</li> <li>Caso 4 (Art. 800-a y 1000).</li> <li>Caso 5 (Art. 900 y 1000-a).</li> <li>Caso 6 (Art. 999-a y 1000-b).</li> <li>Caso 7 (Art. 320, 497, 68, 5, 2360-e, 410 y 903).</li> </ul>'; $patron = "/\(Art. .*\)/"; foreach ($coinc[0] as $k => $v) { } echo '<pre style="background: #efefef; font-family: Lucida Console; padding: 8px;margin-bottom: 8px;">'. print_r($array , true) .'</pre>'; ?> </body> </html>