if (!isFileReadable($FQFN)) {
// This should not happen
reportBug(__FUNCTION__, __LINE__, 'File ' . basename($FQFN) . ' is not readable!');
- } elseif (!isset($GLOBALS['file_content'][$FQFN])) {
- // Load the file
- if (function_exists('file_get_contents')) {
- // Use new function
- $GLOBALS['file_content'][$FQFN] = file_get_contents($FQFN);
- } else {
- // Fall-back to implode-file chain
- $GLOBALS['file_content'][$FQFN] = implode('', file($FQFN));
- }
} // END - if
+ // Load the file
+ if (function_exists('file_get_contents')) {
+ // Use new function
+ $fileContent = file_get_contents($FQFN);
+ } else {
+ // Fall-back to implode-file chain
+ $fileContent = implode('', file($FQFN));
+ }
+
// Return the content
- return $GLOBALS['file_content'][$FQFN];
+ return $fileContent;
}
// Writes content to a file
// Is the file writeable?
if ((isFileReadable($FQFN)) && (!is_writeable($FQFN)) && (!changeMode($FQFN, 0644))) {
// Not writeable!
- logDebugMessage(__FUNCTION__, __LINE__, sprintf("File %s not writeable.", basename($FQFN)));
+ logDebugMessage(__FUNCTION__, __LINE__, sprintf("File %s not writeable or cannot change CHMOD to 0644.", basename($FQFN)));
// Failed! :(
return FALSE;
// By default all is failed...
$GLOBALS['file_readable'][$FQFN] = FALSE;
- unset($GLOBALS['file_content'][$FQFN]);
$return = FALSE;
// Is the function there?
}
} else {
// Write it with fopen
- $fp = fopen($FQFN, 'w') or reportBug(__FUNCTION__, __LINE__, 'Cannot write to file ' . basename($FQFN) . '!');
+ $fp = fopen($FQFN, 'w')
+ or reportBug(__FUNCTION__, __LINE__, 'Cannot write to file ' . basename($FQFN) . '!');
// Aquire a lock?
if ($aquireLock === TRUE) {
if ($return !== FALSE) {
// Mark it as readable
$GLOBALS['file_readable'][$FQFN] = TRUE;
-
- // Remember content in cache
- $GLOBALS['file_content'][$FQFN] = $content;
} // END - if
// Return status
if (isset($GLOBALS[__FUNCTION__])) {
// This function is called twice
reportBug(__FUNCTION__, __LINE__, 'Double call of ' . __FUNCTION__ . ' may cause more trouble.');
- } // END - if
-
- // Trigger an error on failure
- if ((ob_get_length() > 0) && (!ob_end_clean())) {
+ } elseif ((ob_get_length() > 0) && (!ob_end_clean())) {
// Failed!
reportBug(__FUNCTION__, __LINE__, 'Failed to clean output buffer.');
} // END - if
}
// Merges an array together but only if both are arrays
-function merge_array ($array1, $array2) {
+function merge_array ($array1, $array2, $keepIndex = FALSE) {
// Are both an array?
if ((!is_array($array1)) && (!is_array($array2))) {
// Both are not arrays
reportBug(__FUNCTION__, __LINE__, sprintf("array2 is not an array. array != %s", gettype($array2)));
}
- // Merge both together
- return array_merge($array1, $array2);
+ // Maintain index of array2?
+ if ($keepIndex === TRUE) {
+ // Keep index of array2, array_merge() rewrites e.g. $key=1 to $key=0, $key=2 to $key=1 ! :(
+ foreach ($array2 as $key => $value) {
+ // Add it
+ $array1[$key] = $value;
+ } // END - foreach
+
+ // Return it
+ return $array1;
+ } else {
+ // Merge both together normally
+ return array_merge($array1, $array2);
+ }
}
// Check if given FQFN is a readable file
}
// "Getter" for the real remote IP number
-function detectRealIpAddress () {
+function detectRealIpAddress ($alwaysReal = FALSE) {
// Get remote ip from environment
$remoteAddr = determineRealRemoteAddress();
// Is removeip installed?
- if (isExtensionActive('removeip')) {
+ if ((isExtensionActive('removeip')) && ($alwaysReal === FALSE)) {
// Then anonymize it
$remoteAddr = getAnonymousRemoteAddress($remoteAddr);
} // END - if
}
// "Getter" for remote IP number
-function detectRemoteAddr () {
+function detectRemoteAddr ($alwaysReal = FALSE) {
// Get remote ip from environment
$remoteAddr = determineRealRemoteAddress(TRUE);
// Is removeip installed?
- if (isExtensionActive('removeip')) {
+ if ((isExtensionActive('removeip')) && ($alwaysReal === FALSE)) {
// Then anonymize it
$remoteAddr = getAnonymousRemoteAddress($remoteAddr);
} // END - if
}
// "Getter" for remote hostname
-function detectRemoteHostname () {
+function detectRemoteHostname ($alwaysReal = FALSE) {
// Get remote ip from environment
$remoteHost = getenv('REMOTE_HOST');
// Is removeip installed?
- if (isExtensionActive('removeip')) {
+ if ((isExtensionActive('removeip')) && ($alwaysReal === FALSE)) {
// Then anonymize it
$remoteHost = getAnonymousRemoteHost($remoteHost);
} // END - if
}
// "Getter" for referer
-function detectReferer () {
+function detectReferer ($alwaysReal = FALSE) {
// Get remote ip from environment
$referer = getenv('HTTP_REFERER');
// Is removeip installed?
- if (isExtensionActive('removeip')) {
+ if ((isExtensionActive('removeip')) && ($alwaysReal === TRUE)) {
// Then anonymize it
$referer = getAnonymousReferer($referer);
} // END - if
} // END - if
// Return cached value
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, __FUNCTION__ . '()=' . $GLOBALS[__FUNCTION__]);
return $GLOBALS[__FUNCTION__];
}
} // END - if
// Return cached value
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, __FUNCTION__ . '()=' . $GLOBALS[__FUNCTION__]);
return $GLOBALS[__FUNCTION__];
}
} // END - if
// Return cached value
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, __FUNCTION__ . '()=' . $GLOBALS[__FUNCTION__]);
return $GLOBALS[__FUNCTION__];
}
} // END - if
// Return cached value
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, __FUNCTION__ . '()=' . $GLOBALS[__FUNCTION__]);
return $GLOBALS[__FUNCTION__];
}
// Read and convert given entry
$postValue = convertCommaToDot(postRequestElement($postEntry));
+ // Log message
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'postEntry=' . $postEntry . ',postValue=' . $postValue);
+
// ... and set it again
setPostRequestElement($postEntry, $postValue);
}
* Searches a multi-dimensional array (as used in many places) for given
* key/value pair as taken from user comments from PHP documentation website.
*
- * @param $array An array with one or more dimensions
- * @param $key Key to look for
- * @param $valur Value to look for
- * @return $results Resulted array or empty array if $array is no array
+ * @param $array An array with one or more dimensions
+ * @param $key Key to look for
+ * @param $value Value to look for
+ * @param $parentIndex Parent index (ONLY INTERNAL USE!)
+ * @return $results Resulted array or empty array if $array is no array
* @author sunelbe<at>gmail<dot>com
* @link http://de.php.net/manual/en/function.array-search.php#110120
*/
-function search_array ($array, $key, $value) {
+function search_array ($array, $key, $value, $parentIndex = NULL) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'array(' . count($array) . ')=' . print_r($array, TRUE) . ',key=' . $key . ',value=' . $value . ',parentIndex[' . gettype($parentIndex) . '=' . $parentIndex . ' - ENTERED!');
// Init array result
$results = array();
// Is $array really an array?
if (is_array($array)) {
- // Does key and value match?
- if (isset($array[$key]) && $array[$key] == $value) {
- // Then add it as result
- $results[] = $array;
- } // END - if
-
// Search for whole array
- foreach ($array as $subArray) {
- // Search recursive and merge again
- $results = merge_array($results, search_array($subArray, $key, $value));
+ foreach ($array as $idx => $dummy) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',value=' . $value . ',idx=' . $idx);
+ // Is dummy an array?
+ if (is_array($dummy)) {
+ // Then search again
+ $subResult = search_array($dummy, $key, $value, $idx);
+ //* DEBUG: */ print 'subResult=<pre>' . print_r($subResult, TRUE).'</pre>';
+
+ // And merge both
+ $results = merge_array($results, $subResult, TRUE);
+ } elseif ((isset($array[$key])) && ($array[$key] == $value)) {
+ // Is found, so add it
+ $results[$parentIndex] = $array;
+ }
} // END - foreach
} // END - if
// Return resulting array
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'results(' . count($results) . ')=' . print_r($results, TRUE) . ' - EXIT!');
return $results;
}