Update Directory
← Return
View Demo
This demo copies a real-world application that I used to update a neighborhood directory. There are no 'city', 'state' or 'zip' fields because all the listings are from the same neighborhood. This may seem old fashioned, but surprisingly, the printed directory is very popular.
The previous directory spreadsheet was converted into a flat file database folder labeled 'old-directory'. When a listing was updated or confirmed, a new record was created and stored in the 'new-directory' folder.
After the cutoff date, the new-directory folder was used to create an html document showing an alphabetical section and a street-order section. The document was then converted to a pdf for printing.
As usual, the code was organized into the following folders. The 'admin' pages were used to track the progress of the updates and to generate the final document.

Update Directory Code
Download
<?php
session_start();
$adminloggedin = false;
include ("inc/check-if-logged-in.php");
include ("inc/database-definitions.php");
include ("inc/functions.php");
//include ("inc/functions-no-write.php");
$listing = getFromQueryString ('listing');
$streetnumber = getFromQueryString ('streetnumber');
$streetname = getFromQueryString ('streetname');
$pageid = getFromQueryString ('page');
if (!$pageid) {
$pageid = 'home';
}
include ("inc/header.php");
include ('pages/' . $pageid . '.php');
include ("inc/footer.php");
?>
<?php
session_start();
include ("inc/database-definitions.php");
include ("inc/functions.php");
//include ("inc/functions-no-write.php");
date_default_timezone_set( "America/New_York");
$adminloggedin = false;
include ('inc/check-if-logged-in.php');
if ($adminloggedin === true) {
$adminpage = getFromQueryString ('adminpage');
if (!$adminpage){
$adminpage = 'dashboard';
}
$pageid = $adminpage;
include ("inc/header.php");
if (file_exists ("admin-pages/". $adminpage . ".php") ){
include ("admin-pages/" . $adminpage . ".php");
}
else {
echo "This page does not exist<br><br>";
}
include ("inc/footer.php");
}
?>DIR-UPDATE/pages
<?php
echo "<a href = 'index.php?page=directory-listings-all&streetname=" . $streetname . "&streetnumber=" . $streetnumber ."'>← Return to Listings</a>";
if ($_SERVER ["REQUEST_METHOD"] == "POST" ) {
$error = false;
include ('inc/validate-directory-form.php');
if ($error === false) {
$directoryrecord = assignPostValuestoRecord($_POST, $directoryrecordkeys);
//CREATE A FILE NAME FOR THIS LISTING
if ($directoryrecord['company1']) {
$name = ($directoryrecord['company1']);
$name = str_replace (' ', '', $name);
$name = strtolower ($name);
$name = preg_replace('/[^A-Za-z0-9-]/', '', $name);
$number = intval ($streetnumber);
$number = str_pad ($number, 5, 0, STR_PAD_LEFT);
$directoryaddress = $streetname . "-" . $number;
$destination = $directoryaddress . '-'. $name . '---C1.txt';
writeDatabaseRecord ($directoryrecord, 'data/new-directory/' . $destination);
if ($directoryrecord['company2']) {
if ($directoryrecord['firstname1'] && $directoryrecord['lastname']) {
$name = ($directoryrecord['lastname'] . $directoryrecord['firstname1']);
$name = str_replace (' ', '', $name);
$name = strtolower ($name);
$destination = $directoryaddress . '-'. $name . '---C2.txt';
writeDatabaseRecord ($directoryrecord, 'data/new-directory/' . $destination);
echo "<h2>New listing has been added</h2> ";
saveToLog ('Directory Company Added:' . $destination );
include ('inc/edit-company-form.php');
}
else {
echo "<div class = 'error'>Missing First or Last Name</div>";
}
}
}
}
}
else {
?>
<form method = 'post' action = 'index.php?page=add-company&streetname=<?php echo $streetname?>&streetnumber=<?php echo $streetnumber ; ?>'>
<h3><?php echo $streetnumber . ' '. $streetname;?> </h3>
<input type = 'hidden' name = 'streetname' value = '<?php echo $streetname;?>'/>
<input type = 'hidden' name = 'streetnumber' value = '<?php echo $streetnumber?>'/>
<label for = 'company1'>Company Name</label>
<input id = 'company1' type = 'text' name = 'company1' /><br><br>
<label for = 'company2'>Company Name to listed after Resident Name</label>
<input id = 'company2' type = 'text' name = 'company2' /><br><br>
<label for = 'lastname'>Last name</label>
<input id = 'lastname' type = 'text' name = 'lastname' /><br><br>
<label for = 'firstname1'>Firstname 1</label>
<input id = 'firstname1' type = 'text' name = 'firstname1' ><br><br>
<h5><i>Phone format: '123-456-7890'</i></h5>
<label for = 'cell1'>Cell Phone 1:</label>
<input id = 'cell1' type = 'tel' name = 'cell1' placeholder="123-456-7890" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" /><br> <br>
<label for = 'home-phone'>Home Phone:</label>
<input id = 'home-phone' type = 'tel' name = 'homephone' placeholder="123-456-7890" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" /> <br><br>
<br><input class = 'submitbutton' type='submit' name = 'submit-add-company' value = 'Submit' /><br><br>
</form>
<?php
}
?>
<?php
echo "<a href = 'index.php?page=directory-listings-all&streetname=" . $streetname . "&streetnumber=" . $streetnumber ."'>← Return to Listings</a>";
if ($_SERVER ["REQUEST_METHOD"] == "POST" ) {
$error = false;
include ('inc/validate-directory-form.php');
if ($error === false) {
$directoryrecord = assignPostValuesToRecord ( $_POST, $directoryrecordkeys);
$directoryrecord['streetname'] = ucwords (str_replace ('-', ' ', $directoryrecord['streetname']));
//CREATE A FILE NAME FOR THIS LISTING
$name = $directoryrecord['lastname'] . $directoryrecord['firstname1'];
$name = str_replace (' ', '', $name);
$name = strtolower ($name);
$number = intval ($streetnumber);
$number = str_pad ($number, 5, 0, STR_PAD_LEFT);
$directoryaddress = $streetname . "-" . $number;
//Save new listing in new-directory folder
$destination = $directoryaddress . '-'. $name . '---R.txt';
writeDatabaseRecord ($directoryrecord, 'data/new-directory/' . $destination);
echo "<h2>New listing has been added</h2> ";
saveToLog ('Directory Resident Added:' . $destination );
include ('inc/edit-resident-form.php');
}
}
else {
?>
<br><br>
<form method = 'post' action = 'index.php?page=add-resident&streetname=<?php echo $streetname?>&streetnumber=<?php echo $streetnumber ; ?>'>
<h3><?php echo $streetnumber . ' '. $streetname;?> </h3>
<input type = 'hidden' name = 'streetname' value = '<?php echo $streetname;?>'/>
<input type = 'hidden' name = 'streetnumber' value = '<?php echo $streetnumber?>'/>
<i>The directory will 'Lastname, Firstname1 & Firstname2'.<br>If the last names are the same, only a single entry is needed </i><br><br>
<label for = 'lastname'>Last name</label>
<input id = 'lastname' type = 'text' name = 'lastname' /><br><br>
<label for = 'firstname1'>Firstname 1</label>
<input id = 'firstname1' type = 'text' name = 'firstname1' ><br><br>
<label for = 'firstname2'>First Name 2 (may include separate last name): </label>
<input id = 'firstname2' type = 'text' name = 'firstname2' /><br><br>
<h5><i>Phone format: '123-456-7890'</i></h5>
<label for = 'cell1'>Cell Phone 1: </label>
<input id = 'cell1' type = 'tel' name = 'cell1' placeholder="123-456-7890" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" /><br> <br>
<label for = 'cell2'>Cell Phone 2:</label>
<input id = 'cell2' type = 'tel' name = 'cell2' placeholder="123-456-7890" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" /><br> <br>
<label for = 'home-phone'>Home Phone:</label>
<input id = 'home-phone' type = 'tel' name = 'homephone' placeholder="123-456-7890" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" /> <br><br>
<br><input class = 'submitbutton' type='submit' name = 'submit-add-resident' value = 'Submit' /><br><br>
</form>
<?php
}
?>
<?php
$oldfilename = 'data/old-directory/' . $listing;
$newfilename = 'data/new-directory/' . $listing;
if (file_exists ($oldfilename)) {
//Add listing to 2026 directory
copy ($oldfilename, $newfilename);
echo "<h3>Listing has been added to 2026 Directory</h3> ";
saveToLog ('Directory Confirm:' . $listing );
}
include ('pages/directory-listings-all.php');
?><h2>Listings for Address</h2>
<?php
if ($_SERVER ["REQUEST_METHOD"] == "POST" ) {
$streetname = $streetnumber = '';
if (isset ($_POST['streetname'])) {
$streetname = $_POST['streetname'];
}
if (isset ($_POST['streetnumber'])) {
$streetnumber = $_POST['streetnumber'];
}
}
if ($streetname && $streetnumber ){
$number = intval ($streetnumber);
$number = str_pad ($number, 5, 0, STR_PAD_LEFT);
$directoryaddress = $streetname . "-" . $number;
$displaystreet = str_replace ('-', ' ', $streetname);
$displaystreet = ucwords ($displaystreet);
// echo "<a class = 'directory-selection2' href = 'directory' >← Return </a>";
echo "<h3 style = 'color: darkgreen;'>" . $streetnumber . " " . $displaystreet . "</h3>";
echo "<div class = 'half-column'>";
echo "<h3>Previous Directory</h3>";
include ('inc/directory-listings-old.php');
echo "<br><a class = 'directory-selection' href = 'index.php?page=add-resident&streetnumber=" . $streetnumber . "&streetname=" . $streetname . "'>Add Resident</a>";
echo "<a class = 'directory-selection' href = 'index.php?page=add-company&streetnumber=" . $streetnumber . "&streetname=" . $streetname . "'>Add Company</a>";
echo "</div><div class = 'half-column'>";
echo "<h3>New Directory </h3>";
include ('inc/directory-listings-new.php');
echo "</div>";
}
else {
echo "<div class = 'error'>Missing street name or street number</div>";
}
?>
<?php
echo "<a href = 'index.php?page=directory-listings-all&streetname=" . $streetname . "&streetnumber=" . $streetnumber ."'>← Return to Listings</a>";
if ($_SERVER ["REQUEST_METHOD"] == "POST" ) {
$error = false;
include ('inc/validate-directory-form.php');
if ($error === false) {
$directoryrecord = assignPostValuesToRecord ($_POST, $directoryrecordkeys);
writeDatabaseRecord ($directoryrecord, 'data/new-directory/' . $listing);
echo "<h2>Listing has been updated</h2> ";
saveToLog ('Directory Edit New:' . $listing);
}
}
//sHOW EDITING FORM
$directoryrecord = readDatabaseRecord($directoryrecordkeys, 'data/new-directory/' . $listing);
if (strpos ($listing, '---R')) {
include ('inc/edit-resident-form.php');
}
else if (strpos ($listing, '---C1') || strpos ($listing, '---C2')) {
include ('inc/edit-company-form.php');
}
?>
<?php
echo "<a href = 'index.php?page=directory-listings-all&streetname=" . $streetname . "&streetnumber=" . $streetnumber ."'>← Return to Listings</a>";
$directoryrecord = readDatabaseRecord($directoryrecordkeys, 'data/old-directory/' . $listing);
if ($_SERVER ["REQUEST_METHOD"] == "POST" ) {
$error = false;
include ('inc/validate-directory-form.php');
if ($error === false) {
$directoryrecord = assignPostValuesToRecord ($_POST, $directoryrecordkeys);
writeDatabaseRecord ($directoryrecord, 'data/new-directory/' . $listing);
echo "<h2>Listing has been updated</h2> ";
saveToLog ('Directory Edit Old:' . $listing );
}
}
echo "<form method = 'post' action = 'index.php?page=edit-old-listing&listing=" . $listing . "'>";
if (strpos ($listing, '---R')) {
include ('inc/edit-resident-form.php');
}
else if (strpos ($listing, '---C1') || strpos ($listing, '---C2')) {
include ('inc/edit-company-form.php');
}
echo "<input class = 'submitbutton' type='submit' name = 'submit-edit-old' value = 'submit' /><br><br> ";
echo "</form>";
?>
<div class = 'box'>
<h3>Select an address to be included in the new directory</h3>
<form class = 'full' method = 'post' action = 'index.php?page=directory-listings-all'>
<h3>
<label for = 'streetnumber'>Enter Street Number: </label><br>
<input style = 'width: 100px;' id = 'streetnumber' type = 'num' name = 'streetnumber'/></h3><br>
<h3><label>Select Street: </label></h3>
<?php
// SCAN LIST OF STREETS AND OUTPUT LINKS FOR EACH STREET
$array1 = scandir ('data/streets');
$streetarray = array();
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$street = str_replace ('.txt', '', $item1);
// array_push ($streetarray, $streetid);
$displaystreet = ucwords(str_replace("-", " " , $street)) ;
echo "<div class = 'column-1'>";
echo "<input id = '" . $street . "' type = 'radio' name = 'streetname' value = '" . $street . "' /> ";
echo "<label for = '" . $street . "' ><b>" . $displaystreet . "</b></label><br>";
$string = file_get_contents ('data/streets/' . $street . '.txt');
$array = explode (',', $string);
echo "Street Numbers: " ;
foreach ($array as $item) {
echo ltrim ($item, '0') . ", ";
}
echo "<br>";
echo "</div>";
}
}
?>
<br><br>
<input class = 'submitbutton' type = 'submit' name = 'submit-address' value = 'Submit'>
</form>
</div>
<?php
$pageid = 'login';
if ($_SERVER ["REQUEST_METHOD"] === "POST" ) {
// Checks if the user is trying to log in
if (isset($_POST['username'])) {
if (isset($_POST['password'])) {
if (trim($_POST['username']) === $username && trim($_POST['password']) === $password) {
$_SESSION['admin'] = $username;
$adminloggedin = true;
echo "<h2><a href = 'index.php'>You are now logged in - view as Admin</a></h2>";
}
}
}
}
if (!$adminloggedin) {
?>
<h2>Log In</h2>
<h3>Please enter your username and password</h3>
<form method="post" action="index.php?page=login">
<label for = 'username' >Username: </label></b><br>
<input id = 'username' type="text" name="username" value = '<?php echo $username; ?> ' /><br><br>
<label for = password' >Password: </label><br>
<input id = 'password' type="password" name="password" value = '<?php echo $password; ?>' /><br><br><br>
<input class = 'submitbutton' type="submit" value = "Enter" name = 'submit'>
</form>
<?php } ?>
<?php
session_unset();
session_destroy();
echo "<div class = 'centered'>You are now logged out</div> ";
?>
<?php
//echo "<a href = 'index.php?page=directory-listings-all&streetname=" . $streetname . "&streetnumber=" . $streetnumber ."'>← Return to Listings</a>";
$oldfilename = 'data/new-directory/' . $listing;
$newfilename = 'data/new-directory-deletes/' . $listing;
if (file_exists ($oldfilename)) {
//remove listing from directory folder to directory-deletes folder
rename ($oldfilename, $newfilename);
}
echo "<h3>Listing has been removed</h3> ";
saveToLog ('Directory - listing removed: ' . $listing );
include ('pages/directory-listings-all.php');
?>
DIR-UPDATE/inc
<?php
$username = trim (file_get_contents ('data/username.txt'));
$password = trim (file_get_contents ('data/password.txt'));
if (isset($_SESSION['admin'])) {
if ($_SESSION['admin'] === $username) {
$adminloggedin = true;
}
}
?><?php
//delimiters for records
$dl1 = "%%%";
$dl2 = "%#%";
$directoryrecordkeys = array ('streetnumber', 'streetname', 'company1', 'company2','lastname', 'firstname1', 'firstname2', 'homephone', 'cell1', 'cell2', 'email', 'quantity');
$paypalrecordkeys = array ('date', 'time','streetnumber', 'streetname', 'from-email-address', 'transaction-id', 'item-title', 'shipping-address', 'name', 'address-line-1', 'town/city', 'state', 'zip');
$userrecordkeys = array ("username", "password", "level");
$settingsrecordkeys = array ("url" , "settingsoptions", "style" , "title" ,"description" , "logo", "sendtoemail", "menu" , "commentsperpage", "options", "headertitle" , 'headeremail', "icon", "postsperpage", "header", "default-image-folder", "footer" , 'headerauthor', 'controlpaneloptions', 'resourceoptions', 'webmail-host', 'webmail-password', 'twitter-handle', 'forwarding-email');
?><?php
$array2 = glob ('data/new-directory/' . $directoryaddress . "*.txt");
//FORM TO SELECT LISTINGS AT THIS ADDRESS FOR EDIT OR REMOVAL
foreach ($array2 as $file) {
$listing = str_replace ('data/new-directory/', '', $file);
echo "<div class = 'directory-box'>";
$directoryrecord = readDatabaseRecord($directoryrecordkeys, $file);
if (strpos ($listing, '---R')){
echo $directoryrecord['lastname'] . ", " . $directoryrecord['firstname1'] . " " . $directoryrecord['cell1'] ;
if ($directoryrecord['firstname2']) {
echo " & " . $directoryrecord['firstname2'] . " " . $directoryrecord['cell2'];
}
}
else if (strpos ($listing, '---C1')) {
echo $directoryrecord['company1'] . ", " . $directoryrecord['lastname'];
if ($directoryrecord['firstname1']) {
echo ", " . $directoryrecord['firstname1'] ;
}
echo " " . $directoryrecord['cell1'] ;
}
else if (strpos ($listing, '---C2')) {
echo $directoryrecord['lastname'] ;
if ($directoryrecord['firstname1']) {
echo ", " . $directoryrecord['firstname1'] ;
}
echo ", " . $directoryrecord['company2'] . " " . $directoryrecord['cell1'];
}
if ($directoryrecord['homephone']) {
echo " Home Phone: " . $directoryrecord['homephone'] ;
}
if ($adminloggedin) {
echo " Orders: " . $directoryrecord['quantity'] . " " . $directoryrecord['email'];
}
echo "<br><a class = 'directory-selection' href = 'index.php?page=edit-new-listing&streetname=" . $streetname . "&streetnumber=" . $streetnumber . "&listing=" . $listing . "'>Edit</a>";
echo "<a class = 'directory-selection' href = 'index.php?page=remove-new-listing&streetname=" . $streetname . "&streetnumber=" . $streetnumber . "&listing=" . $listing . "'>Remove</a>";
echo "</div>";
}
?><?php
//Show all listings in old directory
$array1 = glob ('data/old-directory/' . $directoryaddress . "*.txt");
foreach ($array1 as $file) {
echo "<div class = 'directory-box'>";
$directoryrecord = readDatabaseRecord($directoryrecordkeys, $file);
if (strpos ($file, '---R')){
echo $directoryrecord['lastname'] . ", " . $directoryrecord['firstname1'] . " " . $directoryrecord['cell1'] ;
if ($directoryrecord['firstname2']) {
echo " & " . $directoryrecord['firstname2'] . " " . $directoryrecord['cell2'];
}
}
else if (strpos ($file, '---C1')) {
echo $directoryrecord['company1'] . ", " . $directoryrecord['lastname'];
if ($directoryrecord['firstname1']) {
echo ", " . $directoryrecord['firstname1'] ;
}
echo " " . $directoryrecord['cell1'] ;
}
else if (strpos ($file, '---C2')) {
echo $directoryrecord['lastname'] ;
if ($directoryrecord['firstname1']) {
echo ", " . $directoryrecord['firstname1'] ;
}
echo ", " . $directoryrecord['company2'] . " " . $directoryrecord['cell1'];
}
if ($directoryrecord['homephone']) {
echo " Home Phone: " . $directoryrecord['homephone'] ;
}
$newfile = str_replace ('old-directory', 'new-directory', $file);
$listing = str_replace ('data/old-directory/', '', $file);
if (! file_exists ($newfile)) {
echo "<br><a class = 'directory-selection' href = 'index.php?page=edit-old-listing&streetname=" . $streetname . "&streetnumber=" . $streetnumber . "&listing=" . $listing . "'>Update</a>";
echo "<a class = 'directory-selection' href = 'index.php?page=confirm-old-listing&streetname=" . $streetname . "&streetnumber=" . $streetnumber . "&listing=" . $listing . "'>Confirm</a>";
}
echo "</div>";
}
?>
<?php
echo '<h3>' . $directoryrecord['streetnumber'] . ' '. $directoryrecord['streetname']. "</h3>";
echo "<form method = 'post' action = 'index.php?page=edit-new-listing&streetnumber=" . $streetnumber . "&streetname=" . $streetname . "&listing=" . $listing . "'>";
?>
<div class = 'full-column-left'>
<form method = 'post' action = 'index.php?page=edit-company&streetname=<?php echo $streetname?>&streetnumber=<?php echo $streetnumber ; ?>'>
<b>Street Name: </b><?php echo $directoryrecord['streetname'] ;?><br>
<b>Streetnumber: </b><?php echo $directoryrecord['streetnumber']; ?><br>
<b>Firstname1: </b><?php echo $directoryrecord['firstname1']; ?><br>
<b>Lastname: </b><?php echo $directoryrecord['lastname']; ?><br>
<b>Company name: </b><?php echo $directoryrecord['company1']; ?><br>
<b>Company name listed after resident name: </b><?php echo $directoryrecord['company1']; ?><br>
<input type = 'hidden' name = 'streetname' value = '<?php echo $directoryrecord['streetname'] ;?>'/>
<input type = 'hidden' name = 'streetnumber' value = '<?php echo $directoryrecord['streetnumber'] ;?>'/>
<input type = 'hidden' name = 'firstname1' value = '<?php echo $directoryrecord['firstname1'] ;?>'/>
<input type = 'hidden' name = 'lastname' value = '<?php echo $directoryrecord['lastname'] ;?>'/>
<input type = 'hidden' name = 'company1' value = '<?php echo $directoryrecord['company1'] ;?>'/>
<input type = 'hidden' name = 'company2' value = '<?php echo $directoryrecord['company2'] ;?>'/>
<input type = 'hidden' name = 'listing' value = '<?php echo $listing ;?>'/>
<label for = 'cell1'>Cell Phone 1:</label>
<input id = 'cell1' type = 'tel' name = 'cell1' value = '<?php echo $directoryrecord['cell1']; ?>' placeholder="123-456-7890" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" /><br> <br>
<label for = 'home-phone'>Home Phone:</label>
<input id = 'home-phone' type = 'tel' name = 'homephone' value = '<?php echo $directoryrecord['homephone']; ?>' placeholder="123-456-7890" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" /> <br><br>
<?php
if ($adminloggedin ) {
?>
<label for= 'email'>Email</label>
<input id = 'email' type = 'email' name = 'email' value = '<?php echo $directoryrecord['email']; ?>' /> <br><br>
<label for= 'quantity'>Quantity</label>
<input id = 'quantity' type = 'num' name = 'quantity' value = '<?php echo $directoryrecord['quantity']; ?>' /> <br><br>
<?php
}
echo "<input class = 'submitbutton' type='submit' name = 'submit-edit-new' value = 'submit' /><br><br> ";
echo "</form>";
?>
</div> <?php
echo '<h3>' . $streetnumber. ' '. $streetname. "</h3>";
echo "<form method = 'post' action = 'index.php?page=edit-new-listing&streetnumber=" . $streetnumber . "&streetname=" . $streetname . "&listing=" . $listing . "'>";
?>
<div class = 'full-column-left'>
<label>Lastname: </label><?php echo $directoryrecord['lastname']; ?><br>
<label>Firstname 1: </label><?php echo $directoryrecord['firstname1']; ?><br>
<input type = 'hidden' name = 'streetname' value = '<?php echo $directoryrecord['streetname'] ;?>'/>
<input type = 'hidden' name = 'streetnumber' value = '<?php echo $directoryrecord['streetnumber'] ;?>'/>
<input type = 'hidden' name = 'firstname1' value = '<?php echo $directoryrecord['firstname1'] ;?>'/>
<input type = 'hidden' name = 'lastname' value = '<?php echo $directoryrecord['lastname'] ;?>'/>
<input type = 'hidden' name = 'listing' value = '<?php echo $listing ;?>'/>
<label for = 'firstname2'>First Name 2 (may include separate last name): </label>
<input id = 'firstname2' type = 'text' name = 'firstname2' value = '<?php echo $directoryrecord['firstname2']; ?>' /><br><br>
<h5><i>Phone format: '123-456-7890'</i></h5>
<label for = 'cell1'>Cell Phone 1:</label>
<input id = 'cell1' type = 'tel' name = 'cell1' value = '<?php echo $directoryrecord['cell1']; ?>' placeholder="123-456-7890" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" /><br> <br>
<label for = 'cell2'>Cell Phone 2:</label>
<input id = 'cell2' type = 'tel' name = 'cell2' value = '<?php echo $directoryrecord['cell2']; ?>' placeholder="123-456-7890" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" /><br> <br>
<label for = 'home-phone'>Home Phone:</label>
<input id = 'home-phone' type = 'tel' name = 'homephone' value = '<?php echo $directoryrecord['homephone']; ?>' placeholder="123-456-7890" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" /> <br><br>
<?php
if ($adminloggedin ) {
?>
<label for= 'email'>Email</label>
<input id = 'email' type = 'email' name = 'email' value = '<?php echo $directoryrecord['email']; ?>' /> <br><br>
<label for= 'quantity'>Quantity</label>
<input id = 'quantity' type = 'num' name = 'quantity' value = '<?php echo $directoryrecord['quantity']; ?>' /> <br><br>
<?php
}
echo "<input class = 'submitbutton' type='submit' name = 'submit-edit-new' value = 'submit' /><br><br> ";
echo "</form>";
?>
</div>
</main>
</div>
<footer>
<br><br><br>Copyright © <?php echo date('Y'); ?> Susan Rodgers, <a href = 'https://lilaavenue.com'>Lila Avenue</a><br><br>
<?php
if ($adminloggedin) {
echo "<a href = 'index.php?page=logout'>Logout</a>";
}
else {
echo "<a href = 'index.php?page=login'>Login</a>";
}
?>
</footer>
</body>
</html>
<?php
//This file contains a group of functions that are used in other applications as well
//Not all of them are used by this application
function createRecordId ($name) {
$newname = "";
if ($name !== "") {
$newname = trim ($name);
$newname = str_replace (" " , "-", $newname);
$newname = strtolower ($newname);
$newname = preg_replace('/[^A-Za-z0-9-]/', '', $newname);
$newname = preg_replace('/-+/', '-', $newname);
}
return $newname;
}
function initializeRecord ($keys){
$record = array ();
foreach ($keys as $Id => $key) {
$record[$key] = "";
}
return ($record);
}
function readDatabaseRecord ($keys, $filename) {
//Creates 'record' variable by assigning keys and values to associative array,
global $dl1;
//Initialize record
$record = array();
foreach ($keys as $Id => $key) {
$record[$key] = "";
}
if ($filename && file_exists($filename)) {
$string = file_get_contents ($filename);
$fArray1= explode ($dl1, $string);
foreach ($keys as $Id => $key) {
if (array_key_exists ($Id, $fArray1)) {
$record [$key] = $fArray1[$Id];
}
}
}
return $record;
}
function writeDatabaseRecord ($record, $filename) {
//Stores record variable as text file
global $dl1;
$String = implode ($dl1, $record);
//file_put_contents ($filename, $String);
}
function createAssocArray ($map) {
global $dl1, $dl2;
$assocarray = array();
$fArray1 = readArray ($map, $dl1);
foreach ($fArray1 as $Id => $Item1) {
$fArray2 = explode ($dl2, $Item1);
$key = $fArray2[0];
if (array_key_exists (1, $fArray2)) {
$value = $fArray2[1];
$assocarray[$key] = $value;
}
}
return $assocarray;
}
// Maps for table relationships
function addMapEntry ($map, $key1, $key2) {
global $dl1, $dl2;
$fArray1 = readArray ($map, $dl1);
$newentry = $key1 . $dl2 . $key2 . $dl2 . "\n";
array_push ($fArray1, $newentry);
$fArray1 = array_unique ($fArray1);
sort ($fArray1);
//writeArray ($map, $fArray1, $dl1);
}
function removeMapEntries ($map, $key0, $key1) {
//Remove entries containing either or both key0 and key1
global $dl1, $dl2;
$fArray1 = readArray ($map, $dl1);
foreach ($fArray1 as $Id => $Item1) {
$fArray2 = explode ($dl2, $Item1);
if (array_key_exists (0, $fArray2) && array_key_exists (1, $fArray2)) {
if ($key0 && $key1 ) {
if ( $fArray2[0] === $key0 && $fArray2[1] === $key1 ) {
unset ($fArray1 [$Id]);
}
}
else if (! $key0 && $key1 ) {
if ($fArray2[1] === $key1) {
unset ($fArray1 [$Id]);
}
}
else if ($key0 && !$key1) {
if ($fArray2[0] === $key0) {
unset ($fArray1 [$Id]);
}
}
}
}
//writeArray ($map, $fArray1, $dl1);
}
function selectMapEntries ($map, $key0, $key1) {
//for many-to-many relationships
//returns an array with selected key
global $dl1, $dl2;
$fArray1 = readArray ($map, $dl1);
$selectedarray = array();
if ($key0 && !$key1 ) {
foreach ($fArray1 as $Item1) {
$fArray2 = explode ($dl2, $Item1);
if (array_key_exists (1, $fArray2)) {
if ($fArray2[0] == $key0 ){
array_push ($selectedarray, $fArray2[1]);
}
}
}
}
else if (!$key0 && $key1) {
foreach ($fArray1 as $Item1) {
$fArray2 = explode ($dl2, $Item1);
if (array_key_exists (1, $fArray2)) {
if ($fArray2[1] === $key1) {
array_push ($selectedarray, $fArray2[0]);
}
}
}
}
return $selectedarray;
}
function selectMapKey ($map, $key0, $key1) {
//For one-to-many relationships
//returns an single value
global $dl1, $dl2;
$returnvalue = '';
$fArray1 = readArray ($map, $dl1);
foreach ($fArray1 as $Id => $Item1) {
$fArray2 = explode ($dl2, $Item1);
if ( array_key_exists (1, $fArray2)) {
if (!$key0 && $key1) {
if ($fArray2[1] === $key1) {
$returnvalue = $fArray2[0];
break;
}
}
else if ($key0 && ! $key1) {
if ($fArray2[0] === $key0){
$returnvalue = $fArray2[1];
break;
}
}
}
}
return $returnvalue;
}
function extractFromMap($map, $key) {
//returns a new array of either the the first or second columns
global $dl1, $dl2;
$selectedarray = array();
$fArray1 = readArray ($map, $dl1);
foreach ($fArray1 as $Item1) {
$fArray2 = explode ($dl2, $Item1);
if ($key == 0) {
array_push ($selectedarray, $fArray2[0]);
}
else if ($key == 1) {
if (array_key_exists (1, $fArray2)) {
array_push ($selectedarray, $fArray2[1]);
}
}
}
return $selectedarray;
}
function moveToTrash ($table, $recordid) {
$oldfilename = 'data/' . $table . '/' . $recordid . '.txt';
$newfilename = 'data/trash/' . $table . '----' . $recordid . '.txt';
if (file_exists ($oldfilename)) {
// rename ($oldfilename, $newfilename);
}
}
//ARRAYS
function readArray ($filename, $delimiter){
$fArray1 = array();
if (file_exists($filename)) {
$String = file_get_contents ($filename);
if ($String !== "") {
$fArray1 = explode ($delimiter, $String);
}
}
return $fArray1;
}
function writeArray ($filename, $array, $delimiter){
$String = implode ($delimiter, $array);
//file_put_contents ($filename, $String);
}
function addNameToArray ($filename, $name, $delimiter) {
if (file_exists($filename)) {
$String = file_get_contents ($filename);
$fArray1 = explode ($delimiter, $String);
array_push ($fArray1, $name);
$fArray1 = array_unique ($fArray1);
sort ($fArray1);
$String = implode ($delimiter, $fArray1);
$String = preg_replace('/,+/', ',', $String);
$String = ltrim ($String, $delimiter);
//file_put_contents ($filename, $String);
}
}
function removeNameFromArray ($filename, $name, $delimiter) {
if (file_exists($filename)) {
$String = file_get_contents ($filename);
$fArray = explode ($delimiter, $String);
foreach ($fArray as $Id => $Item) {
$Item = trim ($Item);
if ($Item === $name) {
unset ($fArray [$Id]);
}
}
array_values ($fArray);
sort ($fArray);
$String = implode ($delimiter, $fArray);
//file_put_contents ($filename, $String);
}
}
//Validate 'GET' value
function getFromQueryString ($label) {
$value = "";
if (isset ($_GET[$label])) {
$value = $_GET[$label];
if (specialChars($value) || strlen ($value) > 300) {
//Invalid input
$value = '';
}
}
return $value;
}
//Filter input text for record delimiters
function sanitizeFormInput($text) {
global $dl1, $dl2;
$text = trim($text);
$text = str_replace ($dl1, '', $text);
$text = str_replace ($dl2, '', $text);
return $text;
}
function showWords ($text) {
$fancytext = str_replace (',', ', ', $text);
$fancytext = ucwords (str_replace ('-', ' ', $fancytext));
return $fancytext;
}
function assignPostValuesToRecord ($postarray, $keys) {
//Assign values to record
$record = array();
foreach ($keys as $Id => $key) {
$record[$key] = "";
if (isset ($postarray[$key])) {
$record[$key] = sanitizeFormInput ($postarray[$key]);
}
}
return $record;
}
function saveToLog ($text) {
global $dl1, $dl2;
$currenttime = date ("h-i:sa");
$date = date ("Y-m-d");
$filename = 'data/log.txt';
$String = file_get_contents ($filename);
$String = $String . "\n\n " . $date . " " . $currenttime . " ". $text;
//file_put_contents ($filename, $String);
}
function formatDate ($inputdate) {
$returndate = '';
if (is_numeric (substr ($inputdate, 0,4))) {
//format yyyy/mm/dd
$month = substr ($inputdate, 5, 2);
$day = substr ($inputdate, 8,2);
$year = substr ($inputdate, 0, 4);
$returndate = $year . '-' . $month . '-' . $day;
}
else if (is_numeric (substr ($inputdate, 0, 2))) {
//Year is last mm/dd/yyyy
$month = substr ($inputdate, 0, 2);
$day = substr ($inputdate, 3,2);
$year = substr ($inputdate, 6, 4);
$returndate = $year . '-' . $month . '-' . $day;
}
else {
//default current date
$returndate = date('Y-m-d');
}
return $returndate;
}
//CHECK FOR DUPLICATE EMAILS
function checkForDuplicateEmail ($sendtoemail, $message) {
global $dl1, $dl2;
$error = false;
$emailarchive = readArray ('data/email-archive.txt', $dl1);
$emailentry = date ("Y-m-d") . $dl2 .$sendtoemail . $dl2 . $message . "\n";
if ( in_array ($emailentry, $emailarchive)) {
$error = true;
echo "<div class = 'error'>Message is a duplicate</div>";
}
else {
array_push ( $emailarchive, $emailentry);
$String = implode ($dl1, $emailarchive);
//file_put_contents ('data/email-archive.txt', $String);
}
return $error;
}
function randomString () {
$String = "";
$chars = "abcdefghijklmanopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$size = strlen($chars);
for ($i = 0; $i < 7; $i++) {
$String .= $chars[rand(0, $size - 1)];
}
return $String;
}
function specialChars($str) {
return preg_match("/[^a-zA-Z0-9-:!?*'@#$,\.\s\)\(]/", $str) > 0;
}
function notPhoneNumber($str) {
return preg_match('/[^0-9-\)\(\s]/', $str) > 0;
}
function getRecordIdsFromFolder ($folder) {
$Newarray = array();
$Array1 = scandir ($folder);
foreach ($Array1 as $Item1) {
if (substr ($Item1, 0, 1) !== '.') {
$Recordid = str_replace (".txt", "", $Item1);
$Recordid = str_replace ('.php', '', $Recordid);
$Recordid = str_replace ('.css', '', $Recordid);
$Recordid = trim ($Recordid);
array_push ($Newarray, $Recordid);
}
}
return $Newarray;
}
?>
<?php
function createRecordId ($name) {
$newname = "";
if ($name !== "") {
$newname = trim ($name);
$newname = str_replace (" " , "-", $newname);
$newname = strtolower ($newname);
$newname = preg_replace('/[^A-Za-z0-9-]/', '', $newname);
$newname = preg_replace('/-+/', '-', $newname);
}
return $newname;
}
function initializeRecord ($keys){
$record = array ();
foreach ($keys as $Id => $key) {
$record[$key] = "";
}
return ($record);
}
function readDatabaseRecord ($keys, $filename) {
//Creates 'record' variable by assigning keys and values to associative array,
global $dl1;
//Initialize record
$record = array();
foreach ($keys as $Id => $key) {
$record[$key] = "";
}
if ($filename && file_exists($filename)) {
$string = file_get_contents ($filename);
$Array1= explode ($dl1, $string);
foreach ($keys as $Id => $key) {
if (array_key_exists ($Id, $Array1)) {
$record [$key] = $Array1[$Id];
}
}
}
return $record;
}
function writeDatabaseRecord ($record, $filename) {
//Stores record variable as text file
global $dl1;
$String = implode ($dl1, $record);
file_put_contents ($filename, $String);
}
function createAssocArray ($map) {
global $dl1, $dl2;
$assocarray = array();
$Array1 = readArray ($map, $dl1);
foreach ($Array1 as $Id => $Item1) {
$Array2 = explode ($dl2, $Item1);
$key = $Array2[0];
if (array_key_exists (1, $Array2)) {
$value = $Array2[1];
$assocarray[$key] = $value;
}
}
return $assocarray;
}
// Maps for table relationships
function addMapEntry ($map, $key1, $key2) {
global $dl1, $dl2;
$Array1 = readArray ($map, $dl1);
$newentry = $key1 . $dl2 . $key2 . $dl2 . "\n";
array_push ($Array1, $newentry);
$Array1 = array_unique ($Array1);
sort ($Array1);
writeArray ($map, $Array1, $dl1);
}
function removeMapEntries ($map, $key0, $key1) {
//Remove entries containing either or both key0 and key1
global $dl1, $dl2;
$Array1 = readArray ($map, $dl1);
foreach ($Array1 as $Id => $Item1) {
$Array2 = explode ($dl2, $Item1);
if (array_key_exists (0, $Array2) && array_key_exists (1, $Array2)) {
if ($key0 && $key1 ) {
if ( $Array2[0] === $key0 && $Array2[1] === $key1 ) {
unset ($Array1 [$Id]);
}
}
else if (! $key0 && $key1 ) {
if ($Array2[1] === $key1) {
unset ($Array1 [$Id]);
}
}
else if ($key0 && !$key1) {
if ($Array2[0] === $key0) {
unset ($Array1 [$Id]);
}
}
}
}
writeArray ($map, $Array1, $dl1);
}
function selectMapEntries ($map, $key0, $key1) {
//for many-to-many relationships
//returns an array with selected key
global $dl1, $dl2;
$Array1 = readArray ($map, $dl1);
$selectedarray = array();
if ($key0 && !$key1 ) {
foreach ($Array1 as $Item1) {
$Array2 = explode ($dl2, $Item1);
if (array_key_exists (1, $Array2)) {
if ($Array2[0] == $key0 ){
array_push ($selectedarray, $Array2[1]);
}
}
}
}
else if (!$key0 && $key1) {
foreach ($Array1 as $Item1) {
$Array2 = explode ($dl2, $Item1);
if (array_key_exists (1, $Array2)) {
if ($Array2[1] === $key1) {
array_push ($selectedarray, $Array2[0]);
}
}
}
}
return $selectedarray;
}
function selectMapKey ($map, $key0, $key1) {
//For one-to-many relationships
//returns an single value
global $dl1, $dl2;
$returnvalue = '';
$Array1 = readArray ($map, $dl1);
foreach ($Array1 as $Id => $Item1) {
$Array2 = explode ($dl2, $Item1);
if ( array_key_exists (1, $Array2)) {
if (!$key0 && $key1) {
if ($Array2[1] === $key1) {
$returnvalue = $Array2[0];
break;
}
}
else if ($key0 && ! $key1) {
if ($Array2[0] === $key0){
$returnvalue = $Array2[1];
break;
}
}
}
}
return $returnvalue;
}
function extractFromMap($map, $key) {
//returns a new array of either the the first or second columns
global $dl1, $dl2;
$selectedarray = array();
$Array1 = readArray ($map, $dl1);
foreach ($Array1 as $Item1) {
$Array2 = explode ($dl2, $Item1);
if ($key == 0) {
array_push ($selectedarray, $Array2[0]);
}
else if ($key == 1) {
if (array_key_exists (1, $Array2)) {
array_push ($selectedarray, $Array2[1]);
}
}
}
return $selectedarray;
}
function moveToTrash ($table, $recordid) {
$oldfilename = 'data/' . $table . '/' . $recordid . '.txt';
$newfilename = 'data/trash/' . $table . '----' . $recordid . '.txt';
if (file_exists ($oldfilename)) {
rename ($oldfilename, $newfilename);
}
}
function restoreFromTrash ($filename) {
$oldfilename = 'data/trash/' . $filename;
if (file_exists ($oldfilename)) {
$array2 = explode ('----', $filename);
if (array_key_exists (1, $array2)) {
$filename = str_replace ('----', '', $array2[1]);
$table = $array2[0];
$newfilename = 'data/' . $table . '/' . $filename;
rename ($oldfilename, $newfilename);
}
}
}
//ARRAYS
function readArray ($filename, $delimiter){
$Array1 = array();
if (file_exists($filename)) {
$String = file_get_contents ($filename);
if ($String !== "") {
$Array1 = explode ($delimiter, $String);
}
}
return $Array1;
}
function writeArray ($filename, $array, $delimiter){
$String = implode ($delimiter, $array);
file_put_contents ($filename, $String);
}
function addNameToArray ($filename, $name, $delimiter) {
if (file_exists($filename)) {
$String = file_get_contents ($filename);
$Array1 = explode ($delimiter, $String);
array_push ($Array1, $name);
$Array1 = array_unique ($Array1);
sort ($Array1);
$String = implode ($delimiter, $Array1);
$String = preg_replace('/,+/', ',', $String);
$String = ltrim ($String, $delimiter);
file_put_contents ($filename, $String);
}
}
function removeNameFromArray ($filename, $name, $delimiter) {
if (file_exists($filename)) {
$String = file_get_contents ($filename);
$Array = explode ($delimiter, $String);
foreach ($Array as $Id => $Item) {
$Item = trim ($Item);
if ($Item === $name) {
unset ($Array [$Id]);
}
}
array_values ($Array);
sort ($Array);
$String = implode ($delimiter, $Array);
file_put_contents ($filename, $String);
}
}
//Validate 'GET' value
function getFromQueryString ($label) {
$value = "";
if (isset ($_GET[$label])) {
$value = $_GET[$label];
if (specialChars($value) || strlen ($value) > 300) {
//Invalid input
$value = '';
}
}
return $value;
}
//Filter input text for record delimiters
function sanitizeFormInput($text) {
global $dl1, $dl2;
$text = trim($text);
$text = str_replace ($dl1, '', $text);
$text = str_replace ($dl2, '', $text);
return $text;
}
function showWords ($text) {
$Ancytext = str_replace (',', ', ', $text);
$Ancytext = ucwords (str_replace ('-', ' ', $Ancytext));
return $Ancytext;
}
function assignPostValuesToRecord ($postarray, $keys) {
//Assign values to record
$record = array();
foreach ($keys as $Id => $key) {
$record[$key] = "";
if (isset ($postarray[$key])) {
if (!is_array ($postarray[$key])) {
$record[$key] = sanitizeFormInput ($postarray[$key]);
}
}
}
return $record;
}
function saveToLog ($text) {
date_default_timezone_set( "America/New_York");
global $dl1, $dl2;
$currenttime = date ("h-i:sa");
$date = date ("Y-m-d");
$filename = 'data/log.txt';
$String = file_get_contents ($filename);
$String = $String . "\n\n " . $date . " " . $currenttime . " ". $text;
file_put_contents ($filename, $String);
}
function formatDate ($inputdate) {
$returndate = '';
if (is_numeric (substr ($inputdate, 0,4))) {
//format yyyy/mm/dd
$month = substr ($inputdate, 5, 2);
$day = substr ($inputdate, 8,2);
$year = substr ($inputdate, 0, 4);
$returndate = $year . '-' . $month . '-' . $day;
}
else if (is_numeric (substr ($inputdate, 0, 2))) {
//Year is last mm/dd/yyyy
$month = substr ($inputdate, 0, 2);
$day = substr ($inputdate, 3,2);
$year = substr ($inputdate, 6, 4);
$returndate = $year . '-' . $month . '-' . $day;
}
else {
//default current date
$returndate = date('Y-m-d');
}
return $returndate;
}
//CHECK FOR DUPLICATE EMAILS
function checkForDuplicateEmail ($sendtoemail, $message) {
global $dl1, $dl2;
$error = false;
$emailarchive = readArray ('data/email-archive.txt', $dl1);
$emailentry = date ("Y-m-d") . $dl2 .$sendtoemail . $dl2 . $message . "\n";
if ( in_array ($emailentry, $emailarchive)) {
$error = true;
echo "<div class = 'error'>Message is a duplicate</div>";
}
else {
array_push ( $emailarchive, $emailentry);
$String = implode ($dl1, $emailarchive);
file_put_contents ('data/email-archive.txt', $String);
}
return $error;
}
function randomString () {
$String = "";
$chars = "abcdefghijklmanopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$size = strlen($chars);
for ($i = 0; $i < 7; $i++) {
$String .= $chars[rand(0, $size - 1)];
}
return $String;
}
function specialChars($str) {
global $dl1, $dl2;
//return preg_match("/[^a-zA-Z0-9-:!?*'@#$,\.\s\)\(]/", $str) > 0;
if (strpos ($str, "<") !== false || strpos ($str, ">") !== false | strpos ($str, $dl1) !== false | strpos ($str, $dl2) !== false ) {
return true;
}
}
function notPhoneNumber($str) {
return preg_match('/[^0-9-\)\(\s]/', $str) > 0;
}
function getRecordIdsFromFolder ($folder) {
$Newarray = array();
$Array1 = scandir ($folder);
foreach ($Array1 as $Item1) {
if (substr ($Item1, 0, 1) !== '.') {
$Recordid = str_replace (".txt", "", $Item1);
$Recordid = str_replace ('.php', '', $Recordid);
$Recordid = str_replace ('.css', '', $Recordid);
$Recordid = trim ($Recordid);
array_push ($Newarray, $Recordid);
}
}
return $Newarray;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Directory Update</title>
<link rel= 'stylesheet' type='text/css' href= 'inc/style.css'>
</head>
<body>
<div class = 'outerwrap <?php echo $pageid; ?>'>
<div class = 'headerwrap'>
<div class = 'site-title'>
<a href = 'index.php'>Climbingtree Woods </a>
</div>
<h3>Neighborhood Directory Update</h3>
<a href = '../../update-directory'>← Return</a><br>
<?php
if ($pageid !== 'home') {
echo "<a class = 'return' href = 'index.php'>← Address Selection Form</a><br>";
}
if ($adminloggedin) {
?>
<a class = 'menuitem' href = 'admin.php?adminpage=street-listings-old'>Old Listings by Street</a>
<a class = 'menuitem' href = 'admin.php?adminpage=street-listings-new'> New Listings by Street</a>
<a class = 'menuitem' href = 'admin.php?adminpage=alpha-listings-old'>Old Listings in Alphabetical Order</a>
<a class = 'menuitem' href = 'admin.php?adminpage=alpha-listings-new'>New Listings in Alphabetical Order</a>
<a class = 'menuitem' href = 'admin.php?adminpage=print-alpha-directory'>Printable Alphabetical Directory</a>
<a class = 'menuitem' href = 'admin.php?adminpage=create-spreadsheet'>Spreadsheet</a>
<a class = 'menuitem' href = 'admin.php?adminpage=print-criss-cross-directory'>Printable Criss-Cross Directory</a>
<?php
}
?>
</div>
<main>
<div class = 'box'>
<form class = 'full' method = 'post' action = 'index.php?page=home'>
<h3>
<label for = 'streetnumber'>Enter Street Number: </label><br>
<input style = 'width: 100px;' id = 'streetnumber' type = 'num' name = 'streetnumber'/></h3><br>
<h3><label>Select Street: </label></h3>
<?php
// SCAN LIST OF STREETS AND OUTPUT LINKS FOR EACH STREET
$array1 = scandir ('data/streets');
$streetarray = array();
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$street = str_replace ('.txt', '', $item1);
// array_push ($streetarray, $streetid);
$displaystreet = ucwords(str_replace("-", " " , $street)) ;
echo "<div class = 'column-1'>";
echo "<input id = '" . $street . "' type = 'radio' name = 'streetname' value = '" . $street . "' /> ";
echo "<label for = '" . $street . "' >" . $displaystreet . "</label><br>";
$string = file_get_contents ('data/streets/' . $street . '.txt');
$array = explode (',', $string);
echo "Street Numbers: " ;
foreach ($array as $item) {
echo ltrim ($item, '0') . ", ";
}
echo "<br>";
echo "</div>";
}
}
?>
<br><br>
<input class = 'submitbutton' type = 'submit' name = 'submit-address' value = 'Submit'>
</form>
</div>
@font-face {
font-family: Cinzel;
src: url('../fonts/Cinzel-Regular.ttf');
}
@font-face {
font-family: OpenSans;
src: url('../data/OpenSans-Regular.ttf');
}
body {
color: black;
font-family: 'Arial', sans-serif;
text-align: center;
font-size: .8em;
max-width: 100%;
text-align: center;
line-height: 150%;
}
a {
text-decoration: none;
color:darkmagenta;
}
a:hover {
color: purple;
}
h1 {
letter-spacing: 3px;
margin: 30px auto;
text-transform: uppercase;
text-align: center;
font-size: 40px;
}
h2 {
text-align: center;
}
h3 {
text-align: center;
}
h4 {
margin: 10px 0 4px 0;
}
.site-title a {
font-family: 'Cinzel', serif;
line-height: 150%;
font-size: 30px;
text-transform: uppercase;
text-decoration: none;
letter-spacing: 5px;
font-weight: normal;
padding: 10px;
color: black;
}
/** STANDARD PAGE SECTION STYLES */
.outerwrap {
max-width: 100%;
text-align: center;
margin: auto;
}
main {
text-align: center;
width: 1400px;
margin: auto;
}
.full-column {
margin: auto;
text-align: left;
}
.full-column-left {
width: 800px;
text-align: left;
margin: auto;
}
.half-column {
width: 50%;
max-width: 100%;
box-sizing: border-box;
display: inline-block;
vertical-align: top;
padding: 0 20px;
}
.menuitem {
display: inline-block;
margin: 10px;
padding: 0 10px;
border: 1px solid #bbb;
vertical-align: top;
box-sizing: border-box;
font-size: 14px;
background-color: #eee;
border: 1px solid #ddd;
}
.adminbutton, .submitbutton {
color: white;
margin: 5px auto;
padding: 5px 7px;
font-size: 14px;
cursor: pointer;
text-decoration: none;
background-color: #3e4871;
display: block;
border-radius: 2px;
font-style: normal;
width: 140px;
text-align: center;
}
.submitbutton {
background-color: darkmagenta;
}
.box {
background-color: #eee;
padding: 10px;
}
form {
width: 600px;
max-width: 100%;
box-sizing: border-box;
margin: auto;
text-align: left;
}
form.full{
width: 1000px;
}
.directory-return {
text-decoration: none;
color: #688068;
}
.orderbutton {
margin: 15px auto;
padding: 5px 10px;
font-size: 16px;
cursor: pointer;
text-decoration: none;
background-color: #3e4871;
background-color: #2a682a;
display: block;
border-radius: 5px;
font-style: normal;
width: 200px;
text-align: center;
}
a.orderbutton {
color: white;
}
.directory-box {
margin: 10px 0;
padding: 3px 8px;
border:1px solid #bbb;
max-width: 100%;
background-color: #eee;
}
.half-column-1, .half-column-2 {
padding: 0 20px;
text-align: left;
max-width: 100%;
}
.directory-selection, .directory-selection2 {
width: auto;
background-color: #90a290;
color: white;
display: inline-block;
box-sizing: border-box;
vertical-align: top;
max-width: 100%;
border-radius: 1px;
text-decoration: none;
margin: 10px;
padding: 0 10px;
font-size: 14px;
}
.directory-form {
width: 600px;
margin: auto;
}
.directory-selection2 {
background-color: darkgreen;
font-size: 16px;
padding: 0 12px;
}
.directory label, .directory-private label {
color: darkgreen;
}
.column-1, .column-2 {
display: inline-block;
max-width: 100%;
vertical-align: top;
box-sizing: border-box;
width: 240px;
margin: auto;
text-align: left;
color: darkgreen;
margin: 10px auto;
}
.half-column-1 h3, .half-column-2 h3 {
color: #cc6a6a;
}
input {
width: 100%;
}
input[type=checkbox], input[type=radio] {
max-width: 20px;
padding: 0;
margin: 3px;
vertical-align: middle;
}
.directory-order {
background-color: #d9ead9;
margin: auto;
width: 900px;
text-align: center;
padding: 20px;
margin-top: 80px;
}
.directory-order h2 {
font-size: 24px;
}
.streetnumber, .streetname, .company1, .company2, .lastname, .firstname1, .firstname2, .cellphone1, .cellphone2, .homephone, .email {
display: inline-block;
width: 120px;
box-sizing: border-box;
max-width: 100%;
text-align: left;
}
.streetnumber {
width: 50px;
}
.streetname, .lastname, .firstname1, .firstname2, .company1, .company2 {
width: 200px;
}
.cell1, .cell2 {
display: inline-block;
vertical-align: top;
max-width: 100%;
box-sizing: border-box;
padding: 0 5px;
}
.cell1 {
width: 120px;
}
.cell2 {
width: 200px;
}
.row {
background-color: #eee;
border-bottom: 1px solid #bbb;
margin: 5px 0;
}
a.login {
margin-top: 50px;
color: #ddd;
}
h1 {
text-align: center;
}
h2 {
text-align: center;
}
a {
text-decoration: none;
}
.headerwrap {
text-align: center;
}
main {
display: block;
max-width: 100%;
margin: auto;
}
.menuitem {
display: inline-block;
border: 1px solid #bbb;
padding: 3px 10px;
background-color: #eee;
}
.full-column {
text-align: left;
max-width: 100%;
}
.content-column, .sidebar-column, .half-column {
display: inline-block;
vertical-align: top;
box-sizing: border-box;
max-width: 100%;
text-align: left;
}
.content-column {
width: 90%;
}
.sidebar-column {
width: 10%;
}
.half-column {
width: 50%;
}
.cell1, .cell2 {
display: inline-block;
vertical-align: top;
max-width: 100%;
box-sizing: border-box;
padding: 0 5px;
}
.cell1 {
width: 100px;
}
.cell2 {
width: 160px;
}
.row {
background-color: #eee;
border-bottom: 1px solid #bbb;
margin: 5px 0;
}
.labels .cell1, .labels .cell2 {
height: 50px;
border: none;
font-style: bold;
font-size: 12px;
background-color: #bbb;
padding: 5px;
}
.row {
border-bottom: 1px solid #ddd;
padding-top: 10px;
background-color: #eee;
margin: 10px 0;
}
.directory-page {
text-align: left;
font-size: 16px;
line-height: 100%;
}
.line1, .line2, .line3 {
line-height: 100%;
box-sizing: border-box;
vertical-align: bottom;
padding-bottom: 4px;
}
.line1{
padding-top: 12px;
}
.line3 {
padding-top: 6px;
font-size: 14px;
}
@media only screen and (max-width: 1200px) {
.content-column, .sidebar-column {
width: 100%;
}
}
@media print {
.pdf-page-break {
page-break-after: always;
}
}<?php
file_put_contents ('data/address-listing-map.txt', '');
$array1 = scandir ('data/streets');
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$street = str_replace ('.txt', '', $item1);
$string = file_get_contents ('data/streets/' . $street . '.txt');
$addressarray = explode (',', $string);
sort ($addressarray);
//print_r ($addressarray);
foreach ($addressarray as $item2) {
$address = $street . '-' . $item2;
// echo "<br>" . $address;
$files = (glob('data/new-directory/' . $address . "*.txt"));
foreach ($files as $file) {
$listing = str_replace ('data/new-directory/' ,'', $file);
addMapEntry ('data/address-listing-map.txt', $address, $listing);
}
}
}
}
?><?php
file_put_contents ('data/name-listing-map.txt', '');
$array1 = scandir ('data/new-directory');
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$directoryrecordid = str_replace ('.txt', '', $item1);
$directoryrecord = readDatabaseRecord ($directoryrecordkeys, 'data/new-directory/' . $item1);
if (strpos ($directoryrecordid, '---C1')) {
addMapEntry ('data/name-listing-map.txt', $directoryrecord['company1'], $directoryrecordid);
}
else if (strpos ($directoryrecordid, '---C2')) {
addMapEntry ('data/name-listing-map.txt', $directoryrecord['lastname'], $directoryrecordid);
}
else if (strpos ($directoryrecordid, '---R') ){
addMapEntry ('data/name-listing-map.txt', $directoryrecord['lastname'], $directoryrecordid);
}
}
}<?php
$error = false;
$inputarray = array ('lastname', 'firstname1', 'company1', 'company2', 'firstname2');
foreach ($inputarray as $item) {
$validateditem = '';
if (isset ($_POST[$item]) ){
$validateditem = $_POST[$item];
if (specialChars($validateditem)) {
echo "<div class = 'error' >" . $item . " contains invalid characters.</div>";
$error = true;
}
else if (strlen ($validateditem) > 50){
echo "<div class = 'error'>Too many characters in " . $validateditem . "</div>";
$error = true;
}
}
}
$inputarray = array ('homephone', 'cell1', 'cell2');
foreach ($inputarray as $item) {
if (isset ($_POST[$item])) {
$validateditem = $_POST[$item];
if (notPhoneNumber($validateditem)) {
echo "<div class = 'error' >" . $validateditem . " contains invalid characters.</div>";
$error = true;
}
}
}
?>
DIR-UPDATE/admin-pages
<?php
$streetname = getFromQueryString ('streetname');
$streetnumber = getFromQueryString ('streetnumber');
include ('pages/directory-listings-all.php');
?><?php
echo "<h2>Alphabetical Directory Listings</h2>";
echo "<div class = 'full-column'>";
echo "<div class = 'cell2'>Address</div><div class = 'cell1'>Company 1</div><div class = 'cell1'>Company 2</div><div class = 'cell1'>Last Name</div><div class = 'cell1'>First Name 1</div><div class = 'cell1'>First Name 2</div><div class = 'cell1'>Home Phone</div><div class = 'cell1'>Cell 1</div><div class = 'cell1'>Cell 2</div><div class = 'cell1'>Quantity</div><br><br>";
$alpharray = array();
$array1 = scandir ('data/new-directory');
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$entryid = str_replace ('.txt','', $item1);
$pos1 = strpos ($entryid ,'---');
$name = substr ($entryid, 0, $pos1);
$pos2 = strripos ($name, '-');
$name = substr ($name, $pos2 + 1);
array_push ($alpharray, $name . $dl1 . $entryid);
}
}
sort ($alpharray);
foreach ($alpharray as $item1) {
$array2 = explode ($dl1, $item1);
if (array_key_exists (1, $array2)) {
$entryid = $array2[1];
$directoryrecord = readDatabaseRecord($directoryrecordkeys, 'data/new-directory/' . $entryid . '.txt');
echo "<div class = 'row'>";
echo "<div class = 'cell2'>";
echo "<a href = 'admin.php?adminpage=address-listings-page&streetnumber=" . $directoryrecord['streetnumber'] . "&streetname=" . strtolower (str_replace (' ', '-', $directoryrecord['streetname'] )). "'>";
echo $directoryrecord['streetname'] . " " . $directoryrecord['streetnumber'] . "</a></div>";
echo "<div class = 'cell1'>" . $directoryrecord['company1'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['company2'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['lastname'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['firstname1'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['firstname2'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['homephone'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['cell1'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['cell2'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['quantity'] . '</div>';
echo "<div class = 'cell2'>" . $directoryrecord['email'] . '</div><br>';
echo "</div>";
}
}
echo "</div>";
?><?php
echo "<h2>Alphabetical Directory Listings</h2>";
echo "<div class = 'cell2'>Address</div><div class = 'cell1'>Company 1</div><div class = 'cell1'>Company 2</div><div class = 'cell1'>Last Name</div><div class = 'cell1'>First Name 1</div><div class = 'cell1'>First Name 2</div><div class = 'cell1'>Home Phone</div><div class = 'cell1'>Cell 1</div><div class = 'cell1'>Cell 2</div><div class = 'cell1'>Quantity</div><br><br>";
$alpharray = array();
$array1 = scandir ('data/old-directory');
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$entryid = str_replace ('.txt','', $item1);
$pos1 = strpos ($entryid ,'---');
$name = substr ($entryid, 0, $pos1);
$pos2 = strripos ($name, '-');
$name = substr ($name, $pos2 + 1);
array_push ($alpharray, $name . $dl1 . $entryid);
}
}
sort ($alpharray);
foreach ($alpharray as $item1) {
$array2 = explode ($dl1, $item1);
if (array_key_exists (1, $array2)) {
$entryid = $array2[1];
$directoryrecord = readDatabaseRecord($directoryrecordkeys, 'data/old-directory/' . $entryid . '.txt');
echo "<div class = 'row'>";
echo "<div class = 'cell2'>";
echo "<a href = 'admin.php?adminpage=address-listings-page&streetnumber=" . $directoryrecord['streetnumber'] . "&streetname=" . strtolower (str_replace (' ', '-', $directoryrecord['streetname'] )). "'>";
echo $directoryrecord['streetname'] . " " . $directoryrecord['streetnumber'] . "</a></div>";
echo "<div class = 'cell1'>" . $directoryrecord['company1'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['company2'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['lastname'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['firstname1'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['firstname2'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['homephone'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['cell1'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['cell2'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['quantity'] . '</div>';
echo "<div class = 'cell2'>" . $directoryrecord['email'] . '</div><br>';
echo "</div>";
}
}
?><?php
echo "<h2>Create Spreadsheet of Master Directory</h2>";
$allstring = 'STREETNAME,STREETNUMBER,COMPANY1,COMPANY2,LASTNAME,FIRSTNAME1,FIRSTNAME2,HOMEPHONE,CELL1,CELL2,QUANTITY,EMAIL' . "\n";
$array1 = scandir ('data/new-directory');
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$directoryrecord = readDatabaseRecord ($directoryrecordkeys, 'data/new-directory/' . $item1);
$string = $directoryrecord ['streetname'] . "," . $directoryrecord['streetnumber'] . "," . $directoryrecord['company1'] . "," . $directoryrecord['company2'] . "," . $directoryrecord['lastname'] . "," . $directoryrecord['firstname1'] . "," . $directoryrecord['firstname2'] . "," . $directoryrecord['homephone'] . "," . $directoryrecord['cell1'] . "," . $directoryrecord['cell2'] . "," . $directoryrecord['quantity'] . "," . $directoryrecord ['email'] . "\n";
$allstring = $allstring . $string;
}
}
file_put_contents ('data/directory.csv', $allstring);
echo "<br> <a class = 'box' href = 'data/directory.csv'>Download Directory CSV</a><br>"; <?php
//marging: .3, 0, .5 , 0
$count = 0;
$char = $prevchar = '';
$linecount = 3;
include ('inc/update-name-listing-map.php');
echo "<div class = 'directory-page' >";
echo "<div class = 'pdf-page-break'></div>";
$array1 = readArray ('data/name-listing-map.txt', $dl1);
foreach ($array1 as $item1) {
$char = substr ($item1, 0, 1);
$array2 = explode ($dl2, $item1);
$name = $array2[0];
if (array_key_exists (1, $array2)) {
if ($char !== $prevchar) {
if ($linecount > 58 ) {
//Not enough room for new character heading - start new page
echo "<div class = 'pdf-page-break'></div>";
echo "</div><div class = 'directory-page'>";
//Show character heading at top of page
echo "<h4>" . ucwords ($char) . "</h4>";
$$linecount = 2;
}
else {
//Show Character within page
echo "<h4>" . ucwords ($char) . "</h4>";
$linecount = $linecount + 2;
}
}
else if ($linecount > 54) {
//Out of space - start new page
echo "<div class = 'pdf-page-break'></div>";
echo "</div><div class = 'directory-page'>";
//Show character heading at top of page
echo "<h4>" . ucwords ($char) . "</h4>";
$linecount = 2;
}
$recordid = $array2[1];
$record = readDatabaseRecord ($directoryrecordkeys, 'data/new-directory/' .$recordid . '.txt');
//Display Listings
if (strpos ($recordid, "---C1") !== false) {
//Company listing
echo "<div class = 'line1'>";
echo "<b>" . $record['company1'] . "</b> " . $record['firstname1'] . " " . $record['lastname'];
echo "</div>";
echo "<div class = 'line2'>";
echo " " . $record['streetnumber'] . ' ' . $record['streetname'];
if ($record['cell1']) {
echo " C: " . $record['cell1'];
}
if ($record['homephone']) {
echo " H: " . $record['homephone'];
}
echo "</div>";
$linecount = $linecount + 3;
}
else if (strpos ($recordid, "---C2") !== false) {
//Resident listing with company included
echo "<div class = 'line1'>";
echo $record['lastname'] . ", " . $record['firstname1'] . '<b> ' . $record['company2'] . '</b>';
echo "</div>";
echo "<div class = 'line2'>";
echo " " . $record['streetnumber'] . " " . $record['streetname'] . " " . $record['firstname1'];
if ($record['cell1']) {
echo " C: " . $record['cell1'];
}
if ($record['homephone']) {
echo " H: " . $record['homephone'];
}
echo "</div>";
$linecount = $linecount + 3;
}
else if (strpos ($recordid, "---R") !== false) {
//Resident only
echo "<div class = 'line1'>";
echo $record['lastname'] . ", " . $record['firstname1'];
if ($record['firstname2']) {
echo " & " . $record['firstname2'];
}
echo " - " . $record['streetnumber']. ' ' . $record['streetname'];
echo "</div>";
$linecount = $linecount + 2;
if ($record['cell1'] || $record['cell2']) {
echo "<div class = 'line2'>";
echo " ";
if ($record['cell1']) {
echo $record['firstname1'] . " " . $record['cell1'];
}
if ($record['cell2']) {
echo " " . $record['firstname2'] . " " . $record['cell2'];
}
if ($record['homephone']) {
echo " H: " . $record['homephone'];
}
echo "</div>";
$linecount ++;
}
}
$prevchar = $char;
}
}
echo "</div>";
echo "<div class = 'pdf-page-break'></div>";
?><?php
//Print at 100% with .5 inch margin at top and .7 inch margin at left for hole punch or staples
include ('inc/update-address-listing-map.php');
$prevstreet = '';
$linecount = 6;
echo "<div class = 'directory-page'>";
echo "<div class = 'pdf-page-break'></div><br>";
echo "<h1>Criss Cross Directory</h1>";
echo "<div class = 'half-column'>";
$pagenum = 1;
$count = 0;
$column = 1;
$array1 = scandir ('data/streets');
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$street = str_replace ('.txt', '', $item1);
$string = file_get_contents ('data/streets/' . $item1);
$addressarray = explode (',', $string);
sort ($addressarray);
//print_r ($addressarray);
foreach ($addressarray as $item2) {
//echo "<br>" . $street;
if ($street !== $prevstreet) {
if ($linecount > 70 ) {
//Not enough room for new street heading - start new column
if ($column === 1) {
echo "</div><div class = 'half-column'>";
echo "<h4>" . showWords( $street) . "</h4>";
$linecount = 3;
$column = 2;
if ($pagenum === 1) {
$linecount = $linecount + 3;
}
$pagenum ++;
}
else {
echo "</div>";
echo "<div class = 'pdf-page-break'></div>";
echo "<div class = 'half-column'>";
echo "<h4>" . showWords( $street) . "</h4>";
$column = 1;
$linecount = 3;
}
}
else {
//Show street heading within page
echo "<h4>" . showWords( $street). "</h4>";
$linecount = $linecount + 3;
}
}
else if ($linecount > 70) {
if ($column === 1) {
echo "</div><div class = 'half-column'>";
echo "<h4>" . showWords( $street) ."</h4>";
$column = 2;
$linecount = 3;
if ($pagenum === 1) {
$linecount = $linecount + 6;
}
$pagenum ++;
}
else {
echo "</div>";
echo "<div class = 'pdf-page-break'></div>";
echo "<div class = 'half-column'>";
echo "<h4>" . showWords( $street) . "</h4>";
$column = 1;
$linecount = 3;
}
}
$address = $street . '-' . $item2;
//echo "<br>" . $address;
$listings = selectMapEntries ('data/address-listing-map.txt', $address, '');
if ($listings) {
// print_r ($listings);
foreach ($listings as $listing) {
$directoryrecord = readDatabaseRecord ($directoryrecordkeys, 'data/new-directory/' . $listing);
if (strpos ($listing, '---R')) {
//Resident record
echo "<div class = 'line3'>";
echo $directoryrecord['streetnumber'];
echo " " . $directoryrecord['lastname'] ;
echo "</div>";
$linecount = $linecount + 2;
$prevstreet = $street;
}
else if (strpos ($listing, '---C1')) {
echo "<div class = 'line3'>";
echo $directoryrecord['streetnumber'];
echo " <b>" . $directoryrecord['company1'] . "</b>" ;
echo "</div>";
$linecount = $linecount + 2;
$prevstreet = $street;
}
}
}
else {
//NO Current listing
echo "<div class = 'line3'>";
echo ltrim ($item2, '0');
echo "</div>";
$linecount = $linecount + 2;
$prevstreet = $street;
}
}
}
}
echo "</div></div>";
echo "<div class = 'pdf-page-break'></div>";
?><?php
$count = 0;
echo "<h2>Master Directory by Street</h2>";
echo "<div class = 'cell2'>Address</div><div class = 'cell1'>Company 1</div><div class = 'cell1'>Company 2</div><div class = 'cell1'>Last Name</div><div class = 'cell1'>First Name 1</div><div class = 'cell1'>First Name 2</div><div class = 'cell1'>Home Phone</div><div class = 'cell1'>Cell 1</div><div class = 'cell1'>Cell 2</div><div class = 'cell1'>Quantity</div><br><br>";
$array1 = scandir ('data/new-directory');
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$id = str_replace ('.txt','', $item1);
$directoryrecord = readDatabaseRecord($directoryrecordkeys, 'data/new-directory/' . $id . '.txt');
echo "<div class = 'row'>";
echo "<div class = 'cell2'>";
echo "<a href = 'admin.php?adminpage=address-listings-page&streetnumber=" . $directoryrecord['streetnumber'] . "&streetname=" . strtolower (str_replace (' ', '-', $directoryrecord['streetname'] )). "'>";
echo $directoryrecord['streetname'] . " " . $directoryrecord['streetnumber'] . "</a></div>";
echo "<div class = 'cell1'>" . $directoryrecord['company1'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['company2'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['lastname'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['firstname1'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['firstname2'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['homephone'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['cell1'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['cell2'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['quantity'] . '</div>';
echo "<div class = 'cell2'>" . $directoryrecord['email'] . '</div><br>';
echo "</div>";
$count++;
}
}
echo "<br><br><h2>Total: " . $count . "</h2><br>";
?><?php
$count = 0;
echo "<h2>Master Directory by Street</h2>";
echo "<div class = 'cell2'>Address</div><div class = 'cell1'>Company 1</div><div class = 'cell1'>Company 2</div><div class = 'cell1'>Last Name</div><div class = 'cell1'>First Name 1</div><div class = 'cell1'>First Name 2</div><div class = 'cell1'>Home Phone</div><div class = 'cell1'>Cell 1</div><div class = 'cell1'>Cell 2</div><div class = 'cell1'>Quantity</div><br><br>";
$array1 = scandir ('data/old-directory');
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$id = str_replace ('.txt','', $item1);
$directoryrecord = readDatabaseRecord($directoryrecordkeys, 'data/old-directory/' . $id . '.txt');
echo "<div class = 'row'>";
echo "<div class = 'cell2'>";
echo "<a href = 'admin.php?adminpage=address-listings-page&streetnumber=" . $directoryrecord['streetnumber'] . "&streetname=" . strtolower (str_replace (' ', '-', $directoryrecord['streetname'] )). "'>";
echo $directoryrecord['streetname'] . " " . $directoryrecord['streetnumber'] . "</a></div>";
echo "<div class = 'cell1'>" . $directoryrecord['company1'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['company2'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['lastname'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['firstname1'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['firstname2'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['homephone'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['cell1'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['cell2'] . "</div>";
echo "<div class = 'cell1'>" . $directoryrecord['quantity'] . '</div>';
echo "<div class = 'cell2'>" . $directoryrecord['email'] . '</div><br>';
echo "</div>";
$count++;
}
}
echo "<br><br><h2>Total: " . $count . "</h2><br>";
?>DIR-UPDATE/data
cheeseburger-circle-00001%#%cheeseburger-circle-00001-dieterisley---C2.txt%#%
%%%cheeseburger-circle-00001%#%cheeseburger-circle-00001-dieterralph---R.txt%#%
%%%cheeseburger-circle-00001%#%cheeseburger-circle-00001-isleyssurveillanceservices---C1.txt%#%
%%%cheeseburger-circle-00002%#%cheeseburger-circle-00002-careercoachingforcats(cc4c)---C1.txt%#%
%%%cheeseburger-circle-00002%#%cheeseburger-circle-00002-softpawblackie---C2.txt%#%
%%%cheeseburger-circle-00002%#%cheeseburger-circle-00002-softpawblackie---R.txt%#%
%%%cheeseburger-circle-00003%#%cheeseburger-circle-00003-gigglesnarkarnold---R.txt%#%
%%%cheeseburger-circle-00003%#%cheeseburger-circle-00003-gigglesnarkhenrietta---R.txt%#%
%%%cheeseburger-circle-00004%#%cheeseburger-circle-00004-barbietailcoloringservices---C1.txt%#%
%%%cheeseburger-circle-00004%#%cheeseburger-circle-00004-panthersonbitsy---R.txt%#%
%%%cheeseburger-circle-00004%#%cheeseburger-circle-00004-panthersonbobby---R.txt%#%
%%%cheeseburger-circle-00004%#%cheeseburger-circle-00004-panthersonbootsy---R.txt%#%
%%%cheeseburger-circle-00004%#%cheeseburger-circle-00004-panthersonpoppy---R.txt%#%
%%%cheeseburger-circle-00005%#%cheeseburger-circle-00005-dieter---C2.txt%#%
%%%cheeseburger-circle-00005%#%cheeseburger-circle-00005-dieterisley---R.txt%#%
%%%cheeseburger-circle-00005%#%cheeseburger-circle-00005-meowsolutions---C1.txt%#%
%%%cheeseburger-circle-00005%#%cheeseburger-circle-00005-poppycockdelilah---R.txt%#%
%%%cheeseburger-circle-00005%#%cheeseburger-circle-00005-shredderkali---R.txt%#%
%%%cheeseburger-circle-00006%#%cheeseburger-circle-00006-feliniovboris---R.txt%#%
%%%cheeseburger-circle-00007%#%cheeseburger-circle-00007-softpawmittens---R.txt%#%
%%%cheeseburger-circle-00008%#%cheeseburger-circle-00008-blinkysmith---R.txt%#%
%%%cheeseburger-circle-00008%#%cheeseburger-circle-00008-macmackerelrocko---R.txt%#%
%%%cheeseburger-circle-00008%#%cheeseburger-circle-00008-yellomello---R.txt%#%
%%%feathertoy-circle-00001%#%feathertoy-circle-00001-marshmallowsquishy---R.txt%#%
%%%feathertoy-circle-00002%#%feathertoy-circle-00002-catkitty---R.txt%#%
%%%feathertoy-circle-00003%#%feathertoy-circle-00003-panthersonpeter---R.txt%#%
%%%feathertoy-circle-00004%#%feathertoy-circle-00004-rodgerstanster---R.txt%#%
%%%feathertoy-circle-00004%#%feathertoy-circle-00004-tanster'scatlifeworkshop---C1.txt%#%
%%%feathertoy-circle-00004%#%feathertoy-circle-00004-tanster'sfelinesuccessacademy---C1.txt%#%
%%%feathertoy-circle-00004%#%feathertoy-circle-00004-tanster'sfelinesuccessinitiative---C1.txt%#%
%%%feathertoy-circle-00004%#%feathertoy-circle-00004-tanster'slifecoachingservices---C1.txt%#%
%%%feathertoy-circle-00005%#%feathertoy-circle-00005-twitchitailtom---R.txt%#%
%%%feathertoy-circle-00006%#%feathertoy-circle-00006-rodgersholly---R.txt%#%
%%%feathertoy-circle-00007%#%feathertoy-circle-00007-kerspeckleswilhelmina---R.txt%#%
%%%feathertoy-circle-00008%#%feathertoy-circle-00008-chasersonprissy---R.txt%#%
%%%feathertoy-circle-00009%#%feathertoy-circle-00009-snowballlarry---R.txt%#%
%%%hideaway-court-00001%#%hideaway-court-00001-ritzsimmonsmitzy---R.txt%#%
%%%hideaway-court-00002%#%hideaway-court-00002-rodgerswillow---R.txt%#%
%%%hideaway-court-00003%#%hideaway-court-00003-rodgerssqueekie---R.txt%#%
%%%longtail-court-00001%#%longtail-court-00001-pattersonprincess---R.txt%#%
%%%longtail-court-00002%#%longtail-court-00002-softpawsimkin---R.txt%#%
%%%longtail-court-00003%#%longtail-court-00003-catbaby---R.txt%#%
%%%longtail-court-00004%#%longtail-court-00004-calicogordon---R.txt%#%
%%%longtail-court-00005%#%longtail-court-00005-washingtonbubbles---R.txt%#%
%%%lower-treetrunk-drive-00001%#%lower-treetrunk-drive-00001-bigstretchgym---C1.txt%#%
%%%lower-treetrunk-drive-00001%#%lower-treetrunk-drive-00001-bigstretchgym---C2.txt%#%
%%%lower-treetrunk-drive-00002%#%lower-treetrunk-drive-00002-pattersoncatzilla---R.txt%#%
%%%lower-treetrunk-drive-00003%#%lower-treetrunk-drive-00003-feliniovivan---R.txt%#%
%%%lower-treetrunk-drive-00004%#%lower-treetrunk-drive-00004-rachiogoldy---R.txt%#%
%%%lower-treetrunk-drive-00005%#%lower-treetrunk-drive-00005-blitzenburgerrosemary---C2.txt%#%
%%%lower-treetrunk-drive-00005%#%lower-treetrunk-drive-00005-jonescleopatra---R.txt%#%
%%%lower-treetrunk-drive-00005%#%lower-treetrunk-drive-00005-rosemaryblitzenburger---R.txt%#%
%%%lower-treetrunk-drive-00005%#%lower-treetrunk-drive-00005-rosemaryscatnipevents---C1.txt%#%
%%%lower-treetrunk-drive-00006%#%lower-treetrunk-drive-00006-thagoruspy---R.txt%#%
%%%lower-treetrunk-drive-00007%#%lower-treetrunk-drive-00007-mewtonisaac---R.txt%#%
%%%mousetail-blvd-00001%#%mousetail-blvd-00001-armstrongantonio---R.txt%#%
%%%mousetail-blvd-00002%#%mousetail-blvd-00002-pawclawmartin---R.txt%#%
%%%mousetail-blvd-00003%#%mousetail-blvd-00003-bluewhiskerjosephina---R.txt%#%
%%%mousetail-blvd-00005%#%mousetail-blvd-00005-pinkiessardinery---C1.txt%#%
%%%mousetail-blvd-00005%#%mousetail-blvd-00005-pinkiessardinery---C2.txt%#%
%%%mousetail-blvd-00006%#%mousetail-blvd-00006-bunnysclawpolishsalon---C1.txt%#%
STREETNAME,STREETNUMBER,COMPANY1,COMPANY2,LASTNAME,FIRSTNAME1,FIRSTNAME2,HOMEPHONE,CELL1,CELL2,QUANTITY,EMAIL
cheeseburger-circle,1,Isley's Surveillance Services,Isley's Surveillance Services,Dieter,Isley,,,,,,
Cheeseburger Circle,1,,,Dieter,Ralph,,,770-111-2222,,5,Ralphd@meowmailcom
cheeseburger-circle,1,Isley's Surveillance Services,Isley's Surveillance Services,Dieter,Isley,,,,,,
cheeseburger-circle,2,Career Coaching for Cats (CC4C),CC4C,Softpaw,Blackie,,,,,,
cheeseburger-circle,2,Career Coaching for Cats (CC4C),CC4C,Softpaw,Blackie,,,,,,
Cheeseburger Circle,2,,,Softpaw,Blackie,,,770 111-2222,,,IsleyD@meowmailcom
Cheeseburger Circle,3,,,Gigglesnark,Arnold,,,404-404-4040,,,
Cheeseburger Circle,3,,,Gigglesnark,Henrietta,Pierre,,770-111-2222,505-505-5050,,
cheeseburger-circle,4,Barbie Tail Coloring Services,,Pantherson,,,,,,,
Cheeseburger Circle,4,,,Pantherson,Bitsy,Snippy,,770 111-2222,,,GRachio618@meowmailcom
Cheeseburger Circle,4,,,Pantherson,Bobby,,,,,,
Cheeseburger Circle,4,,,Pantherson,Bootsy,,,,,,
Cheeseburger Circle,4,,,Pantherson,Poppy,,,,,,
cheeseburger-circle,5,Meow Solutions,Meow Solutions,Dieter,,,,,,,
Cheeseburger Circle,5,,,Dieter,Isley,,,770 111-2222,,,BNFeliniov@catmailcom
cheeseburger-circle,5,Meow Solutions,Meow Solutions,Dieter,,,,,,,
Cheeseburger Circle,5,,,Poppycock,Delilah,,,,,,
Cheeseburger Circle,5,,,Shredder,Kali,,,,,,
Cheeseburger Circle,6,,,Feliniov,Boris,Natasha,,770 111-2222,,,Aarmstrong@meowmailcom
Cheeseburger Circle,7,,,Softpaw,Mittens,,,770-111-2222,,,
Cheeseburger Circle,8,,,Blinky,Smith,,,,,,
Cheeseburger Circle,8,,,MacMackerel,Rocko,,,,,,
Cheeseburger Circle,8,,,Yello,Mello,,,,,,
Cheeseburger Circle,9,,,Armstrong,Mercedes,Snow,,770 111-2222,,,Ralph@meowmailcom
cheeseburger-circle,9,Tuna Importers of the World,Tuna Importers of the World,Sam,,,,,,,
cheeseburger-circle,9,Tuna Importers of the World,Tuna Importers of the World,Sam,,,,,,,
Feathertoy Circle,1,,,Marshmallow,Squishy,Softy,,222-222-2222,,,
Feathertoy Circle,2,,,Cat,Kitty,,,770 111-2222,,,TanROd@meowmailcom
Feathertoy Circle,3,,,Pantherson,Peter,,770 111-2222,770 111-2222,,,Twitch17@purrmailcom
Feathertoy Circle,4,,,Rodgers,Tanster,,,770-111-2222,,,
feathertoy-circle,4,Tanster's Cat Life Workshop,,Rodgers,Tanster,,,,,,
feathertoy-circle,4,Tanster's Feline Success Academy,,,,,,,,,
feathertoy-circle,4,Tanster's Feline Success Initiative,,,,,,,,,
feathertoy-circle,4,Tanster's Life Coaching Services,,Rodgers,,,,,,,
Feathertoy Circle,5,,,Twitchitail,Tom,Ginger,,770 111-2222,,,WRod22@catmailcom
Feathertoy Circle,6,,,Rodgers,Holly,,,770-111-2222,,,
Feathertoy Circle,7,,,Kerspeckles,Wilhelmina,Buddy,,770 111-2222,,,MerArm67@meowmailcom
Feathertoy Circle,8,,,Chaserson,Prissy,,,770 111-2222,,,MittensS@purrmailcom
Feathertoy Circle,9,,,Snowball,Larry,Lucy,,770 111-2222,,,BlackieSoftpaw@meowmailcom
Hideaway Court,1,,,Ritzsimmons,Mitzy,,,770 111-2222,,,Prissy1@purrmailcom
Hideaway Court,2,,,Rodgers,Willow,,770 111-2222,770 111-2222,,,LarryLucySnow@meowmailcom
Hideaway Court,3,,,Rodgers,Squeekie,,,770 111-2222,,,WKersp671@catmailcom
Longtail Court,1,,,Patterson,Princess,,770-111-2222,770-111-2222,,,
Longtail Court,2,,,Softpaw,Simkin,,,770 111-2222,,,KC6722@purrmailcom
Longtail Court,3,,,Cat,Baby,,,770 111-2222,,,PrincessP@catmailcom
Longtail Court,4,,,Calico,Gordon,Ophelia,,770 111-2222,,,SSoft2525@purrmailcom
Longtail Court,5,,,Washington,Bubbles,,,,,,
Lower Treetrunk Drive,1,Big Stretch Gym,Big StretchGym,Cat,Bob,,,770 111-2222,,,BC4938@meowmailcom
Lower Treetrunk Drive,1,Big Stretch Gym,Big StretchGym,Cat,Bob,,,770 111-2222,,,BC4938@meowmailcom
Lower Treetrunk Drive,2,,,Patterson,Catzilla,,,770 111-2222,,,GOCalico414@catmailcom
Lower Treetrunk Drive,3,,,Feliniov,Ivan ,Caterina,,770 111-2222,,,bobcat772@catmailcom
Lower Treetrunk Drive,4,,,Rachio,Goldy,Copper,,770-111-2222,,,
lower-treetrunk-drive,5,Rosemary,Rosemary,Blitzenburger,Rosemary,,,222-222-2222,,,
Lower Treetrunk Drive,5,,,Jones,Cleopatra,Tony,,770-111-2222,,,
Lower Treetrunk Drive,5,,,Rosemary,Blitzenburger,Parsley,,,,,
lower-treetrunk-drive,5,Rosemary,Rosemary,Blitzenburger,Rosemary,,,222-222-2222,,,
Lower Treetrunk Drive,6,,,Thagorus,Py,,,770 111-2222,,,PyThag314@meowmailcom
Lower Treetrunk Drive,7,,,Mewton,Isaac,,,770 111-2222,,,IMew1790@purrmailcom
Mousetail Blvd,1,,,Armstrong,Antonio,,,770 111-2222,,,CatzillaP@catmailcom
Mousetail Blvd,2,,,Pawclaw,Martin,Betty,770 111-2222,770 111-2222,,,ICFeliniov18@catmailcom
Mousetail Blvd,3,,,Bluewhisker,Josephina,,770 111-2222,770 111-2222,,,MBPawclaw@catmailcom
Mousetail Blvd,5,Pinkies Sardinery,Pinkies Sardinery,Patterson,Pinkie,,,770-111-2222,,,
Mousetail Blvd,5,Pinkies Sardinery,Pinkies Sardinery,Patterson,Pinkie,,,770-111-2222,,,
Mousetail Blvd,6,Bunnys Claw Polish Salon,,Cat,Bunny,,,770 111-2222,,,PinkieP@purrmailcom
GentiumBookBasic-Regular.ttf
HindSiliguri-Regular.ttf
IBMPlexSerif-Regular.ttf
Lato-Regular.ttf
Mulish-Light.ttf
OpenSans-Regular.ttf
Raleway-Regular.ttf
TitilliumWeb-Regular.ttf
Armstrong%#%cheeseburger-circle-00009-armstrongmercedes---R%#%
%%%Armstrong%#%mousetail-blvd-00001-armstrongantonio---R%#%
%%%Barbie's Tail Coloring Services%#%cheeseburger-circle-00004-barbietailcoloringservices---C1%#%
%%%Big Stretch Gym%#%lower-treetrunk-drive-00001-bigstretchgym---C1%#%
%%%Blinky%#%cheeseburger-circle-00008-blinkysmith---R%#%
%%%Blitzenburger%#%lower-treetrunk-drive-00005-blitzenburgerrosemary---C2%#%
%%%Bluewhisker%#%mousetail-blvd-00003-bluewhiskerjosephina---R%#%
%%%Bunny's Claw Polish Salon%#%mousetail-blvd-00006-bunnysclawpolishsalon---C1%#%
%%%Calico%#%longtail-court-00004-calicogordon---R%#%
%%%Career Coaching for Cats (CC4C)%#%cheeseburger-circle-00002-careercoachingforcats(cc4c)---C1%#%
%%%Cat%#%feathertoy-circle-00002-catkitty---R%#%
%%%Cat%#%longtail-court-00003-catbaby---R%#%
%%%Cat%#%lower-treetrunk-drive-00001-bigstretchgym---C2%#%
%%%Chaserson%#%feathertoy-circle-00008-chasersonprissy---R%#%
%%%Dieter%#%cheeseburger-circle-00001-dieterisley---C2%#%
%%%Dieter%#%cheeseburger-circle-00001-dieterralph---R%#%
%%%Dieter%#%cheeseburger-circle-00005-dieter---C2%#%
%%%Dieter%#%cheeseburger-circle-00005-dieterisley---R%#%
%%%Feliniov%#%cheeseburger-circle-00006-feliniovboris---R%#%
%%%Feliniov%#%lower-treetrunk-drive-00003-feliniovivan---R%#%
%%%Gigglesnark%#%cheeseburger-circle-00003-gigglesnarkarnold---R%#%
%%%Gigglesnark%#%cheeseburger-circle-00003-gigglesnarkhenrietta---R%#%
%%%Isley's Surveillance Services%#%cheeseburger-circle-00001-isleyssurveillanceservices---C1%#%
%%%Jones%#%lower-treetrunk-drive-00005-jonescleopatra---R%#%
%%%Kerspeckles%#%feathertoy-circle-00007-kerspeckleswilhelmina---R%#%
%%%MacMackerel%#%cheeseburger-circle-00008-macmackerelrocko---R%#%
%%%Marshmallow%#%feathertoy-circle-00001-marshmallowsquishy---R%#%
%%%Meow Solutions%#%cheeseburger-circle-00005-meowsolutions---C1%#%
%%%Mewton%#%lower-treetrunk-drive-00007-mewtonisaac---R%#%
%%%Pantherson%#%cheeseburger-circle-00004-panthersonbitsy---R%#%
%%%Pantherson%#%cheeseburger-circle-00004-panthersonbobby---R%#%
%%%Pantherson%#%cheeseburger-circle-00004-panthersonbootsy---R%#%
%%%Pantherson%#%cheeseburger-circle-00004-panthersonpoppy---R%#%
%%%Pantherson%#%feathertoy-circle-00003-panthersonpeter---R%#%
%%%Patterson%#%longtail-court-00001-pattersonprincess---R%#%
%%%Patterson%#%lower-treetrunk-drive-00002-pattersoncatzilla---R%#%
%%%Patterson%#%mousetail-blvd-00005-pinkiessardinery---C2%#%
%%%Pawclaw%#%mousetail-blvd-00002-pawclawmartin---R%#%
%%%Pinkies Sardinery%#%mousetail-blvd-00005-pinkiessardinery---C1%#%
%%%Poppycock%#%cheeseburger-circle-00005-poppycockdelilah---R%#%
%%%Rachio%#%lower-treetrunk-drive-00004-rachiogoldy---R%#%
%%%Ritzsimmons%#%hideaway-court-00001-ritzsimmonsmitzy---R%#%
%%%Rodgers%#%feathertoy-circle-00004-rodgerstanster---R%#%
%%%Rodgers%#%feathertoy-circle-00006-rodgersholly---R%#%
%%%Rodgers%#%hideaway-court-00002-rodgerswillow---R%#%
%%%Rodgers%#%hideaway-court-00003-rodgerssqueekie---R%#%
%%%Rosemary%#%lower-treetrunk-drive-00005-rosemaryblitzenburger---R%#%
%%%Rosemary%#%lower-treetrunk-drive-00005-rosemaryscatnipevents---C1%#%
%%%Sam%#%cheeseburger-circle-00009-sam---C2%#%
%%%Shredder%#%cheeseburger-circle-00005-shredderkali---R%#%
%%%Snowball%#%feathertoy-circle-00009-snowballlarry---R%#%
%%%Softpaw%#%cheeseburger-circle-00002-softpawblackie---C2%#%
%%%Softpaw%#%cheeseburger-circle-00002-softpawblackie---R%#%
%%%Softpaw%#%cheeseburger-circle-00007-softpawmittens---R%#%
%%%Softpaw%#%longtail-court-00002-softpawsimkin---R%#%
%%%Tanster's Cat Life Workshop%#%feathertoy-circle-00004-tanster'scatlifeworkshop---C1%#%
%%%Tanster's Feline Success Academy%#%feathertoy-circle-00004-tanster'sfelinesuccessacademy---C1%#%
%%%Tanster's Feline Success Initiative%#%feathertoy-circle-00004-tanster'sfelinesuccessinitiative---C1%#%
%%%Tanster's Life Coaching Services%#%feathertoy-circle-00004-tanster'slifecoachingservices---C1%#%
%%%Thagorus%#%lower-treetrunk-drive-00006-thagoruspy---R%#%
%%%Tuna Importers of the World%#%cheeseburger-circle-00009-tunaimportersoftheworld---C1%#%
%%%Twitchitail%#%feathertoy-circle-00005-twitchitailtom---R%#%
%%%Washington%#%longtail-court-00005-washingtonbubbles---R%#%
%%%Yello%#%cheeseburger-circle-00008-yellomello---R%#%
cheeseburger-circle-00001-dieterralph---R.txt
cheeseburger-circle-00001-isleyssurveillanceservices---C1.txt
cheeseburger-circle-00002-careercoachingforcats(cc4c)---C1.txt
cheeseburger-circle-00002-softpawblackie---C2.txt
cheeseburger-circle-00002-softpawblackie---R.txt
cheeseburger-circle-00003-gigglesnarkarnold---R.txt
cheeseburger-circle-00003-gigglesnarkhenrietta---R.txt
cheeseburger-circle-00004-barbietailcoloringservices---C1.txt
cheeseburger-circle-00004-panthersonbitsy---R.txt
cheeseburger-circle-00004-panthersonbobby---R.txt
cheeseburger-circle-00004-panthersonbootsy---R.txt
cheeseburger-circle-00004-panthersonpoppy---R.txt
cheeseburger-circle-00005-dieter---C2.txt
cheeseburger-circle-00005-dieterisley---R.txt
cheeseburger-circle-00005-meowsolutions---C1.txt
cheeseburger-circle-00005-poppycockdelilah---R.txt
cheeseburger-circle-00005-shredderkali---R.txt
cheeseburger-circle-00006-feliniovboris---R.txt
cheeseburger-circle-00007-softpawmittens---R.txt
cheeseburger-circle-00008-blinkysmith---R.txt
cheeseburger-circle-00008-macmackerelrocko---R.txt
cheeseburger-circle-00008-yellomello---R.txt
cheeseburger-circle-00009-armstrongmercedes---R.txt
cheeseburger-circle-00009-sam---C2.txt
cheeseburger-circle-00009-tunaimportersoftheworld---C1.txt
feathertoy-circle-00001-marshmallowsquishy---R.txt
feathertoy-circle-00002-catkitty---R.txt
feathertoy-circle-00003-panthersonpeter---R.txt
feathertoy-circle-00004-rodgerstanster---R.txt
feathertoy-circle-00004-tanster'scatlifeworkshop---C1.txt
feathertoy-circle-00004-tanster'sfelinesuccessacademy---C1.txt
feathertoy-circle-00004-tanster'sfelinesuccessinitiative---C1.txt
feathertoy-circle-00004-tanster'slifecoachingservices---C1.txt
feathertoy-circle-00005-twitchitailtom---R.txt
feathertoy-circle-00006-rodgersholly---R.txt
feathertoy-circle-00007-kerspeckleswilhelmina---R.txt
feathertoy-circle-00008-chasersonprissy---R.txt
feathertoy-circle-00009-snowballlarry---R.txt
hideaway-court-00001-ritzsimmonsmitzy---R.txt
hideaway-court-00002-rodgerswillow---R.txt
hideaway-court-00003-rodgerssqueekie---R.txt
longtail-court-00001-pattersonprincess---R.txt
longtail-court-00002-softpawsimkin---R.txt
longtail-court-00003-catbaby---R.txt
longtail-court-00004-calicogordon---R.txt
longtail-court-00005-washingtonbubbles---R.txt
lower-treetrunk-drive-00001-bigstretchgym---C1.txt
lower-treetrunk-drive-00001-bigstretchgym---C2.txt
lower-treetrunk-drive-00002-pattersoncatzilla---R.txt
lower-treetrunk-drive-00003-feliniovivan---R.txt
lower-treetrunk-drive-00004-rachiogoldy---R.txt
lower-treetrunk-drive-00005-blitzenburgerrosemary---C2.txt
lower-treetrunk-drive-00005-jonescleopatra---R.txt
lower-treetrunk-drive-00005-rosemaryblitzenburger---R.txt
lower-treetrunk-drive-00005-rosemaryscatnipevents---C1.txt
lower-treetrunk-drive-00006-thagoruspy---R.txt
lower-treetrunk-drive-00007-mewtonisaac---R.txt
mousetail-blvd-00001-armstrongantonio---R.txt
mousetail-blvd-00002-pawclawmartin---R.txt
mousetail-blvd-00003-bluewhiskerjosephina---R.txt
mousetail-blvd-00005-pinkiessardinery---C1.txt
mousetail-blvd-00005-pinkiessardinery---C2.txt
mousetail-blvd-00006-bunnysclawpolishsalon---C1.txt
cheeseburger-circle-00002-softpawblackie---R.txt
cheeseburger-circle-00003-gigglesnarkhenrietta---R.txt
cheeseburger-circle-00004-panthersonbitsy---R.txt
cheeseburger-circle-00005-dieterisley---R.txt
cheeseburger-circle-00006-feliniovboris---R.txt
cheeseburger-circle-00007-softpawmittens---R.txt
cheeseburger-circle-00009-armstrongmercedes---R.txt
feathertoy-circle-00002-catkitty---R.txt
feathertoy-circle-00003-panthersonpeter---R.txt
feathertoy-circle-00004-rodgerstanster---R.txt
feathertoy-circle-00005-twitchitailtom---R.txt
feathertoy-circle-00006-rodgersholly---R.txt
feathertoy-circle-00007-kerspeckleswilhelmina---R.txt
feathertoy-circle-00008-chasersonprissy---R.txt
feathertoy-circle-00009-snowballlarry---R.txt
hideaway-court-00001-ritzsimmonsmitzy---R.txt
hideaway-court-00002-rodgerswillow---R.txt
hideaway-court-00003-rodgerssqueekie---R.txt
longtail-court-00001-pattersonprincess---R.txt
longtail-court-00002-softpawsimkin---R.txt
longtail-court-00003-catbaby---R.txt
longtail-court-00004-calicogordon---R.txt
lower-treetrunk-drive-00001-bigstretchgym---C1.txt
lower-treetrunk-drive-00001-bigstretchgym---C2.txt
lower-treetrunk-drive-00002-pattersoncatzilla---R.txt
lower-treetrunk-drive-00003-feliniovivan---R.txt
lower-treetrunk-drive-00004-rachiogoldy---R.txt
lower-treetrunk-drive-00005-jonescleopatra---R.txt
lower-treetrunk-drive-00006-thagoruspy---R.txt
lower-treetrunk-drive-00007-mewtonisaac---R.txt
mousetail-blvd-00001-armstrongantonio---R.txt
mousetail-blvd-00002-pawclawmartin---R.txt
mousetail-blvd-00003-bluewhiskerjosephina---R.txt
mousetail-blvd-00004-rodgersscottie---R.txt
mousetail-blvd-00005-pinkiessardinery---C1.txt
mousetail-blvd-00005-pinkiessardinery---C2.txt
mousetail-blvd-00006-bunnysclawpolishsalon---C1.txt
mousetail-blvd-00007-pinkiessardinery---C1.txt
mousetail-blvd-00008-shaggybacksnow---R.txt
mousetail-blvd-00009-sheddingtonfluffy---R.txt
dir2026feathertoy-circle.txt
hideaway-court.txt
longtail-court.txt
lower-treetrunk-drive.txt
mousetail-blvd.txt
dir