Προς το περιεχόμενο

PeLLaRaS

Members
  • ΜΗΝΥΜΑΤΑ FORUM

    377
  • ΜΕΛΟΣ

  • ΤΕΛ. ΕΠΙΣΚΕΨΗ

Σχετικά με PeLLaRaS

  • Ημερομηνία γέννησης 28/09/1986

ΑΛΛΑ

  • Τοποθεσία
    Πάτρα

Πρόσφατες Επισκέψεις

Η εμφάνιση επισκεπτών είναι απενεργοποιημένη ή δεν έχετε πρόσβαση σε αυτή.

PeLLaRaS's Achievements

  1. Η/Υ Ιωαννίνων είναι καινούργιο τμήμα. Της Πάτρας είναι από τα παλαιότερα (αν όχι το παλαιότερο). Δική μου άποψη, μεταξύ των δύο, της Πάτρας είναι προτιμότερο. Θες 60+ μαθήματα στο CEID, υποθέτω το ίδιο και στα Ιωάννινα. Δες όμως και την πόλη, μιας και αυτός είναι ένας σημαντικός παράγοντας. Αν Ιωάννινα σου αρέσει περισσότερο σαν πόλη από ότι η Πάτρα, θα σου έλεγα να μείνεις εκεί. 5 χρόνια θα είσαι φοιτητής το ελάχιστο! Υ.Γ. Δες μια την υπογραφή μου ;-)
  2. Από amazon.co.uk: Asus AMD Radeon R9 290 DirectCU II OC Graphics Card (4GB, GDDR5, PCI Express 3.0) Η τιμή έπεσε από £293,54 σε £209,99 Με ΦΠΑ 23% και shipping έρχεται στα £225.67 ~ €293 Την είχα στο καλάθι μου και είπα να ενειμερώσω. Τιμή skroutz: €319,25
  3. Αντίστοιχο πρόβλημα συνάντησα πρόσφατα (ssd σε netbook) και μετά από αρκετό ψάξιμο στο google το πρόβλημα προκύπτει όταν το installation των windows 7 ξεκινάει να κάνεί format το partition σε NTFS. Φαίνεται ο driver που έρχεται μαζί με τα win7 installation να μην δουλεύει σωστά με τους SSD και να παγώνει το σύστημα κατά το format. Αλλού διάβασα ότι το netbook κατά την εγκατάσταση των win7 λειτουργεί σε under-clock mode, με χαμηλή τάση ρεύματος, η οποία δεν αρκεί τον SSD για να ολοκληρώσει συγκεκριμένα commands. Οι δυο λύσεις που βρήκα ήταν οι εξής: 1) Βάζεις τον SSD σε κάποιο άλλο σύστημα ως δεύτερο δίσκο και τον κάνεις format εκεί σε NTFS, ώστε να μην χρειαστεί η εγκατάσταση των win7 να το κάνει. Όταν το βάλει πίσω στο netbook, αποφεύγεις να κάνει format το partition, απλά το επιλέγεις για να γίνει η εγκατάσταση. 2) Αν δεν είναι εφικτή η πρώτη λύση, μπορείς με κάποιο linux live cd (π.χ. Ubuntu) να κάνεις format τον δίσκο ή κάποιο partitioning tool που έρχεται με boot time tools. Π.χ. με το Acronis Disk Director μπορείς να φτιάξεις ένα bootable usb με το οποίο θα τρέξεις το πρόγραμμα στο netbook για να φορμάρεις τον SSD σε NTFS Δοκίμασα και μου δούλεψε ο δεύτερος τρόπος (με το Acronis Disk Director) μιας και ήταν φασαρία να βγει και να ξαναμπεί ο δίσκος από το netbook
  4. Το script με τον curl τρέχεις; Καταρχήν ενεργοποίησε το error reporting της php για να δεις τι γίνεται. Το πιο πιθανό κάποιο σφάλμα συμβαίνει, και δεν στο εκτυπώνει λόγο ρυθμίσεων. Ξεκινάει και εκτυπώνει html και μετά στο php υπάρχει κάποιο σφάλμα.
  5. Επιτέλους!!! Έτσι πληροφοριακά και για λόγους πληρότητας, κάθε πίνακα, όπως ο $matches, μπορείς να τον προσπελάσεις στην php και με αυτό, τον βολικό τρόπο (χωρίς να θες length και counter!): > foreach ($matches[1] AS $key => $value) { echo $matches[2][$key]; echo $matches[3][$key]; ... } Όπου διαβαίνει στοιχείο - στοιχείο και θέτει το $key με το κλειδί και είναι το αντίστοιχο $i στον δικό σου κώδικα, και στο value η τιμή του στοιχείου (αν και έχοντας το κλειδί, δεν την χρησιμοποιούμε γιατί ανταποκρίνεται στην μια στήλη μόνο των δεδομένων) Τώρα αν πρόκειται για απλό πίνακα (π.χ. έχει τις μέρες της βδομάδας) τότε μπορείς απλά να γράψεις: > foreach ($weekdays AS $day) { echo $day; }
  6. Κανονικά θα έπρεπε να δουλεύει, και να βρίσκει όλα τα μαθήματα. Για κάποιο λόγο όμως, όταν ο html κώδικας για δύο μαθήματα είναι στην ίδια γραμμή, "πιάνει" μόνο το ένα. Σαν προεπιλογή το preg_match_all δουλεύει γραμμή γραμμή, ίσως για αυτό. Βολεύει όμως που είναι γραμμή γραμμή, οπόταν απλά χρειάζεται να βάλεις μια αλλαγή γραμμής σε κάθε <tr> (σειρά στον html πίνακα που περιέχει μάθημα). Το ότι στα περισσότερα θα μπει διπλή αλλαγή γραμμής δεν σε επηρεάζει σε κάτι! Ελπίζω να το εξήγησα καλά!
  7. Η χρήση του foreach της δυο πρώτες φόρες είναι λανθασμένη. Τώρα για αυτό που θες, τα δεδομένα μπορείς να τα πάρεις σε ένα preg_match_all, όπως παράδειγμα στο δεύτερο preg_match πήρες δυο δεδομένα. Είναι και πιο σωστό γιατί θα είναι αντιστοιχισμένα τα δεδομένα στο σωστό ΚΜ Τέλος, σε προηγούμενο post, σου ανέφερα πως πρέπει να αλλάζεις γραμμή για κάθε <tr> για να σου βρίσκει όλα τα μαθήματα το regex. Άμα παρατηρήσεις πως κάποια μαθήματα δεν τα "πιάνει" το regex, βρες την εντολή που παρέθεσα και βάλε την αντίστοιχα στο σωστό σημείο!
  8. Αυτά είναι! Το πείσμα κάνει θαύματα Χαίρομαι που επιτέλους δούλεψε
  9. μαλιστάαααα... για στείλε, αν θες, τους κωδικούς σου και την σελίδα με pm να δω τι παίζει με την κωδικοποίηση. (Μπορείς να αλλάξεις σε προσωρινό κωδικό και να τον επαναφέρεις πίσω )
  10. Επισήμως σηκώνω τα χέρια ψιλά Το space και το # δεν παίζει να επηρεάζουν Δοκίμασε να το φτιάξεις, χωρίς να βάλεις κάτι πριν το <td colspan αφού λες πως δουλεύει. Εσένα σε νοιάζει να πάρεις τα στοιχεία που θες. Είμαι σχεδόν σίγουρος ότι κάτι αλλοιώνετε στην εμφάνιση του browser το περιεχόμενο του curl, για αυτό και δεν φτιάχνουμε το κατάλληλο reg exp Αποθήκευσε το περιεχόμενο του curl σε ένα αρχείο κειμένου .txt και δες πως είναι στο notepad, μπας και κανένας χαρακτήρας εμφανίζετε διαφορετικά (πχ το space ως ). Επίσης δοκίμασε αυτό που σου λέει ο inkognito87
  11. Κάπου εδώ ξεκινάνε σιγά σιγά να μου τελειώνουν οι ιδέες... Το μόνο που μένει, είναι να βάλεις "χειροκίνητα" το παράδειγμα στην μεταβλητή που περνάς στο preg_match_all να δεις αν το "παίρνει". Αν ναι, τότε το πρόβλημα σου είναι στην μορφή του περιεχομένου που επιστρέφετε με τον curl. Αν όχι, τότε πιθανότατα κάποιο θέμα έχει η λογική του php script (πχ χρήση κάποιας λάθος μεταβλητής) Με το απλό: >'/<tr height="25" bgcolor="#fafafa"><td valign="top"> <img align="absbottom" src="images\/course1.gif" width="16" \/><\/td><td colspan="2" valign="top" class="topBorderLight">(.*)<span class="redfonts" \/><\/td>/' δεν δουλεύει πλέων; Edit: Σε πέτυχα σε edit πάλι! Λοιπόν δοκίμασε μια: >'/<tr height="25" bgcolor="#fafafa"><td valign="top"> <img align="absbottom" src="images\/course1.gif" width="16" \/><\/td><td colspan="2" valign="top" class="topBorderLight">(.*) (.*)<span class="redfonts" \/><\/td>/' Να δούμε τι θα κάνει. Μια υποψία πως οι παρενθέσεις είναι html escape χαρακτήρες
  12. Καλημέρα! Πρωινός και τα εγκεφαλικά μου κύτταρα δεν δουλεύουν κανονικά, οπόταν take everything with caution! Δοκίμασε αυτό: >'/<tr height="25" bgcolor="#fafafa"><td valign="top"> <img align="absbottom" src="images\/course1.gif" width="16" \/><\/td><td colspan="2" valign="top" class="topBorderLight">\(.*([0-9]{3})\) .*<span class="redfonts" \/><\/td>' Είναι διπλό το space πριν το τελευταίο .* και επίσης σου υπενθυμίζω ότι το .* είναι αρκετά γενικό για να τελειώνεις το regular expression σου με αυτό. Για αυτό και προτείνω να δοκιμάσεις με το <span class="redfonts" \/><\/td> στο τέλος! Επίσης να είσαι σίγουρος ότι ανοίγει η σελίδα και έχεις το σωστό περιεχόμενο και δεν έχει αλλάξει μορφή! Και με τα encodings ελπίζω να είναι τακτοποιημένο το θέμα!
  13. Όντως δεν είναι εγκατεστημένη και δεν ξέρω πόσο εύκολο είναι να το βάλεις ξεχωριστά στα windows. Συνεχίζεις στο linux ή ψάχνεις πως να βάλεις τον php curl στα windows
  14. Είσαι μια χαρά!!! Τουλάχιστο δούλεψε Λοιπόν, ή πρώτη στήλη σου βγάζει όλα τα κομμάτια του html κώδικα που είναι σύμφωνα με το "μοτίβο" του regular expression. Στις επόμενες στήλες σου βγάζει την χρήσιμη πληροφορία, που εσύ την ορίζεις με παρενθέσεις μέσα στο regular expression. Στο παράδειγμα είχαμε βάλει ένα απλό (.*) οπόταν επέστρεψε μόνο μια επιπλέον στήλη. Ο λόγος για τα περίεργα μετά την 17η γραμμή, είναι ότι το .* είναι πολύ γενικό! Δοκίμασε τώρα το regular expression από το προηγούμενο κώδικα που παρέθεσα, που παίρνει τις πληροφορίες που θες και εφάρμοσε το στον κώδικα που σου δούλεψε Βάλε και αυτό: >$grades_data = str_replace('<tr', "\n<tr", $grades_data); Αμέσως πριν το preg_match_all, για να φτιάξουν και αυτά τα περίεργα μετά την 17η γραμμή Μέτα καθάρισες! Αστό για άσκηση μετά τις ζέστες για να το τι κάνει ο σιδηρόδρομος του regular expression Φτάνει που είδες ότι κάνει θαύματα!!! Υ.Γ. Αν δεν καταφέρνεις να αποθηκεύσεις σε βάση δεδομένον, αρχείο κείμενου κτλ τα δεδομένα που παίρνεις, και στα εμφανίζει κινέζικα, να ξες πως φταίει το encoding :P
  15. Καταρχήν τα αρχεία php που γράφεις τον κώδικα σου, πρέπει να έχουν το ίδιο encoding με αυτό που ορίζεις στο header του html σου. Αυτό είναι ΑΝΕΞΑΡΤΗΤΟ με το encoding που έχει η σελίδα με τα μαθήματα και τους βαθμούς. Αυτός είναι ο ενδεδειγμένος τρόπος να δουλεύεις Τώρα για να κάνεις και την ζωή σου πιο εύκολη, καλό θα ήταν να δουλέψεις στο ίδιο encoding με την σελίδα της σχολής σου, για να μην παιδεύεσαι. Στα ενδότερα, δεν χρείαζεται να εκτυπώνεις την σελίδα που σου επιστρέφει το curl (υποθέτω το $grades_data περιέχει τον html κωδικά της σελίδα που επιστρέφει το curl) Δοκίμασε το εξής, πιο απλό regular expression, να δεις τι σου επιστρέφει: > //... //... //... // Μέχρι εδώ πρέπει να έχει το $grades_data τον html κώδικα του site με τους βαθμούς! Ούτε curl ούτε τροποποιήσεις φιλτραρίσματα κτλ if (preg_match_all('/<td colspan="2" valign="top" class="topBorderLight">(.*)<span class="redfonts" \/><\/td>/', $grades_data, $matches)) { //εκτυπώνω το αποτέλεσμα, απλά για να δω τι μορφή έχει ο πίνακας echo '<textarea rows="30" cols="100">'; print_r($matches); echo '</textarea>'; } else { echo 'Huston we have a problem!'; } Δοκίμασε επίσης, αν θες, να θέσεις την μεταβλητή $grades_data σε κάποιο περιεχόμενο χειροκίνητα, για να δεις πως δουλεύει και αν δουλεύει το regular expression: > $grades_data = '<span class="error">30 </span></td></tr><tr><td colspan="10" class="groupHeader">Εξάμηνο Β</td></tr><tr height="25" class="italicHeader"><td valign="top"></td><td colspan="2" valign="top">Μάθημα</td><td valign="top">Τύπος</td><td valign="top">ΔΜ</td><TD valign="top">Ώρες</TD><td valign="top">ECTS</td><td valign="top">Βαθμός</td><td valign="top">Εξεταστική</td></tr><tr height="25" bgcolor="#fafafa"><td valign="top"> <img align="absbottom" src="images/course1.gif" width="16" /></td><td colspan="2" valign="top" class="topBorderLight">(ΠΛΥ201) Γενική Φυσική ΙΙ<span class="redfonts" /></td><td valign="top" class="topBorderLight">ΥΠΟΧΡΕΩΤΙΚΟ</td><td valign="top" class="topBorderLight"> 5</td><td valign="top" class="topBorderLight">5</td><td valign="top" class="topBorderLight"> 5</td><td valign="top" class="topBorderLight"><span class="redFonts">8</span></td><td nowrap="true" class="topBorderLight"><span class="tablecell"><i>ΣΕΠΤ 2009-2010</i></span></td></tr><tr height="25" bgcolor="#fafafa"><td valign="top"> <img align="absbottom" src="images/course1.gif" width="16" /></td><td colspan="2" valign="top" class="topBorderLight">(ΠΛΥ205) Απειροστικός Λογισμός ΙΙ<span class="redfonts" /></td><td valign="top" class="topBorderLight">ΥΠΟΧΡΕΩΤΙΚΟ</td><td valign="top" class="topBorderLight"> 5</td><td valign="top" class="topBorderLight">5</td><td valign="top" class="topBorderLight"> 5</td><td valign="top" class="topBorderLight"><span class="redFonts">5,5</span></td><td nowrap="true" class="topBorderLight"><span class="tablecell"><i>ΣΕΠΤ 2009-2010</i></span></td></tr><tr height="25" bgcolor="#fafafa"><td valign="top"> <img align="absbottom" src="images/course1.gif" width="16" /></td><td colspan="2" valign="top" class="topBorderLight">(ΠΛΥ208) Προγραμματισμός σε C<span class="redfonts" /></td><td valign="top" class="topBorderLight">ΥΠΟΧΡΕΩΤΙΚΟ</td><td valign="top" class="topBorderLight"> 5</td><td valign="top" class="topBorderLight">5</td><td valign="top" class="topBorderLight"> 7</td><td valign="top" class="topBorderLight"><span class="redFonts">5</span></td><td nowrap="true" class="topBorderLight"><span class="tablecell"><i>ΣΕΠΤ 2009-2010</i></span></td></tr><tr height="25" bgcolor="#fafafa"><td valign="top"> <img align="absbottom" src="images/course1.gif" width="16" /></td><td colspan="2" valign="top" class="topBorderLight">(ΠΛΥ210) Διακριτά Μαθηματικά<span class="redfonts" /></td><td valign="top" class="topBorderLight">ΥΠΟΧΡΕΩΤΙΚΟ</td><td valign="top" class="topBorderLight"> 5</td><td valign="top" class="topBorderLight">5</td><td valign="top" class="topBorderLight"> 7</td><td valign="top" class="topBorderLight"><span class="redFonts">7</span></td><td nowrap="true" class="topBorderLight"><span class="tablecell"><i>ΣΕΠΤ 2010-2011</i></span></td></tr><tr height="25" bgcolor="#fafafa"><td valign="top"> <img align="absbottom" src="images/course1.gif" width="16" /></td><td colspan="2" valign="top" class="topBorderLight">(ΠΛΥ209) Ψηφιακή Σχεδιάση<span class="redfonts" /></td><td valign="top" class="topBorderLight">ΥΠΟΧΡΕΩΤΙΚΟ</td><td valign="top" class="topBorderLight"> 4</td><td valign="top" class="topBorderLight">4</td><td valign="top" class="topBorderLight"> 6</td><td valign="top" class="topBorderLight"><span class="redFonts">0</span></td><td nowrap="true" class="topBorderLight"><span class="tablecell"><i>ΣΕΠΤ 2010-2011</i></span></td></tr><tr height="25" bgcolor="#fafafa"><td valign="top"> <img align="absbottom" src="images/course1.gif" width="16" /></td><td colspan="2" valign="top" class="topBorderLight">(ΠΛΥ211) Αγγλικά ΙΙ<span class="redfonts" /></td><td valign="top" class="topBorderLight">ΞΕΝΗ ΓΛΩΣΣΑ</td><td valign="top" class="topBorderLight"> 0</td><td valign="top" class="topBorderLight">1</td><td valign="top" class="topBorderLight"> 0</td><td valign="top" class="topBorderLight"><span class="redFonts">7</span></td><td nowrap="true" class="topBorderLight"><span class="tablecell"><i>ΣΕΠΤ 2009-2010</i></span></td></tr><tr height="20" class="subHeaderBack"><td colspan="3">Σύνολα περασμένων μαθημάτων εξαμήνου: <b>5</b></td><td colspan="10" nowrap="true" align="right" class="tablecell">ΜΟ: <span class="error">6.50</span>'; Προφανώς πριν την εκτέλεση του preg_match_all (και σίγουρα απενεργοποιώντας τον κώδικα με τον curl) Αν σου επιστρέφει κάτι, αλλά με περίεργη κωδικοποίηση, απλά το ρυθμίζεις με σωστή κωδικοποίηση στο header σου! Αν τώρα δεν σου βρίσκει κάτι, τότε το μόνο που μπορώ πλέον να υποθέσω είναι πως δεν μπορεί να δουλέψει το preg_match με την κωδικοποίηση που έχει... Υ.Γ. Έχω δοκιμάσει τον κώδικα και δουλεύει. Δυστυχώς επειδή δεν μπορώ να έχω πρόσβαση στην διαδικασία που ακολουθείς, δεν μπορώ να ξέρω τι γίνεται με τα encodings... Υ.Γ.2: Όλο αυτό το κάνεις για να δούμε που υπάρχει το πρόβλημα
  • Δημιουργία νέου...