Ayuda Como Guardar csv sin repetir contenido usando php

Norlan30 Seguir

Beta
Verificación en dos pasos activada
Desde
3 Ene 2014
Mensajes
127
Busco una manera de guardar variables en un archivo csv les dejo un ejemplo de lo que e logrado:

Código PHP:
HTML:
[PHP]$enlace="http://php.net/manual/es/function.fgetcsv.php";

$Z = md5($enlace);
$A = substr($Z,0,2); //Obtenemos los primeros 2 caracteres del hash
$B = substr($Z,16,2); //Obtenemos 2 caracteres a partir del caracter 16
$C = substr($Z,30,2); //Obtenemos 2 caracteres a partir del caracter 30
$D = substr($Z,23,1); //Obtenemos 1 caractere a partir del caracter 23
$name = $A.$B.$C.$D; //Juntamos todo    

$f = fopen("demosaved.csv", "a");
fputcsv($f, array($name, $enlace));
fclose($f); [/PHP]
Explico la variable $enlace no es la misma cuando actualizo la pagina pero en ocasiones se repite y se termina por guardar aunque esta repetida .

Lo que busco es alguna manera de comparar el contenido del csv y si se encuentra repetida dentro del archivo csv no la guarde ... Gracias
 

Cicklow

Admin
Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
939
tendrias que volver a convertir el csv a variables y buscar si hay repetidas...
 

ernesplata

Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
26 Nov 2014
Mensajes
752
hay un sitio web que si le metes un texto o un archivo detecta los repetidos y los borra yo lo usé un tiempo te recomiendo buscarlo creo que era dentro de la web TextMechanic pero no estoy nada seguro

- - - Actualizado - - -

Edit lo encontré Remove Duplicate Lines ? Text Mechanic?
 

Norlan30

Beta
Verificación en dos pasos activada
Desde
3 Ene 2014
Mensajes
127
tendrias que volver a convertir el csv a variables y buscar si hay repetidas...
Hola e intentado usando esta forma

PHP:
$id = '9b4d789';

$f = fopen("demosaved.csv", "r");
$result = false;
while ($row = fgetcsv($f, 0, ",")) {
        if ($row[0] == $id) {
            $f1 = fopen("demosaved.csv", "a");
            fputcsv($f1, array($name, $enlace));
            fclose($f)
            break;
        }
    }
    fclose($f);

Que encuentra el resultado que es igual a la variable $id . pero no logro editarlo para que funcione para guardar las lineas sin repetirlas

- - - Actualizado - - -

hay un sitio web que si le metes un texto o un archivo detecta los repetidos y los borra yo lo usé un tiempo te recomiendo buscarlo creo que era dentro de la web TextMechanic pero no estoy nada seguro

- - - Actualizado - - -

Edit lo encontré Remove Duplicate Lines ? Text Mechanic?
Gracias por el dato pero busco solo usar php . no herramientas externas
 
Última edición:

Cicklow

Admin
Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
939
Hola e intentado usando esta forma

PHP:
$id = '9b4d789';

$f = fopen("demosaved.csv", "r");
$result = false;
while ($row = fgetcsv($f, 0, ",")) {
        if ($row[0] == $id) {
            $f1 = fopen("demosaved.csv", "a");
            fputcsv($f1, array($name, $enlace));
            fclose($f)
            break;
        }
    }
    fclose($f);

Que encuentra el resultado que es igual a la variable $id . pero no logro editarlo para que funcione para guardar las lineas sin repetirlas

- - - Actualizado - - -


Gracias por el dato pero busco solo usar php . no herramientas externas

tienes que leer todo el archivo, pasarlo a variables php, recorrerlas, sacar los duplicados y guardar de nuevo
 

Norlan30

Beta
Verificación en dos pasos activada
Desde
3 Ene 2014
Mensajes
127
tienes que leer todo el archivo, pasarlo a variables php, recorrerlas, sacar los duplicados y guardar de nuevo

Bien encontré una solución simple Gracias por el dato.

PHP:
$enlace="http://php.net/manual/es/function.fgetcsv.php";

$Z = md5($enlace);
$A = substr($Z,0,2); //Obtenemos los primeros 2 caracteres del hash
$B = substr($Z,16,2); //Obtenemos 2 caracteres a partir del caracter 16
$C = substr($Z,30,2); //Obtenemos 2 caracteres a partir del caracter 30
$D = substr($Z,23,1); //Obtenemos 1 caractere a partir del caracter 23
$name = $A.$B.$C.$D; //Juntamos todo    

$RN = $name.",".$enlace;

$pagina = file_get_contents('demosaved.csv');
$pos = strpos($pagina, $RN);

// Nótese el uso de ===. Puesto que == simple no funcionará como se espera
if ($pos === false) {
    echo "La cadena '$RN' no fue encontrada en la cadena dada <br/>";
$f = fopen("demosaved.csv", "a");
fputcsv($f, array($name, $enlace));
fclose($f);
} else {
    echo "La cadena '$RN' fue encontrada en la cadena dada";
    echo " y existe en la posición $pos";
}
 
Última edición:

Juan Puente

Gamma
SEO
Verificación en dos pasos desactivada
Desde
25 Ago 2017
Mensajes
346
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
a favoritos, era lo que buscaba!!
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba