summaryrefslogtreecommitdiffstats
path: root/inc/fileutil.inc.php
diff options
context:
space:
mode:
authorSimon Rettberg2014-11-18 19:48:44 +0100
committerSimon Rettberg2014-11-18 19:48:44 +0100
commit463d695c4f7ba87ba99f0ffc548ad6f994ff49d0 (patch)
tree49f7f26bf4368f0947a59d34e4f441ad8d20261c /inc/fileutil.inc.php
parentCreate slxlog URL dynamically depending on current script's directory (diff)
downloadslx-admin-463d695c4f7ba87ba99f0ffc548ad6f994ff49d0.tar.gz
slx-admin-463d695c4f7ba87ba99f0ffc548ad6f994ff49d0.tar.xz
slx-admin-463d695c4f7ba87ba99f0ffc548ad6f994ff49d0.zip
Added proxy server settings
Diffstat (limited to 'inc/fileutil.inc.php')
-rw-r--r--inc/fileutil.inc.php66
1 files changed, 66 insertions, 0 deletions
diff --git a/inc/fileutil.inc.php b/inc/fileutil.inc.php
new file mode 100644
index 00000000..f35f987e
--- /dev/null
+++ b/inc/fileutil.inc.php
@@ -0,0 +1,66 @@
+<?php
+
+class FileUtil
+{
+
+ /**
+ * Return contents of given file as string, but only read up to maxBytes bytes.
+ *
+ * @param string $file file to read
+ * @param int $maxBytes maximum length to read
+ * @return boolean|string data, false on error
+ */
+ public static function readFile($file, $maxBytes = 1000)
+ {
+ $fh = @fopen($file, 'rb');
+ if ($fh === false)
+ return false;
+ $data = fread($fh, $maxBytes);
+ fclose($fh);
+ return $data;
+ }
+
+ /**
+ * Read a file of key=value lines to assoc array.
+ *
+ * @param string $file Filename
+ * @return boolean|array assoc array, false on error
+ */
+ public static function fileToArray($file)
+ {
+ $data = self::readFile($file, 2000);
+ if ($data === false)
+ return false;
+ $data = explode("\n", str_replace("\r", "\n", $data));
+ $ret = array();
+ foreach ($data as $line) {
+ if (preg_match('/^(\w+)\s*=\s*(.*?)\s*$/', $line, $out)) {
+ $ret[$out[1]] = $out[2];
+ }
+ }
+ return $ret;
+ }
+
+ /**
+ * Write given associative array to file as key=value pairs.
+ *
+ * @param string $file Filename
+ * @param array $array Associative array to write
+ * @return boolean success of operation
+ */
+ public static function arrayToFile($file, $array)
+ {
+ $fh = fopen($file, 'wb');
+ if ($fh === false)
+ return false;
+ foreach ($array as $key => $value) {
+ if (false === fwrite($fh, $key . ' = ' . preg_replace('/[\x00-\x1F]/s', '', (string)$value) . "\n")) {
+ fclose($fh);
+ return false;
+ }
+ }
+ fclose($fh);
+ return true;
+ }
+
+} \ No newline at end of file