mirror of
https://github.com/parsecsv/parsecsv-for-php.git
synced 2026-02-19 08:36:39 +00:00
@@ -145,6 +145,15 @@ class parseCSV {
|
|||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public $enclosure = '"';
|
public $enclosure = '"';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enclose All
|
||||||
|
* Force enclosing all columns
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
public $enclose_all = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Conditions
|
* Conditions
|
||||||
@@ -832,7 +841,7 @@ class parseCSV {
|
|||||||
// create heading
|
// create heading
|
||||||
if ( $this->heading && !$append && !empty($fields) ) {
|
if ( $this->heading && !$append && !empty($fields) ) {
|
||||||
foreach( $fields as $key => $value ) {
|
foreach( $fields as $key => $value ) {
|
||||||
$entry[] = $this->_enclose_value($value);
|
$entry[] = $this->_enclose_value($value, $delimiter);
|
||||||
}
|
}
|
||||||
|
|
||||||
$string .= implode($delimiter, $entry).$this->linefeed;
|
$string .= implode($delimiter, $entry).$this->linefeed;
|
||||||
@@ -842,7 +851,7 @@ class parseCSV {
|
|||||||
// create data
|
// create data
|
||||||
foreach( $data as $key => $row ) {
|
foreach( $data as $key => $row ) {
|
||||||
foreach( $row as $field => $value ) {
|
foreach( $row as $field => $value ) {
|
||||||
$entry[] = $this->_enclose_value($value);
|
$entry[] = $this->_enclose_value($value, $delimiter);
|
||||||
}
|
}
|
||||||
|
|
||||||
$string .= implode($delimiter, $entry).$this->linefeed;
|
$string .= implode($delimiter, $entry).$this->linefeed;
|
||||||
@@ -1045,11 +1054,14 @@ class parseCSV {
|
|||||||
*
|
*
|
||||||
* @return Processed value
|
* @return Processed value
|
||||||
*/
|
*/
|
||||||
public function _enclose_value ($value = null) {
|
public function _enclose_value ($value = null, $delimiter = null) {
|
||||||
|
if ( $delimiter === null ) {
|
||||||
|
$delimiter = $this->delimiter;
|
||||||
|
}
|
||||||
if ( $value !== null && $value != '' ) {
|
if ( $value !== null && $value != '' ) {
|
||||||
$delimiter = preg_quote($this->delimiter, '/');
|
$delimiter_quoted = preg_quote($delimiter, '/');
|
||||||
$enclosure = preg_quote($this->enclosure, '/');
|
$enclosure_quoted = preg_quote($this->enclosure, '/');
|
||||||
if ( preg_match("/".$delimiter."|".$enclosure."|\n|\r/i", $value) || ($value{0} == ' ' || substr($value, -1) == ' ') ) {
|
if ( preg_match("/".$delimiter_quoted."|".$enclosure_quoted."|\n|\r/i", $value) || ($value{0} == ' ' || substr($value, -1) == ' ') || $this->enclose_all ) {
|
||||||
$value = str_replace($this->enclosure, $this->enclosure.$this->enclosure, $value);
|
$value = str_replace($this->enclosure, $this->enclosure.$this->enclosure, $value);
|
||||||
$value = $this->enclosure.$value.$this->enclosure;
|
$value = $this->enclosure.$value.$this->enclosure;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user