Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP: Wert nur in bestimmter Zeile erhöhen

Frage Entwicklung PHP

Mitglied: Sven32

Sven32 (Level 1) - Jetzt verbinden

07.12.2014 um 13:36 Uhr, 1016 Aufrufe, 7 Kommentare

Hallo Zusammen,

ich habe mir ein kleines Script gebastelt, dass mir in einer Textdatei die als Datenbank fungiert
einen Wert hochzählt. Das heißt jedesmal wenn diese PHP-Datei aufgerufen wird, wird in der Datenbank
fürs aktuelle Jahr, eine Zahl um einen Zähler erhöht. Ansich funktioniert soweit erst einmal alles so
wie gewünscht, allerdings schaffe ich es nicht das Script dazu zu bringen nur Zeile 16 zu ändern
bzw. hochzuzählen, alles andere in der Textdatei soll unverändert bleiben.
Wie ich einen Wert aus Zeile 16 auslesen kann weiß ich bereits aber ich bekomme mein Script einfach
nicht so angepasst das, dass von mir gewünschte Ergebniss eintritt.
Ich hoffe das mir jemand von euch weiterhelfen kann.

Hier mein bisheriges Script


<?php
$datei= "Datenbanken/Datenbank ". date('Y').".txt";
$stellen = 5;
if(file_exists($datei)){
$fp=fopen($datei,"r+");
$zahl=fgets($fp,$stellen);
$zahl++;
rewind($fp);
flock($fp,2);
fputs($fp,$zahl,$stellen);
flock($fp,3);
fclose($fp);
}else{
// do nothing
}
?>


Herzlichen Dank für eure Hilfe.
Sven
Mitglied: certifiedit.net
07.12.2014 um 14:01 Uhr
Hallo Sven,

warum nicht ein "strukturierteres" Format wie XML ovgl.?

Beste Grüße,

Christian
certified IT
Bitte warten ..
Mitglied: Sven32
07.12.2014 um 14:45 Uhr
Hallo Christian

An sich ist das bestimmt ein guter Lösungsansatz nur ist es in meinem Fall so,
dass ich nur ein bestehendes System bearbeite bzw. pflege und da möchte ich die
Strukturen so weit es geht beibehalten.
Zumal ich nicht der Einzige bin der auf diese Textbasierten Datenbanken zugriff
hat, also einfach umstellen auf etwas anderes ist hier leider nicht so einfach.

Mann müsste halt mal komplett alles überarbeiten aber du weißt ja wie das bei
manchen Firmen ist, da werden bestimmte Dinge immer wieder hinausgeschoben
und hinausgeschoben bis irgendwann mal was passiert oder eben nichts mehr geht
und dann werden plötzlich alle ganz schnell
Bitte warten ..
Mitglied: certifiedit.net
07.12.2014 um 15:00 Uhr
Deswegen machst du dich selbst zum kleinsten Teil, dass nur in seinem Mausrädchen rennt? ;)
Bitte warten ..
Mitglied: colinardo
LÖSUNG 07.12.2014, aktualisiert um 17:09 Uhr
Hallo Sven,
da gibt es mehrere Möglichkeiten, das wäre z.B. eine Methode:
01.
<?php 
02.
$datei= "Datenbanken/Datenbank ". date('Y').".txt"
03.
if (file_exists($datei)){ 
04.
        // Datei in ein Zeilenarray zerlegen 
05.
  	$lines = file($datei); 
06.
        // Wert der Zeile 16 um eins erhöhen 
07.
  	$lines[15] = (doubleval($lines[15]) + 1) . "\r\n"
08.
        // gendertes Array wieder in die Datei zurückschreiben 
09.
  	file_put_contents($datei,join("",$lines)); 
10.
11.
?>
Grüße Uwe
Bitte warten ..
Mitglied: Sven32
07.12.2014, aktualisiert um 16:23 Uhr
Hallo Uwe,

vielen Dank für die schnelle Hilfe
Das ist genau wonach ich gesucht habe, allerdings bekomme ich jetzt nach
der erhöhten Zahl so ein Symbol [] und direkt dahinter die nächsete Zahl.

Hier ein Beispiel

Voher

15
16
17

Nachher

15
17[]17
18

Liegt das womöglich an meiner Textdatei ( Formatierung ) oder ist das aufgrund
des Scriptes so ?
Bitte warten ..
Mitglied: colinardo
LÖSUNG 07.12.2014, aktualisiert um 17:10 Uhr
Liegt das womöglich an meiner Textdatei ( Formatierung ) oder ist das aufgrund
des Scriptes so ?
Hmm hier läuft es einwandfrei, da muss bei dir irgendwas nicht stimmen.
Womit schaust du das File an ? Mit Notepad unter Windows ? Dann brauchst du stattdessen einen DOS Zeilenumbruch "\r\n" hinter dem hochgezählten Wert, Zeile 7.

Datei-Kodierung ?(ASCII/UTF8/etc.)
Bitte warten ..
Mitglied: Sven32
07.12.2014 um 16:58 Uhr
Sorry, du hast natürlich recht.
Ich habs vorhin in XAMPP kurz getestet und das läuft hier unter Windows
und da lag das öffnen mit Notepad nahe.

Danke nochmals für deine Hilfe
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
PHP
MySQL-Abfrage mit php: Wert + true bzw. false (2)

Frage von tomolpi zum Thema PHP ...

PHP
gelöst Php regex und Array (5)

Frage von Thomas91 zum Thema PHP ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...