V programovacím jazyce PHP je file_put_contents funkce, která zapisuje data do souboru s ekvivalentem fopen (), fwrite () oproti operandům fread () a fclose (). Přijímá dva parametry jako vstup: název souboru a obsah, který má být napsán, s třetím volitelným parametrem, který definuje další charakteristiky operace. Pokud je výpočet file_put_contents v PHP úspěšně dokončen, vrátí počet bajtů zapsaných do souboru.
Algoritmus:
soubor se vytvoří, pokud neexistuje;
otevřený soubor;
soubor je uzamčen, pokud je nastaven LOCK_EX;
skript přejde na konec souboru, jinak bude obsah vyčištěn.
zapisovat data do souboru;
zapínání a odemknutí souborů.
Tento operand vrací počet znaků napsaných do souboru úspěšně nebo FALSE při selhání.
Použití funkce je velmi jednoduché. Příklad:
PHP
$ myarray [] = "Toto je první řetězec";
$ myarray [] = "Toto je druhý řádek";
$ myarray [] = "Toto je řetězec tři";
$ mystring = implode ("n", $ myarray);
$ numbytes = file_put_contents ($ jméno souboru, $ mystring);
print "$ počet bytů je napsán n";
?>
Nezapomeňte, že nejprve musíte nastavit název souboru $. Kromě toho je skript jednoduchý, má výstup "52 bajtů", což je součet tří řádků textu plus dva nové znakové řetězce používané pro pole implode (). Nový znak řádku je ve skutečnosti pouze jeden znak uvnitř souborů, zatímco PHP představuje pomocí dvou a n.
Můžete předat třetí parametr file_put_contents v PHP, abyste přidali text do druhého parametru k existujícímu textu v souboru. Pokud nepoužíváte soubor FILE_APPEND, stávající text bude vyčištěn a nahrazen, což není vždy požadované chování skriptu.
Při psaní skriptu pro poštu, které vzdáleně kontroluje náš poštovní server, mohou být potíže. Musí stahovat přílohy a zkopírovat je do adresáře na místním intranetovém webovém serveru.
Skript správně čte poštu, ale při práci s přílohami může nastat problém:
PHP Upozornění: file_put_contents: Nelze otevřít stream: povoleno v C: inetpubwwwrootquotation_testloglog_mailcheck.php na řádku 107.
Řešením je zkontrolovat direktivu open_basedir v php.ini. Musíte zjistit, zda adresář C: inetpubwwwrootquotation_testlogscans? Existuje, a v případě potřeby jej přidat.