Foros del Web » Programando para Internet » PHP »

Crear un miniscript

Estas en el tema de Crear un miniscript en el foro de PHP en Foros del Web. Hola a todos, resulta que tengo un archivo .txt que contiene muchas preguntas, pero el problema es que no están en el formato que necesito. ...
  #1 (permalink)  
Antiguo 27/01/2011, 18:08
Avatar de Jota_sk  
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 7 meses
Puntos: 0
Crear un miniscript

Hola a todos, resulta que tengo un archivo .txt que contiene muchas preguntas, pero el problema es que no están en el formato que necesito. Por lo que he pensado en crearme un mini script para poder darle el formato. La cosa en teoría es sencilla, es un script que abre el archivo.txt coge una linea borrar los 3 primeros caracteres, pasa a la siguiente linea borra los 3 primeros caracteres, etc.... así en todas las lineas de archivo.

Hasta ahora he conseguido abrir el archivo y mostrarlo en pantalla, pero lo que no se como se hace es modificar cada fila. Alguna sugerencia?


El código que tengo hasta ahora es el siguiente:

Código PHP:
<?php
$archivo 
file_get_contents("asq.txt"); 
$archivo ucfirst($archivo); 
$archivo nl2br($archivo); 
echo 
$archivo;
?>
  #2 (permalink)  
Antiguo 27/01/2011, 18:17
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 18 años
Puntos: 14
Respuesta: Crear un miniscript

Hola. Si simplemente3 has pensado en hacer el script en PHP por ser un lenguaje que conoces pero no te hace falta que sea necesariamente ese, si usas Linux y conoces algo de los guiones shell puedes hacerlo de forma muy sencilla

Mira esta página donde vienen varias ideas, en una sola línea, para tu mismo problema
http://www.unix.com/es/shell-program...line-file.html
__________________
No hay cuerda desafinada sino músico progresivo
  #3 (permalink)  
Antiguo 27/01/2011, 19:00
Avatar de Jota_sk  
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Crear un miniscript

Lo he hecho el script. Gracias. Pero el problema es que es un archivo con muchas preguntas y debajo hay un link mi idea principal es crear un script que me genere un gran código SQL para guardar todas las preguntas y links en una base de datos.

Mi idea principal del script es el siguiente:
1º Abro archivo
2º Guardo el valor de la primera fila en una varible ($varible1)
3º Guardo el valor de la segunda fila en otra variable ($variable2)
4º Muestro en pantalla lo siguiente
Código:
INSERT INTO $tabla ("pregunta","link") VALUES ("$variable1","$variable2");
2º Guardo el valor de la tercera fila en una varible ($varible1)
3º Guardo el valor de la cuarta fila en otra variable ($variable2)
etc...

Lo que no se hacer es guardar fila por fila en variables
  #4 (permalink)  
Antiguo 27/01/2011, 19:28
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 18 años
Puntos: 14
Respuesta: Crear un miniscript

Mira el ejemplo 1. Quizás te de algunas ideas.
__________________
No hay cuerda desafinada sino músico progresivo
  #5 (permalink)  
Antiguo 27/01/2011, 19:40
 
Fecha de Ingreso: octubre-2009
Mensajes: 245
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: Crear un miniscript

Cita:
Iniciado por Jota_sk Ver Mensaje
Lo he hecho el script. Gracias. Pero el problema es que es un archivo con muchas preguntas y debajo hay un link mi idea principal es crear un script que me genere un gran código SQL para guardar todas las preguntas y links en una base de datos.

Mi idea principal del script es el siguiente:
1º Abro archivo
2º Guardo el valor de la primera fila en una varible ($varible1)
3º Guardo el valor de la segunda fila en otra variable ($variable2)
4º Muestro en pantalla lo siguiente
Código:
INSERT INTO $tabla ("pregunta","link") VALUES ("$variable1","$variable2");
2º Guardo el valor de la tercera fila en una varible ($varible1)
3º Guardo el valor de la cuarta fila en otra variable ($variable2)
etc...

Lo que no se hacer es guardar fila por fila en variables
Vas bien ya tienes los pasos ahora ve detallando mas tu algoritmo y visita el manual donde están las funciones relacionadas con el file system
__________________
Saludos.
  #6 (permalink)  
Antiguo 27/01/2011, 19:41
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Crear un miniscript

eso es facil...

recorre el archivo y usa substr...
  #7 (permalink)  
Antiguo 27/01/2011, 21:02
Avatar de Jota_sk  
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Crear un miniscript

Por ahora casi lo tengo gracias al ejemplo numero 1 de php.net. Pero solo consigo mostrar la primera fila y necesito ajuntar el valor de la primera fila y el valor de la segunda fila en una única fila


Ejemplo:

Fila 1
fila 2
fila 3
fila 4
fila 5
fila 6
etc...

y quiero que lo imprima en pantalla así
fila 1 fila 2
fila 3 fila 4
fila 5 fila 6
etc...

Eso es lo que no logro hacer

el código que tengo hasta ahora es el siguiente

Código PHP:
<?php
$lineas 
file('as.txt');

foreach (
$lineas as $num_linea => $linea) {
    echo 
"Linea #<b>{$num_linea}</b> : " htmlspecialchars($linea) . "<br />\n";
    echo 
"INSERT INTO `juego` (`tematica`,`link`,`Cala`,`Dalan`,`Jota`,`Ricardo`,`Extra`)VALUES ('$linea','prueba7','0','0','0','0','0');";
    echo 
'<br>';
}
?>
  #8 (permalink)  
Antiguo 28/01/2011, 06:34
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 18 años
Puntos: 14
Respuesta: Crear un miniscript

Si quieres leer dos líneas, puedes usar un pequeño truco de saber si la línea que lees es par o impar. Esto se calcula aplicando la división entre 2 y mirando el módulo. Creo que la operación % te devuelve el resto de la visión entera.

Código PHP:
<?php 
$lineas 
file('as.txt'); 

foreach (
$lineas as $num_linea => $linea) { 
   
// Si num_linea es par estamos leyendo las líneas pares: 0, 2, 4, 6
   
if ($num_linea 2) {
      
$primera_linea $linea;
   } else {
      
$segunda_linea $linea;
      echo 
"Linea #<b>{$num_linea}</b> : " htmlspecialchars($linea) . "<br />\n"
      echo 
'INSERT INTO `juego` ("tematica","link`,"Cala","Dalan","Jota","Ricardo","Extra") VALUES ("$primera_linea","$segunda_linea","0","0","0","0","0");'
    echo 
'<br />'
   }

?>
Fíjate que te he cambiado las comillas, porque con comillas dobles se evalúa lo que está dentro ($primera_linea y $segunda_linea). También te he puesto la etiqueta BR para que cierre en la misma línea, lo que es correcto en XHTML.

Lo he hecho a ojímetro así que seguramente le harán falta algunos retoques.
__________________
No hay cuerda desafinada sino músico progresivo
  #9 (permalink)  
Antiguo 28/01/2011, 09:24
Avatar de Jota_sk  
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Crear un miniscript

Muchísimas gracias. No se me hubiera ocurrido hacerlo de esa manera, y las cosas mas sencillas son las mas útiles. Ya estaba pensando yo en coger carácter por carácter o no se que movida. El único fallo es que la primera línea no la muestra correctamente, pero eso ya lo he solucionado.

Un saludo y gracias!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:34.