Autor Zpráva
Mixsak
Profil *
Potřebuju script, který na serveru otevre soubor a vyhleda treba (xD) a nahradi to obrazkem.
mckay
Profil
Mixsak:
Potřebuju script, který na serveru otevre soubor a vyhleda treba (xD) a nahradi to obrazkem.
Teorie je takováto -> Načteš do proměnné obsah souboru, pomocí str_replace(); nahradíš xD obrázkem -> Zapíšeš do toho souboru změněný obsah.
Mixsak
Profil *
Tady je zdrový kód je to knihu náštev a nevim jak to mam napsat. Mohl bysmi poradit?

<?  
//odstraneni nebezpecnych znaku
$jmeno = HTMLSpecialChars($jmeno);
$email = HTMLSpecialChars($email);
$web = HTMLSpecialChars($web);

//formatovani prispevku
$jmeno = "<table><tr><td class=jmeno>$jmeno</td></tr>";
$email = "<tr><td class=odkaz><A HREF=mailto:$email>$email</A></td></tr>";
    if ($web!="" && $web!="http://"):
$www = "<tr><td class=odkaz><A HREF=\"$web\">$web</A></td></tr>";
    endif;
$cas = "<tr><td class=cas>" . Date("j. " . "m. " . "Y,  " . "H:i:s") . "</td></tr>";
  
$zprava = SubStr($zprava, 0, 1500);                //bereme pouze 1500 znaku 
$zprava = Trim($zprava);                        //odstraneni mezer z konce retezce
$zprava = HTMLSpecialChars($zprava);            //odstraneni nebezpecnych znaku
$zprava = Str_Replace("\n"," <BR> ", $zprava);    //nahrazeni koncu radku na tagy <BR>

$znak = 66;        //dlouha slova delit po .. znacich
$slovo = Split("[[:blank:]]+", $zprava);        //rozdeleni textu na slova
    for($y=0;$y<Count($slovo);$y++):
        $slovo[$y] = Trim($slovo[$y]);            //odstraneni mezer na konci slova
        if (Strlen($slovo[$y])<=$znak):            //nebudeme delit
            if (EregI("^(www\..+\..{2,3})$", $slovo[$y])):        //jedna se odkaz typu www......
                $odkaz = EregI_Replace("^(www\..+\..{2,3})$", "<a href=http://\\1>\\1</a> ", $slovo[$y]);
            elseif (EregI("^(http://.+\..{2,3})$;", $slovo[$y]))://jedna se odkaz typu http://.......
                $odkaz = EregI_Replace("^(http://.+\..{2,3})$;", "<a href=\\1>\\1</a> ", $slovo[$y]);
            else:
                $odkaz = $slovo[$y] . " ";                        //jedna se o normalni slovo
            endif;
            $celek .= $odkaz;                    //spojime vsechny slova opet dohromady
        else:
            $delit = Ceil(StrLen($slovo[$y])/$znak);    //delime dlouhe slovo
            for($z=0;$z<$delit;$z++):
            $cast = Substr($slovo[$y], $z*$znak, $znak);
            $celek .= $cast . " - ";                    //na konec jednotlivych casti pridame pomlcku
            endfor;
        endif;
    endfor;

      
//povolime tyto tagy <b> <u> <i>
$zprava = Str_Replace("&lt;b&gt;", "<b>", $celek);
$zprava = Str_Replace("&lt;/b&gt;", "</b>", $zprava);

$zprava = Str_Replace("&lt;i&gt;", "<i>", $zprava);
$zprava = Str_Replace("&lt;/i&gt;", "</i>", $zprava);

$zprava = Str_Replace("&lt;u&gt;", "<u>", $zprava);
$zprava = Str_Replace("&lt;/u&gt;", "</u>", $zprava);

$zprava = "<tr><td class=text><br>$zprava</td></tr></table><hr color=#000000>\n";

$write = StripSlashes($jmeno . $email . $www . $cas . $zprava);            //odstraneni escape sekvenci



if (File_Exists ("book.dat")):                                            //existuje soubor book.dat
    $fp = FOpen ("book.dat", "r");                                        //otevře soubor book.dat pro čtení
    $data = FRead ($fp, FileSize("book.dat"));                            //přečte data ze souboru a uloží do proměnné "data" - kvůli tomu aby se zobrazoval poslední příspěvek nahoře
    FClose($fp);                                                        //zavře book.dat
endif;
    $fp = FOpen ("book.dat", "w");                                        //otevře book.dat pro přepis nebo vytvoření
    FWrite ($fp, $write.$data);                                            //zápis do souboru book.dat (nejprve aktuální příspěvek, poté předešlý obsah souboru book.dat)
    FClose ($fp);                                                        //zavře soubor book.dat
