FBIagent
Erfahrenes Mitglied
Guten Tag,
wie im Betreff gesagt geht es um file_put_contents und file_get_contents.
Mehrere scripte haben gleichzeitig Zugriff auf eine Datei. Nun gebe ich zum
schreiben in die datei bei file_put_contents LOCK_EX bei den flags an.
Aber macht das das ganze dann auch bei file_get_contents sicher? Da gibt
es nähmlich keine flags die man angeben kann aller LOCK_EX. Das mit dem
semaphore funktioniert laut php.net nur auf Linux nicht aber auf Windows und
gab mir auch einen Fehler "undefined function".
Best wishes
FBIagent
wie im Betreff gesagt geht es um file_put_contents und file_get_contents.
Mehrere scripte haben gleichzeitig Zugriff auf eine Datei. Nun gebe ich zum
schreiben in die datei bei file_put_contents LOCK_EX bei den flags an.
Aber macht das das ganze dann auch bei file_get_contents sicher? Da gibt
es nähmlich keine flags die man angeben kann aller LOCK_EX. Das mit dem
semaphore funktioniert laut php.net nur auf Linux nicht aber auf Windows und
gab mir auch einen Fehler "undefined function".
PHP:
public function CallCache( $PhpFile, $Url ) {
// $fp = sem_get( fileinode( $PhpFile ), 1 );
// sem_acquire( $fp );
if ( file_exists( $this->_CacheDir . '/' . $PhpFile . '.html' ) === true ) {
if ( filemtime( $this->_CacheDir . '/' . $PhpFile . '.html' ) + $this->_CacheTimeout < time() ) {
$Contents = file_get_contents( $Url . '/' . $PhpFile );
file_put_contents( $this->_CacheDir . '/' . $PhpFile . '.html', $Contents, LOCK_EX );
echo $Contents;
} else {
echo file_get_contents( $this->_CacheDir . '/' . $PhpFile . '.html' );
}
} else {
$Contents = file_get_contents( $Url . '/' . $PhpFile );
file_put_contents( $this->_CacheDir . '/' . $PhpFile . '.html', $Contents, LOCK_EX );
echo $Contents;
}
// sem_release( $fp );
}
Best wishes
FBIagent