Ik ben bezig met een conversie script, verschillende conversies binnen een bestand lukken al aardig alleen loop ik tegen een probleem aan met iets. Wie heeft er een oplossing? In de code staat de vraag...

<?php

$uploaddir = './';
$uploadfile = $uploaddir . basename($_FILES['bestandnaam']['name']);


$patroon1 = ';';
$vervanging1 = ',';

$patroon2 = '070-342';
$vervanging2 = '';

$patroon3 = ', ';
$vervanging3 = ',';

$patroon4 = '06-';
$vervanging4 = '006';

// hoe kan ik in patroon5 het min teken verwijderen?

$patroon5 = '[0-9]{3,4}-';
$vervanging5 = '0\\0';


if (move_uploaded_file($_FILES['bestandnaam']['tmp_name'], $uploadfile))



{
$bestand = file($uploadfile);

foreach($bestand as $regel)

{
echo "<pre>";
echo $regel;
echo "<BR>";
$regel = eregi_replace($patroon1, $vervanging1, $regel);
$regel = eregi_replace($patroon2, $vervanging2, $regel);
$regel = eregi_replace($patroon3, $vervanging3, $regel);
$regel = eregi_replace($patroon4, $vervanging4, $regel);
$regel = eregi_replace($patroon5, $vervanging5, $regel);
echo $regel;
echo "<BR>";
echo "</pre>";
}
}

else

{
echo "Probleempje";
}
?>
Sluit je code nog even af met ?>, dat zorgt dat er een mooi code-boxje wordt neergeplakt.

Volgens mij kun je die - gewoon uit de string backspacen?
Bedankt voor de reactie PrinceJezpur,

Ik heb het opgelost door preg_replace te gebruiken. Achteraf vond ik het makkelijker om daar de patronen in te maken en belangrijker, de vervanging te doen.

<?php
// uit de regel moet 030-2000000 veranderd worden in 00302000000

$regel = "EXXXX;X.X.H.A.;dXX; ; ;XX;XXXXX/P-XXX;XX 2.00;070-3000000;030-2000000";

$patroon5 = '/(\d{3,4})(-)(\d{4,7})/i';
$vervanging5 = '0${1}${3}';


$regel = preg_replace($patroon5, $vervanging5, $regel);

?>

Zo werkt het script wel.

Olaf.

Reageren