Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13309
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από EneMe » 20 Οκτ 2009 13:40

Μιας και δεν έχω ιδέα από php, ζητάω πάλι την βοήθειά σας! :oops:

Αντί για βάση δεδομένων, έχω ένα αρχείο txt της μορφής "ΥΥΥΥΜΜDD data", δηλαδή κάπως έτσι:

Κώδικας: Επιλογή όλων

20091001 ΑΛΦΑ
20091002 ΒΗΤΑ
20091003 ΓΑΜΜΑ
20091004 ΔΕΛΤΑ
κλπ
κλπ
Πώς γίνεται να διαβάζεται η ανάλογη εγγραφή με βάση την ημερομηνία και να εκτυπώνεται μόνο το σχόλιο;

Πχ:
Σήμερα η επιλογή είναι ΑΛΦΑ.
Το αρχείο txt θα αλλάζει κάθε μηνα, οπότε επελέγη αυτή η μορφή για λόγους ευχρηστίας και να μην πάει "τσάμπα" η βάση.

Αν υπάρχει άλλη μορφή που πρέπει να έχει το txt, πείτε μου, απλά θεώρησα ότι αφού το πλάτος ημερομηνίας είναι σταθερό (8 χαρακτήρες) αυτή η μορφή είναι εύχρηστη. Αν πρέπει να βάλω κόμματα ή κάτι άλλο, πείτε μου να το αλλάξω.

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από ThyClub » 20 Οκτ 2009 13:56

Κώδικας: Επιλογή όλων

<?php
$file = file&#40;'path/to/txt.txt'&#41;;
foreach&#40;$file as $line&#41;&#123;
	$expl = explode&#40;" ",$line&#41;;
	$date = $expl&#91;0&#93;&#91;0&#93;.$expl&#91;0&#93;&#91;1&#93;.$expl&#91;0&#93;&#91;2&#93;.$expl&#91;0&#93;&#91;3&#93;."/".$expl&#91;0&#93;&#91;4&#93;.$expl&#91;0&#93;&#91;5&#93;."/".$expl&#91;0&#93;&#91;6&#93;.$expl&#91;0&#93;&#91;7&#93;;
	if&#40;date&#40;"Y/m/d"&#41;==$date&#41;&#123;
		echo "The value for today is &#58;".$expl&#91;1&#93;;
	&#125;
&#125;
?>

Άβαταρ μέλους
greekbytes
WebDev Moderator
Δημοσιεύσεις: 2438
Εγγραφή: 15 Νοέμ 2002 15:42
Τοποθεσία: Αθήνα
Επικοινωνία:

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από greekbytes » 20 Οκτ 2009 14:05

Κώδικας: Επιλογή όλων

<?php 
$phrases = file&#40;"phrases.txt"&#41;;  
$today = date&#40;"Ymd"&#41;;
foreach&#40;$phrases AS $key => $data&#41; &#123; 
    $data = trim&#40;$data&#41;;
    if &#40;substr&#40;$data, 0, 8&#41;==$today&#41;&#123;
        echo substr&#40;$data, 9&#41;;
    &#125;
&#125;
?>
(το έγραφα κι εγώ εντωμεταξύ... ας υπάρχει κι αυτό) :P
Τελευταία επεξεργασία από το μέλος greekbytes την 20 Οκτ 2009 15:48, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από fafos » 20 Οκτ 2009 15:06

greekbytes to diko sou thelei kai mia trim gia kalo kai gia kako.. milao ex peiras dioti thn eixa pathsei se kati paromoio kai 2 hmeres epsaxna na vro ti ftaiei.. :lol:
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
greekbytes
WebDev Moderator
Δημοσιεύσεις: 2438
Εγγραφή: 15 Νοέμ 2002 15:42
Τοποθεσία: Αθήνα
Επικοινωνία:

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από greekbytes » 20 Οκτ 2009 15:48

Χεχε πολύ σωστός! κάνω ένα edit ;)

Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13309
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από EneMe » 20 Οκτ 2009 17:58

Ευχαριστω!

Θα το δοκιμάσω το συντομότερο δυνατόν και θα σας το δείξω -αν δουλέψει- για να πάρετε ιδέες! ;)

Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13309
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από EneMe » 20 Οκτ 2009 22:47

Φαίνεται να δουλεύει, αλλά μου βγάζει καλικατζούρια!

Τι κωδικοποίηση πρέπει να έχει το txt???

Στο ANSI μου έβγαζε άσχετους χαρακτήρες, ενώ στο UTF8 δεν βγάζει τίποτα...

