Salve a tutti,
probabilmente il titolo non è molto adatto a ciò che vi chiederò ma non so come spiegarlo. Sto praticamente creando un sito web (molto simile a un blog) e quando l'autore inserisce un nuovo post, questo post viene anche generato come pagina html singola e messa in un archivio ordinato per data. I post possono avere degli allegati scaricabili. Il tutto avviene inserendo il percorso di ogni allegato nella colonna allegati del database corrispondente al post in questione.
Salvando i percorsi degli allegati e rivisualizzarli nella home (contenente tutti i post) non crea problemi ma, nel momento in cui estraggo i percorsi degli allegati dal database e li scrivo (tramite fwrite) nel file html del post che si sta creando, tali percorsi mi vengono scritti con un paio di backslash di troppo.
Vi posto il codice così da spiegarmi meglio.

codice:
[....codice precedente.....]</div></header><section id=\"content\"><article id=\"$newid\"><span class=\"date\">$data[2] $mese $data[0]</span><h3>$titolo</h3><p>$testo</p><div class=\"details\"><span class=\"attach\">Allegati: ";
            
            if(strlen($allegati) > 0) {
                $attachments = explode("\" \"", $allegati);

                for($i = 0; $i < count($attachments); $i++) {
                    $attachments[$i] = str_replace('"', '', $attachments[$i]);
                    $attachments[$i] = rtrim($attachments[$i], ' ');
                }

                for($i = 0; $i < count($attachments); $i++) {
                    $exp = explode('.', $attachments[$i]);
                    $ext = $exp[count($exp) - 1];

                    $link = "<a href=\"../../.." . $attachments[$i] . "\"><img src=\"";

                    if(!strcmp($ext, "png") || !strcmp($ext, "gif") || !strcmp($ext, "jpg") || !strcmp($ext, "jpeg") || !strcmp($ext, "bmp")) {
                        $link = $link . "../../../images/image.png\" alt=\"File Immagine\" /></a>";
                    } elseif(!strcmp($ext, "rar") || !strcmp($ext, "zip") || !strcmp($ext, "gz") || !strcmp($ext, "iso")) {
                        $link = $link . "../../../images/archive.png\" alt=\"File Archivio\" /></a>";
                    } elseif(!strcmp($ext, "pdf")) {
                        $link = $link . "../../../images/pdf.png\" alt=\"File PDF\" /></a>";
                    } elseif(!strcmp($ext, "doc") || !strcmp($ext, "docx") || !strcmp($ext, "txt") || !strcmp($ext, "ppt")) {
                        $link = $link . "../../../images/word.png\" alt=\"File Testuale\" /></a>";
                    } else {
                        $link = $link . "../../../images/file.png\" alt=\"File Generico\" /></a>";
                    }

                    $page = $page . $link;
                }
            } else 
                $page = $page . "Nessuno";
Premetto che gli allegati vengono inseriti nel database concatenando tutti i percorsi di essi, esempio: "percorso/allegato/1" "percorso/allegato/2"
e così via. Quindi ogni volta esplodo la stringa e rimuovo i doppi apici per avere dei percorsi utilizzabili.
Il problema sta nella riga evidenziata di rosso. Il link dovrebbe essere qualcosa come: ../../../percorso/file.html
ma quando apro la pagina creata in questo modo, il link è tipo: ../../../\percorso/file.html\ e giustamente non trova il file se ci clicco sopra.

Cosa sto sbagliando? Premetto che il codice che utilizzo per visualizzare i post e gli allegati è il medesimo e funziona, quindi magari è un problema con le funzioni di scrittura su file, non saprei.
Se avete idee rispondete, grazie. Per qualsiasi cosa non chiara chiedete, era un po' difficile da spiegare.

Grazie in anticipo.