Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Convertire spazio in _

  1. #1

    Convertire spazio in _

    Salve a tutti,

    ho questo script
    Codice PHP:
    <? //includiamo il file caricato in txt //per comidità ho ipotizzato che il file si trovasse nella stessa directory $fileName = "http://xxxxx.xxx/canzoni.txt"; //una volta incluso andrò a leggere da quante righe è composto per creare l'elenco da cui il visitatore sceglierà il brano //stamperò a video, e creerò un collegamento href per l'invio della richiesta $fileData = @file($fileName); if ($fileData != false) { foreach($fileData as $line_num => $brano) { $song = explode(" * ", $brano); echo "<li class=\"aligned-middle\" style=\"display: list-item;\"> <a href=\"".$song[0]."/".$song[1]."\" > <img src=\"".$song[0]."/".$song[1]."/img.jpg\" class=\"img-link\" width=\"50\" height=\"50\" border=\"0\" alt=".$song[1]." title=".$song[1]."> </a> <div class=\"text\"> <a href=\"".$song[0]."/".$song[1]."\" [b]<strong class=\"ttl\"> ".$song[0]." </br> [/b] [/b] ".$song[1]." </a> </div>  \n"; } } ?>
    Praticamente il file canzoni.txt contiene un elenco di brani, ogni riga un brano, scritto così:
    Nome Autore - Nome Canzone.

    Ora vorrei implementare lo script in modo che mi sostituisca gli spazi tra il nome dell'autore e il nome della canzone con il trattino basso: _

    Avete qualche idea su come possa fare?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Codice PHP:
    //includiamo il file caricato in txt 
    //per comidità ho ipotizzato che il file si trovasse nella stessa directory 
    $fileName "http://xxxxx.xxx/canzoni.txt"
    //una volta incluso andrò a leggere da quante righe è composto per creare l'elenco da cui il visitatore sceglierà il brano 
    //stamperò a video, e creerò un collegamento href per l'invio della richiesta 
    $fileData = @file($fileName); 
    if (
    $fileData != false) { 
        foreach(
    $fileData as $line_num => $brano) { 
            
    $song explode(" * "$brano); 
            
    str_replace(" ""_"$song[0]);
            
    str_replace(" ""_"$song[1]);
            echo 
    "<li class=\"aligned-middle\" style=\"display: list-item;\"> 
                    <a href=\""
    .$song[0]."/".$song[1]."\" > 
                    <img src=\""
    .$song[0]."/".$song[1]."/img.jpg\" class=\"img-link\" width=\"50\" height=\"50\" border=\"0\" alt=".$song[1]." title=".$song[1]."> 
                    </a> 
                    <div class=\"text\"> 
                        <a href=\""
    .$song[0]."/".$song[1]."\" >
                            [b]
                                <strong class=\"ttl\"> "
    .$song[0]." [/b] </br>
                            [/b] "
    .$song[1].
                        </a> 
                    </div> 
                     \n"

        } 

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Non funziona...non mi converte i caratteri...

  4. #4
    Originariamente inviato da MrCervello
    Non funziona...non mi converte i caratteri...
    Siamo alle solite: si scrive non mi funziona senza specificare il comportamento dello script.

    Secondo me lo script che ti è stato suggerito è perfetto!
    Prova a togliere il carattere @ prima dalla funzione FILE, perché sono convinto che l'errore sia lì.
    Ad ogni modo, prova anche a togliere l'indirizzo assoluto al file TXT da leggere, mettendo quello relativo!

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

  5. #5
    codice:
    <? //includiamo il file caricato  //per comidità ho ipotizzato che il file si trovasse nella stessa directory $fileName = "../percorso/File.txt"; //una volta incluso andrò a leggere da quante righe è composto per creare l'elenco da cui il visitatore sceglierà il brano //stamperò a video, e creerò un collegamento href per l'invio della richiesta $fileData = file($fileName); if ($fileData != false) { foreach($fileData as $line_num => $brano) { $song = explode(" * ", $brano); str_replace(" ", "_", $song[0]); str_replace(" ", "_", $song[1]); echo "<li class=\"aligned-middle\" style=\"display: list-item;\"> <a href=\"".$song[0]."/".$song[1]."\" > <img src=\"".$song[0]."/".$song[1]."/img.jpg\" class=\"img-link\" width=\"50\" height=\"50\" border=\"0\" alt=".$song[1]." title=".$song[1]."> </a> <div class=\"text\"> <a href=\"".$song[0]."/".$song[1]."\" <strong class=\"ttl\"> ".$song[0]." </br>  [/b] ".$song[1]." </a> </div>  \n"; } } ?>

    Ecco il codice come lo uso ora...
    Lo spazio non viene convertito in _....
    Come mai?

  6. #6
    Devi sostituire quanto segue allo script:
    Codice PHP:
    // correggi solo questa parte
            
    $song explode(" * "$brano);  
            
    $song[1] = str_replace(" ""_"$song[1]);
    // quì lo script continua 
    Sostanzialmente, il replace non era associato ad alcuna stringa di testo.
    Ho tolto il primo replace, tanto ottieni solo il numero di lista, per cui non serve aggiungere underscore al posto degli spazi.

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

  7. #7
    Dimenticavo..... i tag di apertura e chiusura del PHP sono:
    <?php per aprire e ?> per chiudere!


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

  8. #8
    ma la stringa da sostituire è questa...
    $song[0] = str_replace(" ", "_", $song[0]);
    $song[1] = str_replace(" ", "_", $song[1]);

    Ora funziona, solo che anche nella pagina mi viene mostrato il trattino invece vorrei che solo nel link avvenisse questo...

  9. #9
    Cosa intendi per pagina e per link???
    Altra osservazione: fare qualche prova di smaneggaimento per sistemare queste piccolezze, una volta che lo script funziona ed è assodato, no????

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

  10. #10
    Allora praticamente con quella stringa lo spazio viene modificato in _.

    Il problema è che poi il testo viene stampato con i trattini invece io vorrei che solo il collegamento che c'è cliccando sul testo stampato sia con i trattini.

    Es.

    Ora appare

    Pinco_Pallino - Titolo_canzone
    link se clicco sopra: ../pinco_pallino/titolo_canzone

    Invece io Vorrei

    Pinco Pallino - Titolo Canzone
    link se clicco sopra: ../pinco_pallino/titolo_canzone

    E' più chiaro?
    Ho provato a smanettare un pochino...ma con risultati scarsi!

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.