Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

About this user

Peter Odding http://xolox.ath.cx/

« Newer Snippets
Older Snippets »
Showing 1-3 of 3 total  RSS 

Strip slashes from user input (if applicable)

This code checks if magic quotes are enabled, and if so, strips slashes from GET, POST and COOKIE arrays. It's fully recursive, and thus supports POST arrays.

<?php

// If magic quotes are enabled, strip slashes from all user data
function stripslashes_recursive($var) {
	return (is_array($var) ? array_map('stripslashes_recursive', $var) : stripslashes($var));
}

if (get_magic_quotes_gpc()) {
	$_GET = stripslashes_recursive($_GET);
	$_POST = stripslashes_recursive($_POST);
	$_COOKIE = stripslashes_recursive($_COOKIE);
}

?>

Some file manipulation functions in PHP

Here are some file manipulation functions in PHP:

function fileToArray($file) {
	if (!$array = file($file)) {
		die("fileToArray: Could not read file!");
	}
	return $array;
}

function fileToString($file) {
	if (!$string = file_get_contents($file)) {
		die("fileToString: Could not read file!");
	}
	return $string;
}

function stringToFile($file, $string) {
	if (!$handle = fopen($file,"w")) {
		die("stringToFile: Could not open file");
	}
	if (!fwrite($handle, $string))
		die("stringToFile: Could not write file");
	}
	fclose($handle); // Should the close handle be error checked, or would I be over doing it?
}

function arrayToFile($file, $array) {
	if (!$handle = fopen($file,"w")) {
		die("arrayToFile: Could not open file");
	}
	for ($i = 0; $i < count($array); $i++) {
		if ($i == count($array) - 1) {
			if (!fputs($handle, $array[$i])) {
				die("arrayToFile: Could not write file");
			}
		} else {
			if (!fputs($handle, $array[$i]."\n")) {
				die("arrayToFile: Could not write file");
			}
		}
	}
	fclose($handle);
}

Get (recursive) directory listing in array

Updated to include drwitt's fix. Shame on me! Well, as long as I learn from my mistakes :)

Get a (recursive) directory listing in an array. Directory's are included in this list. If this behavior is not wanted, remove the two lines:

$file = $directory . "/" . $file;
$array_items[] = preg_replace("/\/\//si", "/", $file);


To get a non recursive directory listing, use it like this:

$files = directoryToArray("./", false);


And to get a recursive directory listing, use it like this:

$files = directoryToArray("./", true);


Once you have an array of files, you can iterate over the directories/files like this:

echo '<ul>';

foreach ($files as $file) {
	echo '<li>' . $file . '</li>';
}

echo '</ul>';


or like this:

echo '<ul>';

for ($i = 0; $i <= count($files); $i++) {
	echo '<li>' . $files[$i] . '</li>';
}

echo '</ul>';


Code:
function directoryToArray($directory, $recursive) {
	$array_items = array();
	if ($handle = opendir($directory)) {
		while (false !== ($file = readdir($handle))) {
			if ($file != "." && $file != "..") {
				if (is_dir($directory. "/" . $file)) {
					if($recursive) {
						$array_items = array_merge($array_items, directoryToArray($directory. "/" . $file, $recursive));
					}
					$file = $directory . "/" . $file;
					$array_items[] = preg_replace("/\/\//si", "/", $file);
				} else {
					$file = $directory . "/" . $file;
					$array_items[] = preg_replace("/\/\//si", "/", $file);
				}
			}
		}
		closedir($handle);
	}
	return $array_items;
}


Hope someone can use it!
« Newer Snippets
Older Snippets »
Showing 1-3 of 3 total  RSS