c'è un pò di confusione con i ;Originalmente inviato da mgs
if ( ($sss=='') AND ($ss<>'') ) { $type = 'ss'; }
Sciao :D
c'è un pò di confusione con i ;Originalmente inviato da mgs
if ( ($sss=='') AND ($ss<>'') ) { $type = 'ss'; }
Sciao :D
ed ekkomi di nuovo qua
[code:1:e31f111069]$per = "<a href=\"./\">Home </a>";[/code:1:e31f111069]
dovrebbe essere giusto no?
io devo far "stampare" questo
[code:1:e31f111069]<a href="./">Home </a>[/code:1:e31f111069]
ma se gli scrivo
[code:1:e31f111069]$per = "<a href=\"./\">Home </a>";[/code:1:e31f111069]
lui mi mette questo:
[code:1:e31f111069]<a href=\"./\">Home </a>[/code:1:e31f111069]
perchè?
prova: $per= '<a href="./">Home </a>';
Non è assolutamente possibile. Molto probabilmente hai riportato male qui il codice.Originalmente inviato da mgs
Cioè il comportamento indesiderato che dici può dartelo solo con stringhe a apici singoli cioè:
[code:1:a5e37056d5]$per = '<a href=\"./\">Home </a>';[/code:1:a5e37056d5]
ti dà questo:
[code:1:a5e37056d5]<a href=\"./\">Home </a>[/code:1:a5e37056d5]
Per non impiccarti con il "beclesciamento" delle doppievirgolette segui il consiglio di flan qui sopra.
Attènscion plìs: Però tieni bene a mente che le stringhe con apici singoli scrivono esattamente quello che contengono, dunque niente codici escape come \n \t \" e cose simili, che altrimenti verrebbero scritte esattamente così (appunto come nell'esempietto sopra).
Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)
si avevo già risolto due minuti dopo aver poistato :°Originalmente inviato da flan
grazie comunque...
ma se per esempio dovessi linkare variabili? dovrei usare il .= ??? Come?
o così:
[code:1:a5dc85ba83]$per = '<a href="./' . "$var" . '">Home </a>';[/code:1:a5dc85ba83]
boh mo ci provo... quando mai lo imparerò sto php :eyes
:p
"sovrei" ? :o
:D
Se vuoi printare il valore di una variabile all'interno di una stringa ad apici singoli devi appunto concatenare i valori a pezzi separati di stringa, cioè così:
[code:1:62a1d901dc]$per = '<a href="./' . $var . '">Home </a>';[/code:1:62a1d901dc]
Praticamente come hai pensato tu ma senza le doppievirgolette attorno alla variabile, o meglio con le "" ti avrebbe funzionato ugualmente, ma diciamo che non ha alcun senso. :)
Insomma tecnicamente si tratta appunto di concatenare valori, dato che l'operatore in questione è il punto, il risultato è una stringa.
Per chi viene da altri linguaggi concatenare con il + sarà il tipico errore di abitudine (sai quante volte mi ha fatto perdere tempo un solo + nascosto??) :x
Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)
1)se + condizionale? ahiahiahi
2)ma perche' in 'sto caxxo di php hanno messo il . per concatenare le stringhe? non era meglio il +? mah...
3)scusa tanto, ma 'sto "./" a che cavolo ti serve dato che non fa altro che riferirsi alla directory corrente e non serve assolutamente a nulla nel 99% dei casi? :?
beh.. insieme al mio problema ti spiego a cosa serve...Originalmente inviato da dxblade
[code:1:f5e62fa85f]
$per = "<a href=./home.php>EG home </a>";
if ($pag1 == "intro") {
$per .= '> <a href=./home.php?pag1=intro>Introduzione</a>';
$title = "Home";
}
if ($pag1 == "history") {
$per .= '> <a href=./home.php?pag1=history>Storia</a>';
$title = "Storia";
}
if ($pag1 == "myworks") {
$per .= '> <a href=./home.php?pag1=myworks>I Miei Lavori</a> ';
if ($pag2 == "gfx2d") {
$per .= '> <a href=./home.php?pag1=' . "$pag1" . '&pag2=gfx2d>Grafica 2d</a> ';
}
if ($pag2 == "gfx3d") {
$per .= '> <a href=./home.php?pag1=' . "$pag1" . '&pag2=gfx3d>Grafica 3d</a>';
}
}[/code:1:f5e62fa85f]
ora il problema è che nn mi setta $title.... come mai???
Ah.. come hai visto sto cercando di fare una barra di percorso simile a quela che c'è in alto qua nel forum... mi spiego? il ./ serve per TORNARE alle home...
ora ho copiato e incollato.. ho cmq capito che per le var nn servono le "" :)
ora per sta benedetta variabile $title... ch devo usare? define? nn lo so usare :°°°°
vabbe' cmq ./ non serve manco in questo caso
infatt se fai un link a "home.htm" e a "./home.htm" e' esattamente lo stesso, perche' come ho detto "./" e' semplicemnte un riferimento alla directory corrente, che in un url relativo e' implicito...
inoltre al posto dei vari if separati ti conviene usare un if..elseif o uno switch, cosi' diminuisce il tempo di elaborazione (lo so che la differenza in questo caso e' insignificante, ma come programmatore sono sempre attento alla velocita'... :D)
ekkomi con un nuovo problema...
[code:1:5c32f0b2b0]
<?
if ($pag1 == '') { include "./text/home.php"; }
if ($pag1 != '') {
if ($pag2 == '') { include "./text/" . $pag1 . "/home.php"; }
if ($pag3 == '') { include "./text/" . $pag1 . "/" . $pag2 . ".php"; }
if ($pag4 == '') { include "./text/" . $pag1 . "/" . $pag2 . "/" . $pag3 . ".php"; } }
else { include "./text/err.php" ; }
?>[/code:1:5c32f0b2b0]
non mi prende l'else.... e non so perche'... praticamente mi serve che se non esiste il $pag1 che viene digitato venga inclusa la pagina di errore... come faccio?
io ho cmq capito percheà l'lese non me lo prende... e' perche' l'include non e' obblicgatorio vero?
solo che se metto reguire si pianta... mi han detto di usare die() ma non so come si fa... qualcuno mi aiuta????
Scusami, l' "include "./text/err.php";" quando te lo deve prendere, ora lo esegue quando pag1 è nullo, quindi, quando viene incluso anche text/home.php......Originalmente inviato da mgs
no allora... se e' nullo mi deve includere text/home.php mentre se e' pieno ma non esiste un file chiamato come lo cerca lui, praticamente se io faccio ?pag1=mgsetuttoscemo, mi deve dare text/err.php
capito???
quindi l'if pesno sia giusto (perche' non e' ne vuoto e ne' ha come valori quelli sopracitati) il problema sta nell'include che non si accorge se i file che sta prendendo ci siano o meno....
prova così allora
[code:1:160c3004ad]
if ($pag1 == '') { include "./text/home.php"; }
else {
if (is_dir("./text/".$pag1)) {
if ($pag2 == '') {
include "./text/" . $pag1 . "/home.php";
}
if ($pag3 == '') {
include "./text/" . $pag1 . "/" . $pag2 . ".php";
}
if ($pag4 == '') {
include "./text/" . $pag1 . "/" . $pag2 . "/"
. $pag3 . ".php";
}
} else { include "./text/err.php" ; }
}
?>[/code:1:160c3004ad]
Eccomi ancora:
Il mio problmea e' che si sono nel testo in varie linee (molte ma non tutte) il testo [nn:nn] dove n sta per numero da 0 a 9... e io lo devo togliere...Codice PHP:
<?php
$f = fopen('/home/enigma/stat/dp/logs/#ish', "r");
while (!feof($f)) {
$buffer = fgets($f, 9999);
$c = fread($f, filesize($f));
$d = ereg_replace("\[[0-9]{2}:[0-9]{2}\]", '', $c);
echo $d;
}
fclose($f);
/* mi da l'errore ad oltranza (visto che sta nel while):
Warning: stat failed for Resource id #1 (errno=2 - No such file or directory) in /home/enigma/public_html/stat/test.php on line 5
[...]
*/
?>
insomma anche qua... che cosa sto sbagliando?
ho eliminato fget visto che alla fine non lo usavi;Codice PHP:
<?php
$nomefile='/home/enigma/stat/dp/logs/#ish';
$f = fopen($nomefile, "r");
$c = fread($f, filesize($nomefile));
$d = ereg_replace("\[[0-9]{2}:[0-9]{2}\]", '', $c);
echo $d;
fclose($f);
[...]
*/
?>
per il ciclo while, quando utilizzi fread dell'intero file, non serve.......
l'errore era filesize,in cui va il nome del file, non il riferimento..... così dovrebbe andare..... :winkOLD:
argh avevo risolto grasie a #php @azzurra.org :P
mi ero dimenticato di postare.... ora ho un altro problemino ma non ho neanche provato a farlo... vabbe lo scrivo lo stesso... devo scrivere l'otupu in un altro file ma se il file esiste prima devo deletarlo e poi scriverci.... non so come si controlla l'esistenza ecome si deleta... per come si scrive ok.... (penso...)
scusa, perchè cancellare e ricreare lo stesso file? non basta aprirlo in riscrittura con $f = fopen($nome_file,'w'); ?
in questo modo, se il file esiste, viene aperto in scrittura e troncato a lunghezza zero.....
ti spiego direttamente cosa devo fare...
ho dei logs, ci devo fare delle statistiche ma il programma che le fa e' "schizzinoso" e non vuole il timestamp qundi con i regex li tolgo e poi roscrivo in un altro file.... io non e' che ogni volta mi devo ricordare le linee ect... faccio priama così no?
ok, quindi fai
<?php
$nomefile='/home/enigma/stat/dp/logs/#ish';
$f = fopen($nomefile, "r");
$c = fread($f, filesize($nomefile));
fclose($f);
$d = ereg_replace("\[[0-9]{2}:[0-9]{2}\]", '', $c);
echo $d;
$nomefile='/home/enigma/stat/dp/logs/#ish1';
$f = fopen($nomefile, "w");
fwrite($f, $d);
fclose($f);
[...]
*/
?>
in questo modo, se #ish1 esiste verrà riscritto eliminando il vecchio contenuto, altrimenti lo crea..... e ci scrive dentro quello che hai letto e modificato....