Depricated function ereg_replace is depricated
Met de komst van php5.3 moet onderstaande php code binnen mijn site veranderd worden in preg_replace.
Ik heb al veel aanpassingen voor elkaar, maar hier kom ik dus momenteel niet uit.
De regel:
$field = ereg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
En de regel:
$field = ereg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
Heb ik gewijzigd in:
$field = preg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
en in:
$field = preg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
Maar nu moeten de backslashes /nog op de juiste plaats komen.
Helaas is mijn php kennis niet voldoende dit probleem op te lossen.
Enige hulp zou fijn zijn.
FOUTMELDING:
Warning: preg_replace() [function.preg-replace]: No ending delimiter '"' found in...../../../..
Groet.
Ik heb al veel aanpassingen voor elkaar, maar hier kom ik dus momenteel niet uit.
De regel:
$field = ereg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
En de regel:
$field = ereg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
Heb ik gewijzigd in:
$field = preg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
en in:
$field = preg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
Maar nu moeten de backslashes /nog op de juiste plaats komen.
Helaas is mijn php kennis niet voldoende dit probleem op te lossen.
Enige hulp zou fijn zijn.
FOUTMELDING:
Warning: preg_replace() [function.preg-replace]: No ending delimiter '"' found in...../../../..
Groet.
Gesponsorde koppelingen:
Houd er rekening mee dat de syntax van je reguliere expressie anders is bij preg_match(). Zie: http://nl2.php.net/manual/en/reference.pcre.pattern.syntax.php
Volgens mij kun je dit ook met str_replace() doen.
Een Perl regular expressie heeft overigens een begin en eind delimiter. Meestal een zelfde teken.
B.v.:
/aap/ = matched aap in een tekst
/a+p/ = matched ook aap maar ook ap, aaap, aaaap, etc
/a+p/i = matched ook aap maar ook ap of aAap, aaaap, etc (hoofdletter ongevoelige versie, van die hier boven)
Een Perl regular expressie heeft overigens een begin en eind delimiter. Meestal een zelfde teken.
B.v.:
/aap/ = matched aap in een tekst
/a+p/ = matched ook aap maar ook ap, aaap, aaaap, etc
/a+p/i = matched ook aap maar ook ap of aAap, aaaap, etc (hoofdletter ongevoelige versie, van die hier boven)
Gewijzigd op 18/06/2010 18:05:58 door Martijn B
Ik heb een backslash geplaatst in onderstaande regel:
$field = preg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
Bij:
$field = preg_replace ("/\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
Wellicht is het niet zo eenvoudig, maar nu geeft de foutmelding aan dat er nog maar 1 1 backslash nodig is.
$field = preg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
Bij:
$field = preg_replace ("/\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
Wellicht is het niet zo eenvoudig, maar nu geeft de foutmelding aan dat er nog maar 1 1 backslash nodig is.
Maar zoals ik typte je kunt ook:
Is ook nog sneller ook...
Gewijzigd op 18/06/2010 17:59:01 door Martijn B
Misschien is het handig de hele php code te publiceren, ik wist dat er een begin en een eind delimiter in moet, maar waar............daar kom ik dus niet uit.
******************************************************************
$field = preg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
{if (strrpos($csv_accum,chr(10)) == (strlen($csv_accum)-1)) $csv_accum .= "\"" . $field . "\"";
else $csv_accum .= "," . "\"" . $field . "\""; };
$link = '<a href="' . tep_href_link(FILENAME_ALL_CUSTOMERS, 'orderby=' . $order_criteria .'&sorted='. $to_sort) . '" class="headerLink">' . $title . '</a>';
return $link;
}
// Produce CSV string for output
function mirror_out ($field) {
global $csv_accum;
echo $field;
$field = strip_tags($field);
$field = preg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
{if (strrpos($csv_accum,chr(10)) == (strlen($csv_accum)-1)) $csv_accum .= "\"" . $field . "\"";
else $csv_accum .= "," . "\"" . $field . "\""; };
return;
*********************************************************
******************************************************************
$field = preg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
{if (strrpos($csv_accum,chr(10)) == (strlen($csv_accum)-1)) $csv_accum .= "\"" . $field . "\"";
else $csv_accum .= "," . "\"" . $field . "\""; };
$link = '<a href="' . tep_href_link(FILENAME_ALL_CUSTOMERS, 'orderby=' . $order_criteria .'&sorted='. $to_sort) . '" class="headerLink">' . $title . '</a>';
return $link;
}
// Produce CSV string for output
function mirror_out ($field) {
global $csv_accum;
echo $field;
$field = strip_tags($field);
$field = preg_replace ("\"","\"\"",$field);
if ($csv_accum=='') $csv_accum= "\"" . $field . "\"";
else
{if (strrpos($csv_accum,chr(10)) == (strlen($csv_accum)-1)) $csv_accum .= "\"" . $field . "\"";
else $csv_accum .= "," . "\"" . $field . "\""; };
return;
*********************************************************
Sorry we typen tegen elkaar in.
Ik zal mn mond houden...........
Ik zal mn mond houden...........
Ok, dan ook een voorbeeldje met gequote strings:
De 1e parameter is de regex.
Sommige mensen vinden het fijn om ~ als delimiter te gebruiken.
Dus dit kan ook:
De 1e parameter is de regex.
Sommige mensen vinden het fijn om ~ als delimiter te gebruiken.
Dus dit kan ook:
Gewijzigd op 18/06/2010 18:11:01 door Martijn B
Dank je wel Martijn.
Ik heb de functie "voorbeeldje met gequote strings:"
gebruikt, en deze werkt perfect.
Ik heb inmiddels bijna alle fouten uit de shop, voorlopig nog 2 te gaan.
Maar daar ga ik eerst weer zelf naar zoeken, zo leer je elke keer weer wat.
Nogmaals bedankt voor je tijd en aandacht!!
Ik heb de functie "voorbeeldje met gequote strings:"
gebruikt, en deze werkt perfect.
Ik heb inmiddels bijna alle fouten uit de shop, voorlopig nog 2 te gaan.
Maar daar ga ik eerst weer zelf naar zoeken, zo leer je elke keer weer wat.
Nogmaals bedankt voor je tijd en aandacht!!
Waarom negeer je de opmerkingen dat je geen regular expression hier nodig hebt? Je vervangt het ene teken met 2 andere tekens. str_replace kan dat prima, en nog veel sneller ook....
Ik heb de opmerking niet zozeer genegeerd, en zeker gelezen en opgeslagen in mijn Brein.
Mijn prioriteit was de productiesite zo snel mogelijk weer draaiende te krijgen.
Dit is gelukt door een van de oplossingen die geboden werd.
Allemaal bedankt voor jullie reacties en hulp, de overige 2 problemen heb ik inmiddels zelf opgelost.
Mijn prioriteit was de productiesite zo snel mogelijk weer draaiende te krijgen.
Dit is gelukt door een van de oplossingen die geboden werd.
Allemaal bedankt voor jullie reacties en hulp, de overige 2 problemen heb ik inmiddels zelf opgelost.



