@@ -83,15 +83,20 @@ protected function getRestrictedIndicator(Session $rets, &$xml, $parameters)
8383 protected function getColumnNames (Session $ rets , &$ xml , $ parameters )
8484 {
8585 $ delim = $ this ->getDelimiter ($ rets , $ xml , $ parameters );
86+ $ delimLength = strlen ($ delim );
8687
8788 // break out and track the column names in the response
8889 $ column_names = "{$ xml ->COLUMNS [0 ]}" ;
8990
90- // take out the first delimiter
91- $ column_names = preg_replace ("/^ {$ delim }/ " , "" , $ column_names );
91+ // Take out the first delimiter
92+ if (substr ($ column_names , 0 , $ delimLength ) == $ delim ) {
93+ $ column_names = substr ($ column_names , $ delimLength );
94+ }
9295
93- // take out the last delimiter
94- $ column_names = preg_replace ("/ {$ delim }\$/ " , "" , $ column_names );
96+ // Take out the last delimiter
97+ if (substr ($ column_names , -$ delimLength ) == $ delim ) {
98+ $ column_names = substr ($ column_names , 0 , -$ delimLength );
99+ }
95100
96101 // parse and return the rest
97102 return explode ($ delim , $ column_names );
@@ -109,13 +114,21 @@ protected function parseRecords(Session $rets, &$xml, $parameters, Results $rs)
109114 protected function parseRecordFromLine (Session $ rets , &$ xml , $ parameters , &$ line , Results $ rs )
110115 {
111116 $ delim = $ this ->getDelimiter ($ rets , $ xml , $ parameters );
117+ $ delimLength = strlen ($ delim );
112118
113119 $ r = new Record ;
114- $ field_data = (string )$ line ;
120+ $ field_data = (string ) $ line ;
121+
122+ // Take out the first delimiter
123+ if (substr ($ field_data , 0 , $ delimLength ) == $ delim ) {
124+ $ field_data = substr ($ field_data , $ delimLength );
125+ }
126+
127+ // Take out the last delimiter
128+ if (substr ($ field_data , -$ delimLength ) == $ delim ) {
129+ $ field_data = substr ($ field_data , 0 , -$ delimLength );
130+ }
115131
116- // split up DATA row on delimiter found earlier
117- $ field_data = preg_replace ("/^ {$ delim }/ " , "" , $ field_data );
118- $ field_data = preg_replace ("/ {$ delim }\$/ " , "" , $ field_data );
119132 $ field_data = explode ($ delim , $ field_data );
120133
121134 foreach ($ rs ->getHeaders () as $ key => $ name ) {
0 commit comments