?>
<html><head>
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php3">
</head></html>

Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
mckay
Profil
Mixsak:
Nehorázná prasárna, ale budiž. Příště to vkládej do , lépe se mi v tom potom orientuje.

V tomhle případě bych to nahrazoval už při odesílání zprávy:

<? 
//odstraneni nebezpecnych znaku 
$jmeno = HTMLSpecialChars($jmeno); 
$email = HTMLSpecialChars($email); 
$web = HTMLSpecialChars($web); 

//formatovani prispevku 
$jmeno = "<table><tr><td class=jmeno>$jmeno</td></tr>"; 
$email = "<tr><td class=odkaz><A HREF=mailto:$email>$email</A></td></tr>"; 
if ($web!="" && $web!="http://"): 
$www = "<tr><td class=odkaz><A HREF=\"$web\">$web</A></td></tr>"; 
endif; 
$cas = "<tr><td class=cas>" . Date("j. " . "m. " . "Y, " . "H:i:s") . "</td></tr>"; 

$zprava = SubStr($zprava, 0, 1500); //bereme pouze 1500 znaku 
$zprava = Trim($zprava); //odstraneni mezer z konce retezce 
$zprava = HTMLSpecialChars($zprava); //odstraneni nebezpecnych znaku 
$zprava = Str_Replace("\n"," <BR> ", $zprava); //nahrazeni koncu radku na tagy <BR> 

$znak = 66; //dlouha slova delit po .. znacich 
$slovo = Split("[[:blank:]]+", $zprava); //rozdeleni textu na slova 
for($y=0;$y<Count($slovo);$y++): 
$slovo[$y] = Trim($slovo[$y]); //odstraneni mezer na konci slova 
if (Strlen($slovo[$y])<=$znak): //nebudeme delit 
if (EregI("^(www\..+\..{2,3})$", $slovo[$y])): //jedna se odkaz typu www...... 
$odkaz = EregI_Replace("^(www\..+\..{2,3})$", "<a href=http://\\1>\\1</a> ", $slovo[$y]); 
elseif (EregI("^(http://.+\..{2,3})$;", $slovo[$y]))://jedna se odkaz typu http://....... 
$odkaz = EregI_Replace("^(http://.+\..{2,3})$;", "<a href=\\1>\\1</a> ", $slovo[$y]); 
else: 
$odkaz = $slovo[$y] . " "; //jedna se o normalni slovo 
endif; 
$celek .= $odkaz; //spojime vsechny slova opet dohromady 
else: 
$delit = Ceil(StrLen($slovo[$y])/$znak); //delime dlouhe slovo 
for($z=0;$z<$delit;$z++): 
$cast = Substr($slovo[$y], $z*$znak, $znak); 
$celek .= $cast . " - "; //na konec jednotlivych casti pridame pomlcku 
endfor; 
endif; 
endfor; 


//povolime tyto tagy <b> <u> <i> 
$zprava = Str_Replace("&lt;b&gt;", "<b>", $celek); 
$zprava = Str_Replace("&lt;/b&gt;", "</b>", $zprava); 

$zprava = Str_Replace("&lt;i&gt;", "<i>", $zprava); 
$zprava = Str_Replace("&lt;/i&gt;", "</i>", $zprava); 

$zprava = Str_Replace("&lt;u&gt;", "<u>", $zprava); 
$zprava = Str_Replace("&lt;/u&gt;", "</u>", $zprava); 

$zprava = "<tr><td class=text><br>$zprava</td></tr></table><hr color=#000000>\n";

$zprava = str_replace("xD", "<img src=\"http://nejakyweb/obrazek.png\" alt=\"Vytlem\" />", $zprava); 

$write = StripSlashes($jmeno . $email . $www . $cas . $zprava); //odstraneni escape sekvenci 



if (File_Exists ("book.dat")): //existuje soubor book.dat 
$fp = FOpen ("book.dat", "r"); //otevře soubor book.dat pro čtení 
$data = FRead ($fp, FileSize("book.dat")); //přečte data ze souboru a uloží do proměnné "data" - kvůli tomu aby se zobrazoval poslední příspěvek nahoře 
FClose($fp); //zavře book.dat 
endif; 
$fp = FOpen ("book.dat", "w"); //otevře book.dat pro přepis nebo vytvoření 
FWrite ($fp, $write.$data); //zápis do souboru book.dat (nejprve aktuální příspěvek, poté předešlý obsah souboru book.dat) 
FClose ($fp); //zavře soubor book.dat 
?>
Myšlenka: Co jsem to udělal? Já se mu vážně v tom kódu hrabal?
Mixsak
Profil *
Za to se omlouvám. Hlavně vám moc děkuju.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0