subir predefinidas manejo lista informatica funciones ejemplos ejemplo crear comandos carpeta archivos archivo php database pagination flat-file

php - predefinidas - manejo de archivos informatica



Ayuda con la secuencia de comandos de paginaciĆ³n de PHP para la base de datos de archivos planos (1)

Tengo algunas preguntas sobre una secuencia de comandos de paginación PHP para la base de datos de archivos planos que encontré. He publicado el script a continuación.

<?php echo ''<html><body>''; // Data, normally from a flat file or some other source $data = "Item1|Item2|Item3|Item4|Item5|Item6|Item7|Item8|Item9|Item10"; // Put our data into an array $dataArray = explode(''|'', $data); // Get the current page $currentPage = trim($_REQUEST[page]); // Pagination settings $perPage = 3; $numPages = ceil(count($dataArray) / $perPage); if(!$currentPage || $currentPage > $numPages) $currentPage = 0; $start = $currentPage * $perPage; $end = ($currentPage * $perPage) + $perPage; // Extract ones we need foreach($dataArray AS $key => $val) { if($key >= $start && $key < $end) $pagedData[] = $dataArray[$key]; } foreach($pagedData AS $item) echo ''<a href="/''. $item .''/index.php">''. $item .''</a><br>''; if($currentPage > 0 && $currentPage < $numPages) echo ''<a href="?page='' . ($currentPage - 1) . ''">« Previous page</a><br>''; if($numPages > $currentPage && ($currentPage + 1) < $numPages) echo ''<a href="?page='' . ($currentPage + 1) . ''" class="right">Next page »</a><br>''; echo ''</body></html>''; ?>

Mi primer problema parece estar en la línea 9. Podría cambiar la línea a:

$currentPage = trim(@$_REQUEST[page]);

Pero este cambio no solucionará el error, simplemente lo ocultará. ¿Qué debe hacerse en la línea 9 para eliminar el error de mi página?

En segundo lugar, me gustaría buscar los datos en la línea 5 de una manera diferente. Me gustaría obtener los datos de un archivo de texto, llamémoslo "items.txt", que tiene entradas como a continuación, una por línea.

Fun Games Toys Sports Fishing Pools Boats

Por favor, recomiende un código alternativo para obtener los datos deseados.

Por último, me gustaría incluir enlaces a la "Primera página" y "Última página", así como a "Página anterior" y "Página siguiente", como es el código actual.

Me disculpo por mi publicación descuidada, pero apreciaría mucho a cualquiera que pueda ayudarme a comprender los cambios necesarios para producir los resultados deseados. Gracias.....


Problema con la línea 9

$_REQUEST[page] tiene dos problemas separados.

1) la page se lee como el nombre de una constante porque no está citada. PHP luego nota que no hay una page llamada constante, por lo que se supone que se refería a la page cadena, que sería si se citara la page , y desencadena un error para notificarlo. Por lo tanto, use $_REQUEST[''page''] lugar.

2) ''page'' no es necesariamente una clave de $_REQUEST porque no se garantiza que se den los datos. Por lo tanto, no puede consultar $_REQUEST[''page''] antes de asegurarse de que exista. Esto se puede hacer por isset($_REQUEST[''page'']) .

Tu código final debería verse más o menos así, entonces.

if (isset($_REQUEST[''page''])) { $currentPage = $_REQUEST[''page'']; } else { $currentPage = ''some default value''; }

Problema con el origen de datos

La función file() lee las líneas de un archivo en una matriz, por ejemplo, el cuarto valor de la matriz es también la cuarta línea del archivo. Por lo tanto, puede configurar $dataArray simplemente como $dataArray = file(''text.dat''); .