preg_match_all HELP

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

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

Απάντηση
Wolfi
Δημοσιεύσεις: 162
Εγγραφή: 20 Φεβ 2005 18:59

preg_match_all HELP

Δημοσίευση από Wolfi » 30 Μαρ 2009 00:06

γεια σας
ψαχνω tutorials σχετικα με την συνταξη της εντολης preg_match_all ομως οτι κι αν βρηκα δεν μπορω να καταλαβω. μπορει καποιος να μου εξηγησει;

Άβαταρ μέλους
CyberCr33p
Honorary Member
Δημοσιεύσεις: 3195
Εγγραφή: 06 Νοέμ 1999 01:00
Τοποθεσία: Αθήνα
Επικοινωνία:

preg_match_all HELP

Δημοσίευση από CyberCr33p » 30 Μαρ 2009 10:39

Σύνταξη της preg_match_all ή πώς φτιάχνεις regular expressions ψάχνεις;

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

preg_match_all HELP

Δημοσίευση από ThyClub » 30 Μαρ 2009 10:48

Ας ξεκινήσουμε με κάτι απλό:

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

preg_match_all("#\[.*?\]#",$text,$matches);
Το συγκεκριμένο θα: Ψάξει για όλες τις εμφανίσεις [κάτι] μέσα στο $text και θα τις βάλει σε ενα array -> $matches

Wolfi
Δημοσιεύσεις: 162
Εγγραφή: 20 Φεβ 2005 18:59

preg_match_all HELP

Δημοσίευση από Wolfi » 05 Απρ 2009 20:11

Βασικα το προβλημα μου ειναι το εξης

δημιουργησα ενα php αρχειο που περνει τα δεδομενα απο ενα blog

Στο παρακατω κοματι περνει τους τιτλους των θεματων και παραλειπει το πρωτο που ειναι ο τιτλος του blog και τα εμφανιζει:

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

$filename="http://enablog.blogspot.com/rss.xml";
$string=file_get_contents($filename); 
/*Note the use of '/smU' which is very useful for case insensitive matching and other features (report to the pattern modifiers manual)*/
preg_match_all&#40;"/<title.*>&#40;.*&#41;<\/title>/smU",$string, $results,PREG_SET_ORDER&#41;;
$title=implode&#40;',',$results&#91;0&#93;&#41;;

$titlecount=0;
foreach &#40;$results as $title&#41; &#123;
$titlecount=$titlecount+1;
if&#40;$titlecount>1&#41;
&#123;
print strip_tags&#40;$title&#91;0&#93;&#41;;
print "<br>";
    &#125;

&#125;
Το παρακατω κοματι περνει το περιεχομενο των link tags και το εμφανιζει:

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

preg_match_all&#40;"/<link.*>&#40;.*&#41;<\/link>/smU",$string, $results,PREG_SET_ORDER&#41;;
$urlcount=0;
foreach &#40;$results as $url&#41; &#123;
$urlcount=$urlcount+1;
if&#40;$urlcount>1&#41;
&#123;




print strip_tags&#40;$url&#91;0&#93;&#41;;
print"<br>";
&#125;
&#125;


το αποτελεσμα ειναι να εμφανιζονται οι τιτλοι και οι συνδεσμοι χωρια
πχ
τιτλος1
τιτλος2
κλπ

συνδεσμος1
συνδεσμος2
κλπ...


εγω θελω ο τιτλος και ο συνδεσμος να εμφανιζονται στο ιδιο loop

Απάντηση

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

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

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