Código PHP:
<?php
require_once("Lineas.php");
require_once("fpdf.php");//LIBRERIA FPDF VERSION 1.7
require_once("fpdi.php");//LIBRERIA FPDI
class Pdf{
private $archivo;
private $ruta;
private $linea;
private $actividad;
private $subactividad;
public function __construc(){
$this->lineas = new Lineas();//CLASE PARA AGREGAR LAS LINEAS A LA BD
}
public function getCampo(){//DEVUELVE TODOS LOS CAMPOS
return $this->campo;
}
private function setCampo($campo){//ALMACENA TODOS LOS CAMPOS
$this->campo[] = $campo;
}
public function getServicio(){//DEVUELDE TODOS LOS SERVICIOS
return $this->servicio;
}
private function setServicio($servicio){//ALMACENA TODOS LOS SERVICIOS
$this->servicio[] = $servicio;
}
public function getLinea(){//DEVUELVE TODAS LAS LINEAS
return $this->linea;
}
private function setLinea($linea){//ALMACENA TODAS LAS LINEAS
$this->linea[] = $linea;
}
public function getActividad(){//DEVUELVE TODAS LAS ACTIVIDAD
return $this->actividad;
}
private function setActividad($actividad){//ALMACENA TODAS LAS ACTIVIDADES
$this->actividad[] = $actividad;
}
public function getSubActividad(){//DEVUELVE TODAS LAS SUBACTIVIDADES
return $this->subactividad;
}
private function setSubActividad($subactividad){//ALMACENA TODAS LAS SUBACTIVIDADES
$this->subactividad[] = $subactividad;
}
public function getArchivo(){//DEVUELVE TODOS LOS ARCHIVOS
return $this->archivos;
}
private function setArchivo($archivos){//ALMACENA TODOS LOS ARCHIVOS
$this->archivos[] = $archivos;
}
public function ContarHojas($archivo)//METODO QUE CUENTA LAS HOJAS DEL ARCHIVO PDF
{
$this->archivo = $archivo;
$pdf = new FPDI();
$hojas = $pdf->setSourceFile($archivo);//METODO TOMADO DE LA LIBRERIA FPDI SOLO FUNCIONA CON LOS ARCHIVOS PDF SIN OCR
return $hojas;
}
private function VersionDelPDF($archivo)//METODO QUE DEVUELVE LA VERSION DE ARCHIVO PDF
{
$this->archivo = $archivo;
$pdf = new FPDI();
$pdf->setSourceFile($archivo);//LIBRERIA FPDI
$version = $pdf->getPDFVersion();//LIBRERIA FPDI
return $version;
}
private function ConsultarExtension($archivo)//METODO QUE DEVUELVE LA EXTENSION DEL ARCHIVO AYUDA A DELIMITAR CUALES ARCHIVOS SON DE EXTENSION PDF
{
$this->archivo = $archivo;
$trozos = explode(".", $archivo);
$extension = end($trozos);
return $extension;
}
public function Listar($ruta)//METODO QUE HACE EL RECORRIDO DE TODAS LAS CARPETAS Y NOS DEVUELVE LOS NOMBRES DE CARPETAS,SUBCARPETAS Y ARCHIVOS
{
$this->ruta = $ruta;
$total = array();
if (is_dir($ruta)) {
if ($dh = opendir($ruta)) {
while (($file = readdir($dh)) !== false) {
if($file!="." && $file!=".."){
if($this->ConsultarExtension($file)=="PDF" || $this->ConsultarExtension($file)=="pdf"){
$archivo = $this->CambiarExtension($file);
$hojas = $this->ContarHojas($ruta.$archivo);
$version = $this->VersionDelPDF($ruta.$archivo);
$campo = $this->Separar($ruta, "CAMPO");
$servicio = $this->Separar($ruta, "SERVICIO");
$linea = $this->Separar($ruta, "LINEA");
$actividad = $this->Separar($ruta, "ACTIVIDAD");
$subactividad = $this->Separar($ruta, "SUBACTIVIDAD");
$this->setCampo($campo);
$this->setServicio($servicio);
$this->setLinea($linea);
$this->setActividad($actividad);
$this->setSubActividad($subactividad);
$this->setArchivo($archivo);
}
if (is_dir($ruta . $file) && $file!="." && $file!=".."){
$this->Listar($ruta . $file . "/");
}
}
}
closedir($dh);
}
}else{
echo "No es ruta valida";
}
}
private function Separar($ruta,$opcion)//METODO QUE SEPARA LA RUTA DE LAS CARPETAS RECORRIDAS DE ACUERDO A LA OPCION SELECCIONADA, CAMPO,SERVICIO,LINEA,ACTIVIDAD,SUBACTIVIDAD
{
$this->ruta = $ruta;
$this->opcion = $opcion;
$total_diagonal = count($var = explode("/",$ruta))-7;
$r = explode("/",$ruta);
switch($opcion){
case "CAMPO":
$valor = $r[$total_diagonal+1];
break;
case "SERVICIO":
$valor = $r[$total_diagonal+2];
break;
case "LINEA":
$valor = $r[$total_diagonal+3];
break;
case "ACTIVIDAD":
$valor = $r[$total_diagonal+4];
break;
case "SUBACTIVIDAD":
$valor = $r[$total_diagonal+5];
break;
}
return $valor;
}
private function CambiarExtension($archivo)//METODO QUE CAMBIA LA EXTENSION DEL ARCHIVO .PDF A .pdf YA QUE LA LIBREARIA FPDI NO ACEPTA LA EXTENSION EN MAYUSCULA
{
$this->archivo = $archivo;
$var = explode(".",$archivo);
$nombre= $var[0];
$nombre = $nombre.".pdf";
return $nombre;
}
private function ComprobarCampo($campo)//METODO QUE SIRVE PARA VALIDAR NOMBRE DE LA CARPETA CAMPO, TODAVIA ESTA EN REVISION ESTE METODO PARA PODER SER UTILIZADO
{
$this->campo = $campo;
$regEx = '/^([\w]{3})+$/';
if(preg_match($regEx, $linea)==false){
$resultado = false;
}else{
$resultado = true;
}
return $resultado;
}
private function ComprobarLinea($linea)//METODO QUE SIRVE PARA VALIDAR QUE LA LINEA SEA CORRECTA Y CONTENGA UN FORMATO ESPECIFICO
{
$this->linea = $linea;
$regEx = '/^([\w]{3}[-]{1}[\w]{3}[-]{1}[\w]{3}[-]{1}[\w]{3}[-]{1}[\w]{1}[\d]{2}[-]{1}[\w]{3}[-]{1}[\w\d]{5})+$/';
if(preg_match($regEx, $linea)==false){
$resultado = false;
}else{
$resultado = true;
}
return $resultado;
}
private function ComprobarActividad($actividad)//METODO QUE SIRVE PARA VALIDAR QUE LA ACTIVIDAD SEA CORRECTA Y CONTENGA UN FORMATO ESPECIFICO
{
$this->actividad = $actividad;
$regEx = '/^([\d]{1,2})+$/';
if(preg_match($regEx, $actividad)==false){
$resultado = false;
}else{
$resultado = true;
}
return $resultado;
}
private function ComprobarSubActividad($subactividad)//METODO QUE SIRVE PARA VALIDAR QUE LA SUBACTIVIDAD SEA CORRECTA Y CONTENGA UN FORMATO ESPECIFICO
{
$this->subactividad = $subactividad;
$regEx = '/^([\d]{3,5})+$/';
if(preg_match($regEx, $subactividad)==false){
$resultado = false;
}else{
$resultado = true;
}
return $resultado;
}
}
?>
Código PHP:
<?php
require_once("clases/Pdf.php");
require_once("clases/Lineas.php");
$ruta ="C:\LINEAS\"; //RUTA DE LA CARPETA CONTENEDORA
$pdf = new Pdf();
$lineas = new Lineas();
$pdf->Listar($ruta);
$campo = $pdf->getCampo();//DEVUELVE EN UN ARRAY LOS NOMBRES DE LA CARPETAS LOS CAMPOS
$servicio = $pdf->getServicio();//DEVUELVE EN UN ARRAY LOS NOMBRES DE LA CARPETAS LOS SERVICIOS
$linea = $pdf->getLinea();//DEVUELVE EN UN ARRAY LOS NOMBRES DE LA CARPETAS LOS LINEA
$actividad = $pdf->getActividad();//DEVUELVE EN UN ARRAY LOS NOMBRES DE LA CARPETAS LOS ACTIVIDAD
$subactividad = $pdf->getSubActividad();//DEVUELVE EN UN ARRAY LOS NOMBRES DE LA CARPETAS LOS SUBACTIVIDAD
$archivo = $pdf->getArchivo();//DEVUELVE EN UN ARRAY LOS NOMBRES DE LA CARPETAS LOS ARCHIVO
$total_campo = count($campo);//CUENTA EL NUMERO DE ELEMENTOS DEL ARRAY
$total_servicio = count($servicio);//CUENTA EL NUMERO DE ELEMENTOS DEL ARRAY
$total_linea = count($linea);//CUENTA EL NUMERO DE ELEMENTOS DEL ARRAY
$total_actividad = count($actividad);//CUENTA EL NUMERO DE ELEMENTOS DEL ARRAY
$total_subactividad = count($subactividad);//CUENTA EL NUMERO DE ELEMENTOS DEL ARRAY
$total_archivo = count($archivo);//CUENTA EL NUMERO DE ELEMENTOS DEL ARRAY
?>
Al momento de ejecutar el script el resultado es el siguiente quiero que me inserte la informacion de las carpetas y archivos en la BD, por ejemplo teniendo la siguiente ruta:
$ruta="C:\LINEAS\";
el resultado al momento de ejecutar el escript es el siguiente
CAMPO\SERVICIO\LINEA\ACTIVIDAD\SUBACTIVIDAD\ARCHIV O1.PDF
CAMPO\SERVICIO\LINEA\ACTIVIDAD\SUBACTIVIDAD\ARCHIV O2.PDF
CAMPO\SERVICIO\LINEA\ACTIVIDAD\SUBACTIVIDAD\ARCHIV O3.PDF
CAMPO\SERVICIO\LINEA\ACTIVIDAD\SUBACTIVIDAD\ARCHIV O4.PDF
lo que yo quiero es insertar los nombres de la carpeta CAMPO en la tabla campo, y asi con las demas pero no se como hacerlo, alguien podria ayudarme