Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Esportazione su file csv

    Ciao ragazzi, ho un listino di un fornitore, le descrizione sono fatte in questo modo

    codice:
    Cestino  con coperchio basculante (8 lt.).
    
    
    
    240x170x360 mm.
    Adesso io vorrei poter far diventare quel testo in questo modo

    codice:
    
    Cestino  con coperchio basculante (8 lt.).</p>
    
    
    
    
    
    240x170x360 mm.</p>
    Come potrei fare??

    pensavo con la funzione str_replace ma non ci sono riuscito..

    Consigli??

    Ciao e grazie

  2. #2
    Domanda: cosa c'entra con il titolo questo thread?
    Comunque, titolo a parte, la funzione da usare non è str_replace() ma preg_replace().
    Devi cioè utilizzare la potenza delle espressioni regolari.
    Qui però mi fermo, perché poi per creare una espressione regolare ad hoc si deve sapere come sono salvati (ed eventualmente dove) i dati di questo listino, come pensi di di presentare a video i risultati eccetera.
    Questo perché magari passiamo ore a mettere a punto la reg-exp quando poi alla fine si potrebbe strutturare in maniera differente il progetto.

    Mi spiego?
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    I file sono salvati su una variabile $descrizione, mi serve solo un'esempio poi mi arrangio io ad adattare il tutto

  4. #4
    Originariamente inviato da Alex90
    I file sono salvati su una variabile $descrizione, mi serve solo un'esempio poi mi arrangio io ad adattare il tutto
    Forse non mi sono spiegato.
    Originariamente inviato da Alcio74
    Qui però mi fermo, perché poi per creare una espressione regolare ad hoc si deve sapere come sono salvati (ed eventualmente dove) i dati di questo listino, come pensi di di presentare a video i risultati eccetera.
    Per farti un esempio pratico mi serve di sapere diverse cose (tipo il carattere di separazione tra le varie righe).
    Per capirci: la variabile $descrizione come la recuperi, come la popoli di valori?
    Magari se è una lista di righe di testo, separate da uno o più a-capo, al posto di scervellarti a creare una espressione regolare, puoi tagliare i tempi semplicemente con un explode() per il carattere di a-capo usato.
    Mi spiego???

    Il modo in cui è stato strutturato l'intero programma è importante da conoscere... perché nella programmazione non c'è mai un metodo assolutamente migliore di un altro per eseguire una routine: ma semplicemente quello meno "oneroso" per tutto quel particolare momento.

    Se ti serve un esempio tanto per dare un'occhiata, nel link alla pagina della funzione nel manuale ufficiale, ci sono decine di esempi.
    Sta poi alla tua curiosità e volontà approfondire lo studio della sintassi delle espressioni regolari.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    I campi li estraggo da un file csv ma quello non è importante, sono già riuscto ad estrarre tutto, mi manca solo questa cosa, come ti ho mostrato sopra i vari testi sono separati dagli accapo, come ho scritto nel primo post

  6. #6
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    se non ho capito male tu hai nella cella B3 la descrizione e la becchi con
    codice:
       $descrizione_1 = $data->sheets[0]['cells'][3][2];
    poi puoi sostituire in modo dozzinale con una concatenazione:

    $descrizione_1 = "

    ". $descrizione_1. "</p>";

    oppure meglio:
    codice:
    $descrizione_1 = $data->sheets[0]['cells'][3][2];
    $descrizione_1_par  = "
    
    ". $descrizione_1. "</p>";
    
    $descrizione_1 = str_replace($descrizione_1, $descrizione_1_par, $descrizione_1);
    ma vedo tutto abbastanza macchinoso.
    sicuramente le voci lette nelle celle devono essere estratte tramite un ciclo e... devi sapere adattare il tutto.
    ciao

  7. #7
    Originariamente inviato da Alex90
    I campi li estraggo da un file csv ma quello non è importante, sono già riuscto ad estrarre tutto, mi manca solo questa cosa, come ti ho mostrato sopra i vari testi sono separati dagli accapo, come ho scritto nel primo post
    Beh... allora non hai letto il mio precedente post.
    Se la variabile $descrizione presenta degli a-capo, puoi usare o il metodo explode() oppure il metodo file().
    Entrambi ritornano un array di righi del file (la tua variabile $descrizione) passato in lettura.
    Non ti resta che ciclare l'array e per ogni rigo aggiungi i tag di paragrafo (di apertura e di chiusura).
    In ultimo, dovrai solamente andare a togliere il carattere di virgola (o punto e virgola) usato come separatore delle singole voci nel CSV.

    Originariamente inviato da *pragma
    sicuramente le voci lette nelle celle devono essere estratte tramite un ciclo e... devi sapere adattare il tutto.
    Magari mi sbaglio io, ma credo che per usare il metodo sheets si debbano abilitare le estensioni pear.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    Originariamente inviato da alcio74
    ..
    Magari mi sbaglio io, ma credo che per usare il metodo sheets si debbano abilitare le estensioni pear.

    Ciao, non ti sbagli.
    non solo si devo abilitare ed avere installate le estensioni PEAR (per creare un foglio elettronico), ma per leggere occore ricorrere anche a classi (che si riagganciano a PEAR).

    Poichè aveva detto che riusciva a leggere le celle, ho dato per scontato che avesse già provveduto al tutto.
    ciao

  9. #9
    Ho aggiunto intanto questo pezzo però non fà al caso mio

    $descrizione_lunga = "

    ". $descrizione_lunga. "</p>";

    Altrimenti pensavo anche di inserire al posto del carattere \n (accapo) il tag
    ma solo uno, per esempio

    Cestino con coperchio basculante (8 lt.).



    240x170x360 mm.

    Verrebbe



    Cestino con coperchio basculante (8 lt.).

    240x170x360 mm.</p>

    E' possibili limitare la sostituzione ha solo un tag?

    Ciao

  10. #10
    Da quello che leggo, non credo tu abbia ancora focalizzato il problema di base.
    Prima di fare le sostituzioni, devi andare a fare in modo di avere un insieme omogeneo di stringhe da ciclare e poi lavorarci sopra.

    Come carattere separatore dei singoli item usi quello che preferisci, ma soprattutto lo definisci in fase di creazione del CSV (anche se ancora non ho ben capito come lo crei).

    La sequenza di azioni che devi fare è la seguente:
    [list=1][*]Leggere il file CSV ed importarne il contenuto in una variabile[*]esplodere il testo del CSV per il carattere che hai impostato come separatore[*]Ciclare l'array che ottieni e lavorare sulla singola stringa[/list=1]

    Un esempio di codice potrebbe essere il seguente.
    Codice PHP:
    // vedere il punto 1, ma ci sono anche altri modi omologhi
    $descrizione file_get_contents("nome_file.csv");

    // vedere il punto 2
    $array_righi explode("\r\n"$descrizione);
    /*
     ho scritto \r\n ma non so di preciso quali siano
     i caratteri che hai usato per definire gli a-capo
    */

    $risultato "";
    // vedere il punto 3
    foreach ($array_righi AS $rigo) {
        
    $risultato .= "

    "
    $rigo"</p>";

    Spero di essere stato chiaro, così!!!
    Lo scriptino potrebbe avere degli errori: tieni conto che l'ho scritto direttamente qui!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.