Cronjob script - numbers changer (txt)
Ik heb een script gemaakt die een output in TXT geeft.
door de omvang van de website kan dit niet veranderd worden naar een database of dergelijke.
Dit txt bestandje bevat een nummer.
domein. /name.txt
Als je dit text bestandje opent staat er een nummer 2,3,4 of 5 in.
en ik wil dit nummer met bijv. een cronjob script om een specifiek tijdstip aanpassen.
Nummer 2 moet veranderd worden naar 4 en nummer 3 naar 2.
overzicht van nummers:
2 => 4
3 => 2
4 => 4
5 => 5
Hoe kan ik dit automatisch laten aanpassen steeds om een specifiek tijdsstip bijv. om 01:00
En dan is het een kwestie van str_replace uitvoeren in een foreach.
Ik snap welke richting je opwil maar snap niet helemaal hoe ik dat nou in de praktijk moet doen...
Gewijzigd op 28/05/2020 15:15:55 door - Ariën -
Die moet je dus doorlopen met foreach() { ..}
En per lijn kan je de nummers aanpassen.
2 => 4
4 => 4
4 => 4
4 => 4
enz
Of zie ik het verkeerd?
Maar wat is de reden achter deze opmerkelijke opslagmethode?
Misschien valt hier het één en ander aan te verbeteren?
Gewijzigd op 25/05/2020 21:22:01 door - Ariën -
Rob Doemaarwat op 25/05/2020 21:12:01:
Volgens mij ga je vastlopen:
2 => 4
4 => 4
4 => 4
4 => 4
enz
Of zie ik het verkeerd?
2 => 4
4 => 4
4 => 4
4 => 4
enz
Of zie ik het verkeerd?
Nouja als je op 4 komt hoeft hij idd niet veranderd te worden en mag hij dus blijven staan op 4.
Het is voor een spelletje STD kom je terecht op lvl 1. heb je betaald (ingame money) zet ik die gene over naar lvl 2. Dan moet ie dagelijks op een button klikken. die hem automatisch naar lvl 3 brengt. maar om die button de volgende dag ook weer te gebruiken moet ie daarvoor terug gebracht worden naar lvl 2. zodat je dat elke dag kan doen. en vergeet je een dag te klikken kom je automatisch naar lvl 4. en lvl 4 is game over. en moet je opnieuw betalen om opnieuw te kunnen beginnen. (en bij betaling doe ik het handmatig) maar de rest wil ik graag automatisch hebben.
Maar houd je die levels per gebruiker bij in een textbestand? Kan dat niet in een database?
Gewijzigd op 28/05/2020 15:16:05 door - Ariën -
Jij hebt het toch in beheer? Dit klinkt als een ranzige workaround wat je wilt bereiken.
En sla je dit nou op per gebruiker?
- Ariën - op 25/05/2020 21:43:32:
Ik zie nog steeds geen reden waarom je geen database kan gebruiken? Is het script encoded soms?
Jij hebt het toch in beheer? Dit klinkt als een ranzige workaround wat je wilt bereiken.
En sla je dit nou op per gebruiker?
Jij hebt het toch in beheer? Dit klinkt als een ranzige workaround wat je wilt bereiken.
En sla je dit nou op per gebruiker?
Jah het spel en site heb ik in beheer.
Maar de enige info die ik uit het spel kan halen is een Nickname.
verder kan ik alleen de HTML pagina aanpassen van het spel.
Theoretisch kan het wel in een database maar dan zou ik het reeds gemaakte script volledig moeten omgooien. en Helaas zijn mijn skills daarin zeer beperkt.
Het script die de automatische txt met nummers aanmaakt heeft de scripter van de game ooit een keer gemaakt voor mij zodat spelers op mijn site doormiddel van PHP en css de layout konden veranderen. en dat zelfde script gebruik ik nu voor een nieuw spel element wat ik heb bedacht.
alleen werkt het nog niet helemaal zoals ik wil dus.
Nu moet ik bijna alles handmatig gaan doen dagelijks. terwijl als ik dit script werkend kan krijgen ik maar 1 keer per week een enkele handeling hoef te doen.
Een tabelletje extra, een paar queries en je bent er.
Maar aan de hand van dit moet je toch wel wat kunnen lijkt me?
Kijk wat er in $line staat, en doe een str_replace()
Ook hoop ik dat /files/ niet direct toegankelijk is. Het lijkt mij niet de bedoeling als iemand de databestanden zelf kan uitlezen? Overweeg eens sterk of ze die anderzijds ook buiten je webroot kan plaatsen.
2Array ( [0] => 4 )
2 wordt dus vervangen door 4.
Maar het txt bestand blijft op 2 hangen.
en wordt dus ook niet aangepast door dit script.
ook niet nadat ik het heb laten runnen door cronjob
Gewijzigd op 26/05/2020 19:05:11 door Thomas van den Heuvel
want dat is eigenlijk wat graag wou hebben/maken
Gewijzigd op 28/05/2020 15:16:18 door - Ariën -
file_put_contents() lijkt mij het makkelijkst.
Dit is precies wat ik zocht.
en het is gelukt met een beetje creativiteit.
Heel erg bedankt allen
Gewijzigd op 28/05/2020 15:16:27 door - Ariën -
Dus los van het proces om dit aan te passen: stel er staat nu 3 in dat bestand.
Hoe komt die 3 in een variabele terecht?
mogelijke functies zijn file_get_contents(), include, file() etc.
Ik zat aan een andere oplossing te denken waarbij je mogelijk geen cronjob nodig hebt, maar dat is afhankelijk van de gebruikte ophaalmanier.
De file wordt opgehaald met; file_get_contents(...
Quote:
Een hoop quotes weggeknipt. Integraal quoten van het eerstvoorgaande bericht is niet nodig. Onderaan staat een quick-reply. Alvast bedankt.
Gewijzigd op 28/05/2020 15:17:39 door - Ariën -
Bijvoorbeeld:
RewriteRule path/*.txt script.php [L]
en als simpel voorbeeld, kan script.php dan bevatten
Voor wie of wat dan http://site.nl/path/naam.txt aansprak, lijkt het dan of naam.txt gewoon 123 bevatte.
En in plaats van alleen maar echo 123, kun je natuurlijk een hele structuur bedenken dat de output bijvoorbeeld 12.5 is als het voor 10 uur 's ochtends is,
je tussen 10 en 12 iets uit een database haalt of later op de dag de koers van de dollar.
Maar dat gaat alleen op, als je een url gebruikt.