PDA

Bekijk Volledige Versie : middagje vloeken



Matthijs de Z
02/10/04, 16:15
Hallo,

van de week vroeg ik naar een plan van aanpak om wat data over te zetten
(zie onderwerp "plan van aanpak" gepost op 30 september om 19:31 Message-ID:
<cjhft9$304u$1@nl-news.euro.net>)

Vandaag heb ik me op het probleemgestort, hetgeen resulteerde in enige
frustratie en php blindheid.
Ik heb in de directory http://www.beursanalyse.info/probeersel/ wat file
geplaatst. Namelijk de file data.txt (die moet worden gebruikt als bron), de
file "datanew.txt" die gebruikt moet worden om de aangepaste data in op te
slaan en de file "vervangreeksen.txt" die de gegevens bevat van wat er moet
worden vervangen en door wat.

Ook staat er een file data4.php (zie ook data4-php.txt) met het script dat
ik tot op heden heb gemaakt. Maar jullie raden het al....het werkt niet.

Het eerste wat mij al bevreemde, is dat $repl geen waarde heeft....
Dat niet alles vervangen wordt...
en dat het niet wordt weggeschreven...

Al met al, ik kon mijn lol weer op vandaag.
Wie zou er zo vriendelijk willen zijn even een verse blik te werpen op het
probleem.
groeten,

Matthijs

Daniel Tryba
02/10/04, 18:15
Matthijs de Z <haalallesvoorhetstreepjeplushetstreepjezelfweg-mldz@hotmail.com> wrote:
> Het eerste wat mij al bevreemde, is dat $repl geen waarde heeft....
> Dat niet alles vervangen wordt...
> en dat het niet wordt weggeschreven...

Zet error reporting op E_ALL... Staar vervolgens goed naar deze 2
regels:
$orig = $opsplitsen[0];
$repl = $opsplisten[1];

Zoek de verschillen.

> Al met al, ik kon mijn lol weer op vandaag.
> Wie zou er zo vriendelijk willen zijn even een verse blik te werpen op het
> probleem.

Andere minpuntjes:

-fgets bevalt de \r\n indien aanwezig. $repl bevat die dus (dat wil je
niet)
-je doorloopt de files onnodig vaak. Mijn voorstel was om de $orig/$repl
van jou in 2 arrays te stoppen en die te gebruien voor de str_replace
zodat je maar 1 keer door de file hoeft te lopen.
-Dingen als '(",".$orig.",",",".$repl.",",$inhoudopschonen)' zijn niet
echt leesbaar: '(",$orig,",",$repl,",$inhoudopschonen)' is al beter.
-genoemde str_replace werkt dus niet voor eerste of laatste element van
een regel.

--

Daniel Tryba

Matthijs de Z
02/10/04, 18:45
> Zet error reporting op E_ALL... Staar vervolgens goed naar deze 2
> regels:
> $orig = $opsplitsen[0];
> $repl = $opsplisten[1];

ai...typisch geval van iets te veel naar het beeldscherm staren...

> Andere minpuntjes:
>
> -fgets bevalt de \r\n indien aanwezig. $repl bevat die dus (dat wil je
> niet)

Ik gooi er een trim overheen

> -je doorloopt de files onnodig vaak. Mijn voorstel was om de $orig/$repl
> van jou in 2 arrays te stoppen en die te gebruien voor de str_replace
> zodat je maar 1 keer door de file hoeft te lopen.

vanavond of morgen bouw ik het script om. Kijken of het idee dat ik nu heb
beter is.

> -Dingen als '(",".$orig.",",",".$repl.",",$inhoudopschonen)' zijn niet
> echt leesbaar: '(",$orig,",",$repl,",$inhoudopschonen)' is al beter.

> -genoemde str_replace werkt dus niet voor eerste of laatste element van
> een regel.

blijkbaar, maar waarom niet?? het zit toch gewoon in de string?
groeten,

Matthijs


>
> --
>
> Daniel Tryba
>

Matthijs de Z
02/10/04, 19:15
> > -genoemde str_replace werkt dus niet voor eerste of laatste element van
> > een regel.
>
> blijkbaar, maar waarom niet?? het zit toch gewoon in de string?
> groeten,

Ja....duh....vanwege de comma's aan beide kanten ;-)

Matthijs de Z
03/10/04, 15:25
Hoi,

Ik heb de file totaal anders geschreven en hij doet nu wat ik wil. Ben
alleen benieuwd of ie het ook doet met veel data.
Op http://www.beursanalyse.info/probeersel staan de file.
Bedankt voor de tips.
mazzel,

Matthijs

Daniel Tryba
04/10/04, 13:55
Matthijs de Z <haalallesvoorhetstreepjeplushetstreepjezelfweg-mldz@hotmail.com> wrote:
> Op http://www.beursanalyse.info/probeersel staan de file.

Nog een paar nutteloze regels te bespeuren:

$tel = 1 + $tel;
$orig[$tel] = trim($opsplitsen[0]);
$repl[$tel] = trim($opsplitsen[1]);

kan je vervangen door:

$orig[]=...
$repl[]=...

en

for ($telvervang = 1; $telvervang <= $tel; $telvervang++)
{
$vervang = str_replace("$orig[$telvervang],","$repl[$telvervang],",$inhoudopschonen);
$inhoudopschonen = $vervang;
}

Is het zelfde als
$inhoudopschonen=str_replace($orig,$repl,$inhoudop schonen);

(mits je natuurlijk de commas toevoegt aan de elementen in het array)

--

Daniel Tryba

Matthijs de Z
04/10/04, 14:35
> Nog een paar nutteloze regels te bespeuren:
>
> $tel = 1 + $tel;
> $orig[$tel] = trim($opsplitsen[0]);
> $repl[$tel] = trim($opsplitsen[1]);
>
> kan je vervangen door:
>
> $orig[]=...
> $repl[]=...
>
> en
>
> for ($telvervang = 1; $telvervang <= $tel; $telvervang++)
> {
> $vervang =
str_replace("$orig[$telvervang],","$repl[$telvervang],",$inhoudopschonen);
> $inhoudopschonen = $vervang;
> }
>
> Is het zelfde als
> $inhoudopschonen=str_replace($orig,$repl,$inhoudop schonen);
>
> (mits je natuurlijk de commas toevoegt aan de elementen in het array)

OK, bedankt. Heb vandaag het script in de oude stijl gebruikt (scheelde me
een hoop handmatig werk), maar als het beter kan, dan kan het beter. Dus ik
zal de veranderingen toevoegen. Bedankt voor de tips.
Groeten,

Matthijs

>
> --
>
> Daniel Tryba
>