Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
<?php $database = '../../data/file.txt'; $name_field = 'names'; $phone_field = 'phone'; $email_field = 'email'; $message = ''; define('ADMIN_MAIL','admin@example.com'); $times = array( '', 'Saturday, December 6 10:00 am - 11:00 am Nordstrom: Upstairs', 'Saturday, December 6 10:00 am-11:00 am Downstairs', 'Saturday, December 6 11:00 am-12:00 noon Nordstrom: Upstairs', 'Saturday, December 6 11:00 am - 12:00 noon Downstairs', 'Saturday, December 6 12:00 noon - 1:00 pm Nordstrom: Upstairs', 'Saturday, December 6 12:00 noon - 1:00 pm Downstairs', 'Saturday, December 6 1:00 pm - 2:00 pm Nordstrom: Upstairs', 'Saturday, December 6 1:00 pm - 2:00 pm Downstairs', 'Saturday, December 6 2:00 pm - 3:00 pm Nordstrom: Upstairs', 'Saturday, December 6 2:00 pm - 3:00 pm Downstairs', 'Saturday, December 6 3:00 pm - 4:00 pm Nordstrom: Upstairs', 'Saturday, December 6 3:00 pm - 4:00 pm Downstairs', 'Sunday, December 7 10:00 am - 11:00 am Nordstrom: Upstairs', 'Sunday, December 7 10:00 am - 11:00 am Downstairs', 'Sunday, December 7 11:00 am - 12:00 noon Nordstrom: Upstairs', 'Sunday, December 7 11:00 am - 12:00 noon Downstairs', 'Sunday, December 7 12:00 noon - 1:00 pm Nordstrom: Upstairs', 'Sunday, December 7 12:00 noon - 1:00 pm Downstairs', 'Sunday, December 7 1:00 pm - 2:00 pm Nordstrom: Upstairs', 'Sunday, December 7 1:00 pm - 2:00 pm Downstairs', 'Sunday, December 7 2:00 pm - 3:00 pm Nordstrom: Upstairs', 'Sunday, December 7 2:00 pm - 3:00 pm Downstairs', 'Sunday, December 7 3:00 pm - 4:00 pm Nordstrom: Upstairs', 'Sunday, December 7 3:00 pm - 4:00 pm Nordstrom: Downstairs' ); /** * A really nice tool to clean strings or arrays. * * @param mixed $mxdInput A string or an array * @return mixed same as input, but with trim and strip_tags applied to string or all elements of array, depending on imput format * @author Walter Lee Davis */ function clean($mxdInput){ //recursive function for multidimensional arrays if(is_string($mxdInput)) return trim(strip_tags($mxdInput)); $out = array(); foreach($mxdInput as $k=>$v){ $out[$k] = clean($v); } return $out; } /** * Convenience wrapper for htmlentities, customized for UTF-8 * * @param string $string Input text * @return string, with non-browser-safe characters replaced with entities * @author Walter Lee Davis */ function h($string) { return stripslashes(htmlentities($string,ENT_COMPAT,'UTF-8')); } /** * Gracefully loads the contents of a text file and unserializes them. * * @param string $strPathToTextFile Filesystem path to the text file * @return array * @author Walter Lee Davis */ function load($strPathToTextFile){ if( !file_exists($strPathToTextFile) || !$array = unserialize(file_get_contents($strPathToTextFile)) ) $array = array(); ksort($array); return $array; } /** * Stores an array in a given text file, discarding duplicate entries * * @param array $arrData * @param string $strPathToTextFile * @return boolean * @author Walter Lee Davis */ function store($arrData, $strPathToTextFile){ $input = clean($arrData); $array = load($strPathToTextFile); foreach($input as $key => $val){ if(!empty($val)){ if(!isset($array[$key])){ $array[$key][] = $val; }elseif(is_array($array[$key]) && !in_array($val,$array[$key])){ $array[$key][] = $val; }else{ continue; } } } return file_put_contents($strPathToTextFile,serialize($array),LOCK_EX); } /** * Prints an array for debugging * * @param mixed $mxdInput * @return string (HTML) * @author Walter Lee Davis */ function pre_print($mxdInput){ print '<pre>'; print_r($mxdInput); print '</pre>'; } function notify($arrNames,$arrEmail,$arrPhone,$arrTimes){ $arrNames = clean($arrNames); $arrEmail = clean($arrEmail); $arrPhone = clean($arrPhone); $count = 0; foreach($arrNames as $key => $name){ $body = ''; if(!empty($name)){ $body = $name . "\n"; $body .= $arrEmail[$key] . "\n"; $body .= $arrPhone[$key] . "\n\n"; $body .= $arrTimes[$key] . "\n\n"; mail(ADMIN_MAIL,'New Bell-ringing registration',$body, 'From: ' . ADMIN_MAIL,'-f' . ADMIN_MAIL); $count ++; } } if($count > 0) return '<h2>Thanks!</h2>'; return ''; } //main process if(isset($_POST[$name_field])){ store($_POST[$name_field],$database); $message = notify($_POST[$name_field],$_POST[$email_field],$_POST[$phone_field],$times); } $names = load($database); //pre_print($names); $fields = range(1,24); foreach($fields as $f){ $field_name = 'names_' . $f; if(array_key_exists($f,$names)){ ${$field_name} = implode('<br />',array_map('h',$names[$f])); }else{ ${$field_name} = ''; } } ?>
This paste will be private.
From the Design Piracy series on my blog: