philos Δημοσ. 12 Αυγούστου 2015 Δημοσ. 12 Αυγούστου 2015 Γεια σας παιδιά! Λοιπόν, στη μεταβλητή $content έχουμε ένα κείμενο το οποίο διαθέτει bbcode μορφοποίηση (δηλαδή διαθέτει tags όπως , κτλ). Θέλω να τρέξω έναν κώδικα PHP που να δίνει σε μια άλλη μεταβλητή $imageurl, το url της πρώτης μόνο εικόνας που εντοπίζεται στο $content. Προσοχή στο ότι μιλάμε για bbcode και όχι html.. Δοκίμασα τις οδηγίες εδώ, αλλά το script δουλεύει μόνο αν το $content ξεκινάει με μια εικόνα [ img ] blahblah [ / img ] και δηλαδή δεν προηγείται της εικόνας, άλλος κώδικας.
vacilis Δημοσ. 12 Αυγούστου 2015 Δημοσ. 12 Αυγούστου 2015 (επεξεργασμένο) Ουσιαστικά μπορείς να κάνεις trim τη μεταβλητή $content μέχρι το πρώτο tag εικονας Και μετά να κάνεις trim το υπόλοιπο,Μια πρόχειρη και πολύ απλή επιλυση: <?php $content ="bbcode bbcode bbcode bbcode [ img ] http://i.imgur.com/GB8p8zG.png [ / img ] bbcode bbcode bbcode bbcode"; $imageurl = str_replace(' ', '', $content); $imageurl= strstr($imageurl, '[img]'); $imageurl = str_replace('[img]', '', $imageurl); $imageurl = substr($imageurl, 0, strpos($imageurl, "[/")); echo $imageurl; //http://i.imgur.com/GB8p8zG.png ?> Επεξ/σία 13 Αυγούστου 2015 από vacilis
philos Δημοσ. 13 Αυγούστου 2015 Μέλος Δημοσ. 13 Αυγούστου 2015 Δουλεύει μια χαρά, σε ευχαριστώ! Το μόνο ότι έβαλα και 2η φορά τον κώδικα, ώστε να τσεκάρει και για [ IMG ] (δηλαδή το tag με κεφαλαία).
vacilis Δημοσ. 13 Αυγούστου 2015 Δημοσ. 13 Αυγούστου 2015 Μπορείς να βάλεις απλώς: <?php $content ="bbcode bbcode bbcode bbcode [ img ] http://i.imgur.com/GB8p8zG.png [ / img ] bbcode bbcode bbcode bbcode"; $imageurl = str_replace(' ', '', $content); $imageurl = strtolower($imageurl); //όλοι οι χαρακτήρες γίνονται πεζοί $imageurl= strstr($imageurl, '[img]'); $imageurl = str_replace('[img]', '', $imageurl); $imageurl = substr($imageurl, 0, strpos($imageurl, "[/")); echo $imageurl; //http://i.imgur.com/GB8p8zG.png ?> 1
philos Δημοσ. 21 Αυγούστου 2015 Μέλος Δημοσ. 21 Αυγούστου 2015 Και κάτι άλλο παιδιά! Θέλω αυτή τη φορά να πάρω τα url ΟΛΩΝ των εικόνων του $content ([ img ]url[ /img], και να τα βάλω σε έναν php array. Πως μπορώ να το κάνω; Έχω κάνει διάφορες δοκιμές με συναρτήσεις τύπου του να πάρεις string μεταξύ δύο άλλων string (του bbcode), αλλά χωρίς επιτυχία.
vacilis Δημοσ. 21 Αυγούστου 2015 Δημοσ. 21 Αυγούστου 2015 (επεξεργασμένο) απλως λειτουργει... <?php $content ="bbcode bbcode bbcode bbcode [ img ] http://i.imgur.com/GB8p8zG.png [ / img ] bbcode bbcode bbcode bbcode [ img ] http://i.imgur.com/g3dffw.png [ / img ] bbocode bbcode [ img ] http://www.insomnia.gr/uploads/profile/photo-thumb-272315.png [ / img ] bboce bbcode"; $imageurl = str_replace(' ', '', $content); $imageurl = strtolower($imageurl); $imageurl= strstr($imageurl, '[img]'); $arr = explode("[img]", $imageurl); foreach ($arr as &$value) { $value = str_replace('[img]', '', $value); $value = substr($value, 0, strpos($value, "[/img]")); } $imageurls = array(); foreach ($arr as $value1) { if (!filter_var($value1, FILTER_VALIDATE_URL) === false) { $imageurls[] = $value1; } } var_dump($imageurls); ?> Output: array(3) { [0]=> string(30) "http://i.imgur.com/gb8p8zg.png" [1]=> string(29) "http://i.imgur.com/g3dffw.png" [2]=> string(61) "http://www.insomnia.gr/uploads/profile/photo-thumb-272315.png" } Επεξ/σία 22 Αυγούστου 2015 από vacilis
philos Δημοσ. 21 Αυγούστου 2015 Μέλος Δημοσ. 21 Αυγούστου 2015 Σε ευχαριστώ! Τελικά βρήκα μια πιο σύντομη λύση συνδυάζοντας διάφορα που διάβασα στο διαδίκτυο: preg_match_all("~\[IMG\](.+?)\[/IMG\]~", $content, $results); var_dump($results[1]); 1
vacilis Δημοσ. 22 Αυγούστου 2015 Δημοσ. 22 Αυγούστου 2015 Σε ευχαριστώ! Τελικά βρήκα μια πιο σύντομη λύση συνδυάζοντας διάφορα που διάβασα στο διαδίκτυο: preg_match_all("~\[IMG\](.+?)\[/IMG\]~", $content, $results); var_dump($results[1]); Προφανώς πολύ καλύτερη... Δεν σκεφτηκα το preg_match_all
philos Δημοσ. 22 Αυγούστου 2015 Μέλος Δημοσ. 22 Αυγούστου 2015 (επεξεργασμένο) Κι άλλη απορία που προσπαθώ να λύσω εδώ και ώρα! Λοιπόν, έχουμε τον γνωστό μας bbcode: [quote]text[/quote] και [quote=username;123]text[/quote ] Το text λοιπόν μπορεί να έχει έναν δικό μου bbcode με ονομασία [mybbcode]αριθμοί[/mybbcode] Όλο το κείμενο του post (χαρακτήρες, αριθμοί και κώδικας bbcode) είναι στη μεταβλητή $content. Τι θέλω να κάνω; Να εντοπίσω τον αριθμό "123" (ας τον πούμε $postid) που βλέπετε στο παραπάνω quote, δηλαδή τον αριθμό εκείνης της θέσης, του [ quote ] tag στο οποίο έχει εσωκλειστεί ο αντίστοιχος [mybbcode]. Μερικά παραδείγματα $content: 1. Με $content: [quote=username;123] lalalaallala [mybbcode]123456[/mybbcode] bbbb cccc dddd [mybbcode]5334[/mybbcode] haha [/quote ]Θα ήθελα να πάρω έναν php array με τα εξής στοιχεία:array(123 => array('123456', '5334')) 2. Με $content [quote=username;123] lalalaallala [mybbcode]9999[/mybbcode] bbbb cccc dddd [quote=user2;111] hi! [mybbcode]5334[/mybbcode][mybbcode]8884[/mybbcode] [/quote] haha [/quote ]Θα ήθελα να πάρω έναν php array με τα εξής στοιχεία:array( 123 => array('9999'), 111=> array('5334', '8884') ) κτλ, για οποιαδήποτε βάθος από quotes. Το θέμα είναι να πάρω το περιεχόμενο του mybbcode και να το έχω σε πίνακα με το $postid του quote στο οποίο εσωκλείεται. Όποια βοήθεια ευπρόσδεκτη! Επεξ/σία 23 Αυγούστου 2015 από philos
philos Δημοσ. 23 Αυγούστου 2015 Μέλος Δημοσ. 23 Αυγούστου 2015 Καμιά ιδεά; Αν οι ζητούμενοι arrays όπως τους περιέγραψα έχουν μειονεκτήματα, ας πάρουν άλλη μορφή. Απλά θέλω τα δεδομένα σε έναν php array για να τα χρησιμοποιήσω.
geomagas Δημοσ. 23 Αυγούστου 2015 Δημοσ. 23 Αυγούστου 2015 Δεν νομίζω να είναι οι arrays το πρόβλημα. Απλά δεν πρόκειται κανείς να κάτσει να σου βγάλει όλον τον αλγόριθμο από το μηδέν. Πες τι έχεις κάνει και που κόλλησες.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα