diff --git a/familyconnections/addressbook.php b/familyconnections/addressbook.php index daa87167..133ff4c9 100644 --- a/familyconnections/addressbook.php +++ b/familyconnections/addressbook.php @@ -196,7 +196,7 @@ function displayExportSubmit () foreach ($rows as $row) { - $csv .= '"'.join('","', str_replace('"', '""', $row))."\"\015\012"; + $csv .= '"'.join('","', array_map(array($this, 'escapeCsvCell'), $row))."\"\015\012"; } $date = fixDate('Y-m-d', $this->fcmsUser->tzOffset); @@ -207,6 +207,25 @@ function displayExportSubmit () echo $csv; } + /** + * escapeCsvCell + * + * @param string $value + * + * @return string + */ + function escapeCsvCell ($value) + { + $value = (string)$value; + + if (preg_match('/^\s*[=+\-@]/', $value)) + { + $value = "'".$value; + } + + return str_replace('"', '""', $value); + } + /** * displayMassEmailForm *