Member Directory
← Return

A Directory is a useful feature for organizations with members, such as homeowner associations, clubs, and parent groups. We have created four versions of our Directory for The Felinia Cultural Association.
This section shows two kinds of directories - alphabetical by name, and alphabetical by street. Both can use the results of the 'Convert a Spreadsheet to a Database' application.
For the alphabetical directory, the required record fields are: lastname, firstname, streetname, streetnumber, city, state, zip, email, cell, homephone and the record key is created from the lastname and lastname fields, with a counter, so that they appear in lastname order in their folder.
For the street directory, it is assumed that the addresses are all in the same city, state and zip code, so those fields are not required. The record key is created from the streetname, streetnumber and lastname fields, so that they appear in street order in their folder.
Demos:
Listings in alphabetical order by last name: Alphabetical Directory 1
Listings in alphabetical order by last name with letter headings Alphabetical Directory 2
Listings in street order by street name Street Directory 1
Listings in street order by street name with street name headings Street Directory 2
Alphabetical Directory 1 Code
Click to Download Files<?php
//Required record fields: lastname, firstname, streetnumber, streetname, phone, email
//Optional: city,state,zip,
include ('inc/functions.php');
include ("inc/header.php");
$recordkeys = readArray ('data/recordkeys.txt', ',');
$linecount = 5;
echo "<a href = '../../directory'>← Return</a>";
echo "<div class = 'directory-page' >";
echo "<h1>Alphabetical Directory 1</h1>";
$array1 = scandir ('data/records');
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$recordid = str_replace ('.txt', '', $item1);
$record = readDatabaseRecord ($recordkeys, 'data/records/' . $recordid . '.txt');
if ( $linecount > 34) {
//New page
echo "<div class = 'pdf-page-break'></div>";
echo "</div><div class = 'directory-page'>";
$linecount = 0;
}
echo "<div class = 'listing'>";
echo $record['lastname'] .', ' . $record['firstname'];
echo "<i>";
if ($record['cell']) {
echo "C: " . $record['cell'];
}
IF ($record['homephone']) {
echo " H: " . $record['homephone'];
}
echo "</i><br>";
echo $record['streetnumber'] . " " . $record['streetname'] . " <i>" . $record['email'] . "</i>" ;
$linecount = $linecount + 2;
if ($record['city']) {
//city, state, zip
echo "<br>" . $record['city'] . ", " . $record['state'] . " " . $record['zip'];
$linecount++;
}
echo "</div>";
}
}
echo "</div>";
include ("inc/footer.php");
?>
DIRECTORY-ALPHA-1/inc
</body>
</html><?php
//delimeters for records
$dl1 = "%%%";
$dl2 = "%#%";
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);
}
//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 getFromQueryString ($label) {
$value = "";
if (isset ($_GET[$label])) {
$value = $_GET[$label];
if (specialChars($value) || strlen ($value) > 300) {
//Invalid input
$value = '';
}
}
return $value;
}
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;
}
}
?><!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Alphabetical Directory 1</title>
<link rel= 'stylesheet' type='text/css' href= 'inc/style.css'>
<meta name = 'robots' content = 'nofollow,noindex'>
</head>
<body>
body {
font-family: 'Arial', sans-serif;
line-height: 100%;
text-align:center;
}
form {
padding-top: 60px;
}
textarea{
width: 400px;
}
label {
font-size: 18px;
font-weight: bold;
}
.directory-page {
text-align: left;
font-size: 14px;
}
h1 {
text-align: center;
}
i {
float: right;
}
h3 {
margin: 10px auto 3px auto;
}
.listing {
border-bottom: 1px solid #ddd;
text-align: left;
margin-bottom: 10px;
line-height: 150%;
padding: 10px 0 3px 0;
}
@media print {
.pdf-page-break {
page-break-after: always;
}
}DIRECTORY-ALPHA-1/data
lastname,firstname,streetname,streetnumber,city,state,zip,email,cell,homephonearmstrong-mercedes-00008.txt
bluewhisker-josephina-00029.txt
calico-gordon-00023.txt
cat-baby-00022.txt
cat-bob-00024.txt
cat-bunny-00032.txt
cat-kitty-00019.txt
chaserson-prissy-00009.txt
dieter-isley-00002.txt
dieter-ralph-00003.txt
dribble-rocco-00040.txt
feliniov-boris-00005.txt
feliniov-ivan-00026.txt
frankenfluff-buttons-00041.txt
gigglesnark-henrietta-00001.txt
jones-cleopatra-00037.txt
kerspeckles-wilhelmina-00011.txt
mewton-isaac-00039.txt
pantherson-bitsy-00006.txt
pantherson-peter-00018.txt
patterson-catzilla-00025.txt
patterson-pinkie-00031.txt
patterson-pinkie-00033.txt
patterson-princess-00020.txt
pawclaw-martin-00028.txt
rachio-goldy-00036.txt
ritzsimmons-mitzy-00012.txt
rockafurrer-mimi-00042.txt
rodgers-holly-00015.txt
rodgers-scottie-00030.txt
rodgers-squeekie-00014.txt
rodgers-tanster-00017.txt
rodgers-willow-00013.txt
shaggyback-snow-00034.txt
sheddington-fluffy-00035.txt
snowball-larry-00010.txt
softpaw-blackie-00007.txt
softpaw-mittens-00004.txt
softpaw-simkin-00021.txt
thagorus-py-00038.txt
twitchitail-tom-00016.txt
Alphabetical Directory 2 Code
Click to Download Files<?php
include "inc/functions.php";
$recordkeys = readArray ('data/recordkeys.txt', ',');
$char = $prevchar = '';
$title = '';
if (isset ($_POST['title'])) {
$title = $_POST['title'];
}
include ('inc/header.php');
echo "<a href = '../../directory'>← Return</a>";
echo "<div class = 'directory-page' >";
echo "<h1>Alphabetical Directory 2</h1>";
$linecount = 5;
$array1 = scandir ('data/records');
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$recordid = str_replace ('.txt', '', $item1);
$record = readDatabaseRecord ($recordkeys, 'data/records/' . $recordid . '.txt');
$char = substr ($recordid, 0, 1);
if ($char !== $prevchar) {
if ($linecount > 34 ) {
//Not enough room for new street heading - start new page
echo "<div class = 'pdf-page-break'></div>";
echo "</div><div class = 'directory-page'>";
//Show street heading at top of page
echo "<h3>" . ucwords ($char) . "</h3>";
$linecount = 2;
}
else {
//Show street heading within page
echo "<h3>" . ucwords ($char) . "</h3>";
$linecount = $linecount + 2;
}
}
else if ($linecount > 32) {
//Out of space - start new page
echo "<div class = 'pdf-page-break'></div>";
echo "</div><div class = 'directory-page'>";
//Show street heading at top of page
echo "<h3>" . ucwords ($char) . "</h3>";
$linecount = 2;
}
echo "<div class = 'listing'>";
echo $record['lastname'] .', ' . $record['firstname'];
echo "<i>";
if ($record['cell']) {
echo "C: " . $record['cell'];
}
IF ($record['homephone']) {
echo " H: " . $record['homephone'];
}
echo "</i><br>";
echo $record['streetnumber'] . " " . $record['streetname'] . " <i>" . $record['email'] . "</i>" ;
$linecount = $linecount + 2;
if ($record['city']) {
//city, state, zip
echo "<br>" . $record['city'] . ", " . $record['state'] . " " . $record['zip'];
$linecount++;
}
echo "</div>";
$prevchar = $char;
}
}
echo "</div>";
include ("inc/footer.php");
?>DIRECTORY-ALPHA-2/inc
</body>
</html><?php
//delimeters for records
$dl1 = "%%%";
$dl2 = "%#%";
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);
}
//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 getFromQueryString ($label) {
$value = "";
if (isset ($_GET[$label])) {
$value = $_GET[$label];
if (specialChars($value) || strlen ($value) > 300) {
//Invalid input
$value = '';
}
}
return $value;
}
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;
}
}
?><!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Alphabetical Directory 2</title>
<link rel= 'stylesheet' type='text/css' href= 'inc/style.css'>
<meta name = 'robots' content = 'nofollow,noindex'>
</head>
<body>
body {
font-family: 'Arial', sans-serif;
line-height: 100%;
text-align:center;
}
form {
padding-top: 60px;
}
textarea{
width: 400px;
}
label {
font-size: 18px;
font-weight: bold;
}
.directory-page {
text-align: left;
font-size: 14px;
}
h1 {
text-align: center;
}
i {
float: right;
}
h3 {
margin: 10px auto 3px auto;
}
.listing {
border-bottom: 1px solid #ddd;
text-align: left;
margin-bottom: 10px;
line-height: 150%;
padding: 10px 0 3px 0;
}
@media print {
.pdf-page-break {
page-break-after: always;
}
}DIRECTORY-ALPHA-2/data
lastname,firstname,streetname,streetnumber,city,state,zip,email,cell,homephonearmstrong-mercedes-00008.txt
bluewhisker-josephina-00029.txt
calico-gordon-00023.txt
cat-baby-00022.txt
cat-bob-00024.txt
cat-bunny-00032.txt
cat-kitty-00019.txt
chaserson-prissy-00009.txt
dieter-isley-00002.txt
dieter-ralph-00003.txt
dribble-rocco-00040.txt
feliniov-boris-00005.txt
feliniov-ivan-00026.txt
frankenfluff-buttons-00041.txt
gigglesnark-henrietta-00001.txt
jones-cleopatra-00037.txt
kerspeckles-wilhelmina-00011.txt
mewton-isaac-00039.txt
pantherson-bitsy-00006.txt
pantherson-peter-00018.txt
patterson-catzilla-00025.txt
patterson-pinkie-00031.txt
patterson-pinkie-00033.txt
patterson-princess-00020.txt
pawclaw-martin-00028.txt
rachio-goldy-00036.txt
ritzsimmons-mitzy-00012.txt
rockafurrer-mimi-00042.txt
rodgers-holly-00015.txt
rodgers-scottie-00030.txt
rodgers-squeekie-00014.txt
rodgers-tanster-00017.txt
rodgers-willow-00013.txt
shaggyback-snow-00034.txt
sheddington-fluffy-00035.txt
snowball-larry-00010.txt
softpaw-blackie-00007.txt
softpaw-mittens-00004.txt
softpaw-simkin-00021.txt
thagorus-py-00038.txt
twitchitail-tom-00016.txt
Street Directory 1 Code
Click to Download Files<?php
include ('inc/functions.php');
include ("inc/header.php");
$recordkeys = readArray ('data/recordkeys.txt', ',');
$prevstreetname = '';
$linecount = 3;
echo "<a href = '../../directory'>← Return</a>";
echo "<div class = 'directory-page' >";
echo "<h1>Street Directory 1</h1>";
$array1 = scandir ('data/records');
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$recordid = str_replace ('.txt', '', $item1);
$record = readDatabaseRecord ($recordkeys, 'data/records/' . $recordid . '.txt');
if ( $linecount > 26) {
//New page
echo "<div class = 'pdf-page-break'></div>";
echo "</div><div class = 'directory-page'>";
$linecount = 0;
}
echo "<div class = 'listing'>";
echo $record['streetname'] . " " . $record['streetnumber'] . " <i>" . $record['email'] . "</i><br>" ;
echo " " . $record['lastname'] .', ' . $record['firstname'];
echo "<i>";
if ($record['cell']) {
echo "C: " . $record['cell'];
}
IF ($record['homephone']) {
echo " H: " . $record['homephone'];
}
echo "</i>";
$linecount = $linecount + 2;
echo "</div>";
}
}
echo "</div>";
DIRECTORY-STREET-1/inc
</body>
</html><?php
//delimeters for records
$dl1 = "%%%";
$dl2 = "%#%";
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);
}
//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 getFromQueryString ($label) {
$value = "";
if (isset ($_GET[$label])) {
$value = $_GET[$label];
if (specialChars($value) || strlen ($value) > 300) {
//Invalid input
$value = '';
}
}
return $value;
}
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;
}
}
?><!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Street Directory 1</title>
<link rel= 'stylesheet' type='text/css' href= 'inc/style.css'>
<meta name = 'robots' content = 'nofollow,noindex'>
</head>
<body>
body {
font-family: 'Arial', sans-serif;
line-height: 100%;
text-align:center;
}
form {
padding-top: 60px;
}
textarea{
width: 400px;
}
label {
font-size: 18px;
font-weight: bold;
}
.directory-page {
text-align: left;
font-size: 14px;
}
h1 {
text-align: center;
}
i {
float: right;
}
h3 {
margin: 10px auto 3px auto;
}
.listing {
border-bottom: 1px solid #ddd;
text-align: left;
margin-bottom: 10px;
line-height: 150%;
padding: 8px 0 3px 0;
}
@media print {
.pdf-page-break {
page-break-after: always;
}
}DIRECTORY-STREET-1/data
lastname,firstname,streetname,streetnumber,email,cell,homephonecheeseburgercircle-2-softpaw-00007.txt
cheeseburgercircle-3-gigglesnark-00001.txt
cheeseburgercircle-4-pantherson-00006.txt
cheeseburgercircle-5-dieter-00002.txt
cheeseburgercircle-6-feliniov-00005.txt
cheeseburgercircle-7-softpaw-00004.txt
cheeseburgercircle-9-armstrong-00008.txt
feathertoycircle-2-cat-00019.txt
feathertoycircle-3-pantherson-00018.txt
feathertoycircle-4-rodgers-00017.txt
feathertoycircle-5-twitchitail-00016.txt
feathertoycircle-6-rodgers-00015.txt
feathertoycircle-7-kerspeckles-00011.txt
feathertoycircle-8-chaserson-00009.txt
feathertoycircle-9-snowball-00010.txt
hideawaycourt-1-ritzsimmons-00012.txt
hideawaycourt-2-rodgers-00013.txt
hideawaycourt-3-rodgers-00014.txt
longtailcourt-1-patterson-00020.txt
longtailcourt-2-softpaw-00021.txt
longtailcourt-3-cat-00022.txt
longtailcourt-4-calico-00023.txt
lowertreetrunkdrive-1-cat-00024.txt
lowertreetrunkdrive-2-patterson-00025.txt
lowertreetrunkdrive-3-feliniov-00026.txt
lowertreetrunkdrive-4-rachio-00036.txt
lowertreetrunkdrive-5-jones-00037.txt
lowertreetrunkdrive-6-thagorus-00038.txt
lowertreetrunkdrive-7-mewton-00039.txt
mousetailblvd-1-armstrong-00027.txt
mousetailblvd-2-pawclaw-00028.txt
mousetailblvd-3-bluewhisker-00029.txt
mousetailblvd-4-rodgers-00030.txt
mousetailblvd-5-patterson-00031.txt
mousetailblvd-6-cat-00032.txt
mousetailblvd-7-patterson-00033.txt
mousetailblvd-8-shaggyback-00034.txt
mousetailblvd-9-sheddington-00035.txt
pasatunaavenue-2-rockafurrer-00042.txt
pasatunaavenue-3-dribble-00040.txt
pasatunaavenue-4-frankenfluff-00041.txt
Street Directory 2 Code
Click to Download Files<?php
include ('inc/functions.php');
include ("inc/header.php");
$recordkeys = readArray ('data/recordkeys.txt', ',');
$prevstreetname = '';
$linecount = 3;
echo "<a href = '../../directory'>← Return</a>";
echo "<div class = 'directory-page' >";
echo "<h1>Street Directory 2</h1>";
$array1 = scandir ('data/records');
foreach ($array1 as $item1) {
if (substr ($item1, 0, 1) !== '.') {
$recordid = str_replace ('.txt', '', $item1);
$record = readDatabaseRecord ($recordkeys, 'data/records/' . $recordid . '.txt');
if ($record['streetname'] !== $prevstreetname) {
if ($linecount > 308 ) {
//Not enough room for new street heading - start new page
echo "<div class = 'pdf-page-break'></div>";
echo "</div><div class = 'directory-page'>";
//Show street heading at top of page
echo "<h3>" . $record['streetname'] . "</h3>";
$linecount = 2;
}
else {
//Show street heading within page
echo "<h3>" . $record['streetname'] . "</h3>";
$linecount = $linecount + 2;
}
}
else if ($linecount > 32) {
//Out of space - start new page
echo "<div class = 'pdf-page-break'></div>";
echo "</div><div class = 'directory-page'>";
//Show street heading at top of page
echo "<h3>" . $record['streetname'] . "</h3>";
$linecount = $linecount = 2;
}
echo "<div class = 'listing'>";
echo $record['streetname'] . " " . $record['streetnumber'] . " <i>" . $record['email'] . "</i><br>" ;
echo " " . $record['lastname'] .', ' . $record['firstname'] ;
echo "<i>";
if ($record['cell']) {
echo "C: " . $record['cell'];
}
IF ($record['homephone']) {
echo " H: " . $record['homephone'];
}
echo "</i><br>";
$linecount = $linecount + 2;
echo "</div>";
$prevstreetname = $record['streetname'] ;
}
}
echo "</div>";DIRECTORY-STREET-2/inc
</body>
</html><?php
//delimeters for records
$dl1 = "%%%";
$dl2 = "%#%";
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);
}
//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 getFromQueryString ($label) {
$value = "";
if (isset ($_GET[$label])) {
$value = $_GET[$label];
if (specialChars($value) || strlen ($value) > 300) {
//Invalid input
$value = '';
}
}
return $value;
}
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;
}
}
?><!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Street Directory 2</title>
<link rel= 'stylesheet' type='text/css' href= 'inc/style.css'>
<meta name = 'robots' content = 'nofollow,noindex'>
</head>
<body>
body {
font-family: 'Arial', sans-serif;
line-height: 100%;
text-align:center;
}
form {
padding-top: 60px;
}
textarea{
width: 400px;
}
label {
font-size: 18px;
font-weight: bold;
}
.directory-page {
text-align: left;
font-size: 14px;
}
h1 {
text-align: center;
}
i {
float: right;
}
h3 {
margin: 10px auto 3px auto;
}
.listing {
border-bottom: 1px solid #ddd;
text-align: left;
margin-bottom: 10px;
line-height: 150%;
padding: 8px 0 3px 0;
}
@media print {
.pdf-page-break {
page-break-after: always;
}
}DIRECTORY-STREET-2/data
lastname,firstname,streetname,streetnumber,email,cell,homephonecheeseburgercircle-2-softpaw-00007.txt
cheeseburgercircle-3-gigglesnark-00001.txt
cheeseburgercircle-4-pantherson-00006.txt
cheeseburgercircle-5-dieter-00002.txt
cheeseburgercircle-6-feliniov-00005.txt
cheeseburgercircle-7-softpaw-00004.txt
cheeseburgercircle-9-armstrong-00008.txt
feathertoycircle-2-cat-00019.txt
feathertoycircle-3-pantherson-00018.txt
feathertoycircle-4-rodgers-00017.txt
feathertoycircle-5-twitchitail-00016.txt
feathertoycircle-6-rodgers-00015.txt
feathertoycircle-7-kerspeckles-00011.txt
feathertoycircle-8-chaserson-00009.txt
feathertoycircle-9-snowball-00010.txt
hideawaycourt-1-ritzsimmons-00012.txt
hideawaycourt-2-rodgers-00013.txt
hideawaycourt-3-rodgers-00014.txt
longtailcourt-1-patterson-00020.txt
longtailcourt-2-softpaw-00021.txt
longtailcourt-3-cat-00022.txt
longtailcourt-4-calico-00023.txt
lowertreetrunkdrive-1-cat-00024.txt
lowertreetrunkdrive-2-patterson-00025.txt
lowertreetrunkdrive-3-feliniov-00026.txt
lowertreetrunkdrive-4-rachio-00036.txt
lowertreetrunkdrive-5-jones-00037.txt
lowertreetrunkdrive-6-thagorus-00038.txt
lowertreetrunkdrive-7-mewton-00039.txt
mousetailblvd-1-armstrong-00027.txt
mousetailblvd-2-pawclaw-00028.txt
mousetailblvd-3-bluewhisker-00029.txt
mousetailblvd-4-rodgers-00030.txt
mousetailblvd-5-patterson-00031.txt
mousetailblvd-6-cat-00032.txt
mousetailblvd-7-patterson-00033.txt
mousetailblvd-8-shaggyback-00034.txt
mousetailblvd-9-sheddington-00035.txt
pasatunaavenue-2-rockafurrer-00042.txt
pasatunaavenue-3-dribble-00040.txt
pasatunaavenue-4-frankenfluff-00041.txt