W języku programowania PHP file_put_contents jest funkcją, która zapisuje dane do pliku z odpowiednikiem fopen (), fwrite (), naprzeciwko argumentów operacji () i fclose (). Przyjmuje dwa parametry jako dane wejściowe: nazwę pliku i treść do zapisania, z trzecim opcjonalnym parametrem definiującym dodatkowe cechy operacji. Jeśli obliczenie file_put_contents w PHP zostanie pomyślnie zakończone, zwróci liczbę bajtów zapisanych w pliku.
Algorytm:
plik jest tworzony, jeśli nie istnieje;
otwarty plik;
plik jest zablokowany, jeśli ustawiono LOCK_EX;
skrypt przechodzi do końca pliku, w przeciwnym razie zawartość zostanie wyczyszczona.
zapisz dane do pliku;
zamykanie i odblokowywanie plików.
Ten argument zwraca liczbę znaków zapisanych do pliku po pomyślnym zakończeniu lub FALSE w przypadku niepowodzenia.
Aby korzystać z tej funkcjonalności jest bardzo prosta. Przykład:
PHP
$ myarray [] = "To jest pierwszy ciąg znaków";
$ myarray [] = "To jest druga linia";
$ myarray [] = "To jest ciąg trzy";
$ mystring = implode ("n", $ myarray);
$ numbytes = file_put_contents ($ filename, $ mystring);
print "bajty $ numbytes są zapisane n";
?>
Pamiętaj, że najpierw musisz ustawić nazwę pliku $. Ponadto skrypt jest prosty, powinien wypisać "52 bajty", co jest sumą trzech wierszy tekstu i dwóch nowych znaków ciągów używanych w tablicy implode (). Nowy znak linii jest właściwie tylko jednym znakiem wewnątrz plików, podczas gdy PHP reprezentuje go za pomocą dwóch i n.
Możesz przekazać trzeci parametr file_put_contents w PHP, aby dodać tekst do drugiego parametru do istniejącego tekstu w pliku. Jeśli nie użyjesz opcji FILE_APPEND, istniejący tekst zostanie wyczyszczony i zastąpiony, co nie zawsze jest pożądanym zachowaniem skryptu.
Mogą występować trudności podczas pisania skryptu dla poczty, który zdalnie sprawdza nasz serwer pocztowy. Musi pobrać załączniki i skopiować je do katalogu na lokalnym serwerze intranetowym.
Skrypt poprawnie odczytuje pocztę, ale podczas pracy z załącznikami może pojawić się problem:
Ostrzeżenie PHP: file_put_contents: Nie można otworzyć strumienia: dozwolone w C: inetpubwwwrootquotation_testloglog_mailcheck.php na linii 107.
Rozwiązaniem jest sprawdzenie dyrektywy open_basedir w php.ini. Musisz się dowiedzieć, czy istnieje katalog C: inetpubwwwrootquotation_testlogscans ?, i dodać go, jeśli to konieczne.