Το site είναι joomla, utf8 :(

edit: Δοκίμασα και τις 4 κωδικοποιήσεις, καμία δεν δείχνει τίποτα, εκτός από την ANSI: &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;

Tώρα; Κάποιο άλλο είδος αρχείου κειμένου;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από fafos » 20 Οκτ 2009 22:51

EneMe έγραψε:Φαίνεται να δουλεύει, αλλά μου βγάζει καλικατζούρια!

Τι κωδικοποίηση πρέπει να έχει το txt???

Στο ANSI μου έβγαζε άσχετους χαρακτήρες, ενώ στο UTF8 δεν βγάζει τίποτα...

Το site είναι joomla, utf8 :(
an douleueis me tou greekbytes allakse to substr me mb_substr (se utf kodikopoihsh)
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13309
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από EneMe » 20 Οκτ 2009 22:55

Το έκανα έτσι:

Κώδικας: Επιλογή όλων

<?php
$phrases = file&#40;"phrases.txt"&#41;;
$today = date&#40;"Ymd"&#41;;
foreach&#40;$phrases AS $key => $data&#41; &#123;
$data = trim&#40;$data&#41;;
if &#40;mb_substr&#40;$data, 0, 8&#41;==$today&#41;&#123;
echo mb_substr&#40;$data, 9&#41;;
&#125;
&#125;
?>
με το txt σε utf-8 και δεν δείχνει τίποτα... :-?

edit: Και με του ThyClub, πάλι τίποτα...


Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από fafos » 20 Οκτ 2009 23:46

auto mou douleuei (ola ta arxeia se utf-8 xoris BOM):

Κώδικας: Επιλογή όλων

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
</head>
<body><?php
$phrases = file&#40;"test.txt"&#41;;
$today = date&#40;"Ymd"&#41;;
foreach&#40;$phrases AS $key => $data&#41; &#123;
$data = trim&#40;$data&#41;;
if &#40;mb_substr&#40;$data, 0, 8&#41;==$today&#41;&#123;
echo mb_substr&#40;$data, 9&#41;;
&#125;
&#125;
?></body>
</html>
kai to txt:

Κώδικας: Επιλογή όλων

20091001 ΑΛΦΑ
20091020 SHMERA
20091003 ΓΑΜΜΑ
20091004 ΔΕΛΤΑ 

mou emfanizei to SHMERA


kai tou Thy:

Κώδικας: Επιλογή όλων

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
</head>
<body><?php
$file = file&#40;'test.txt'&#41;;
foreach&#40;$file as $line&#41;&#123;
   $expl = explode&#40;" ",$line&#41;;
   $date = $expl&#91;0&#93;&#91;0&#93;.$expl&#91;0&#93;&#91;1&#93;.$expl&#91;0&#93;&#91;2&#93;.$expl&#91;0&#93;&#91;3&#93;."/".$expl&#91;0&#93;&#91;4&#93;.$expl&#91;0&#93;&#91;5&#93;."/".$expl&#91;0&#93;&#91;6&#93;.$expl&#91;0&#93;&#91;7&#93;;
   if&#40;date&#40;"Y/m/d"&#41;==$date&#41;&#123;
      echo "The value for today is &#58;".$expl&#91;1&#93;;
   &#125;
&#125;
?></body>
</html>
mou emanizei: The value for today is :SHMERA
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13309
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από EneMe » 20 Οκτ 2009 23:53

Άλλαξες τίποτα στους κώδικες; Δεν νομίζω, ε;

Για την κωδικοποίηση δεν το κατέχω... Τι εννοείς UTF-8 χωρίς BOM?

Πώς το πετυχαίνω;

Υγ: Από την στιγμή που με ANSI μου έβγαλε κατι, τότε μάλλον δουλεύει καλά... Με το txt δεν ξέρω τι να κάνω...

Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13309
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από EneMe » 21 Οκτ 2009 00:06

Κατέβασα το Notepad++, το έκανα UTF-8 χωρίς BOM και δούλεψε!

Σας υπερευχαριστώ!!!

Πάω να το τελειοποιήσω!!!! :D

Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13309
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από EneMe » 21 Οκτ 2009 00:18

Το χρησιμοποίησα εδώ: www.amfissapress.gr κάτω δεξιά στο εφημερεύον πρατήριο καυσίμων.

Περιμένω να πάει 12, να το δω να αλλάζει! :P

Σύντομα θα πάρω και την λίστα φαρμακείων να κάνω το ίδιο!

Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13309
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

Ανάγνωση από txt και εμφάνιση εγγραφής από ημερομηνία

Δημοσίευση από EneMe » 08 Νοέμ 2009 18:00

Θέλω να χρησιμοποιήσω τον ίδιο κώδικα σε άλλο σημείο, ΧΩΡΙΣ να υπάρχει και να μας απασχολεί το έτος.

Έχω αυτό που μου είχατε δώσει:

Κώδικας: Επιλογή όλων

<?php
$phrases = file&#40;"file.txt"&#41;;
$today = date&#40;"Ymd"&#41;;
foreach&#40;$phrases AS $key => $data&#41; &#123;
$data = trim&#40;$data&#41;;
if &#40;mb_substr&#40;$data, 0, 8&#41;==$today&#41;&#123;
echo mb_substr&#40;$data, 9&#41;;
&#125;
&#125;
?>
Tα νέα δεδομένα είναι στο αντίστοιχο txt αρχεί με την μορφή:
ΜΜDD data.

Θεώρησα ότι το μόνο που πρέπει να αλλάξω είναι αυτό:

Κώδικας: Επιλογή όλων

$today = date&#40;"Ymd"&#41;;
σε αυτό:

Κώδικας: Επιλογή όλων

$today = date&#40;"md"&#41;;
Έχω δίκιο;

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες