我想在字符串中计算html标签。我试图这样做:
$array = preg_split("<li>",$string);
$count=count($array);
echo $count;
计数高于它应该是因为此代码将$ string变量与文本“li”而不是标记li分开。
如何使用html标签拆分字符串?
这是我尝试的字符串。
Κυκλοφορητής Lowara Ecocirc XL, υψηλής απόδοσης για εγκαταστάσεις κεντρικής θέρμανσης με κινητήρες μονίμων μαγνητών, τεχνολογίας ECM, υγρού ρότορα.<br />
<br /> Κατάλληλος για συστήματα ζεστού νερού χρήσης και θέρμανσης, συστήματα ψύξης και κλιματισμού, ηλιακά καθώς και για γεωθερμικά συστήματα. <ul> <li>
Δυνατότητα ρύθμισης αναλογικής και σταθερής πίεσης, σταθερών στροφών και λειτουργία νυχτός.</li> <li>Σχεδιασμός υγρού ρότορα: Όλα τα περιστρεφόμενα μέρη λ
ιπαίνονται από το αντλούμενο υγρό το οποίο ψύχει και τον κινητήρα. </li> <li>Χυτό θερμομονωτικό κέλυφος που κρατάει την θερμοκρασία του αντλούμενου υγρού
(και του περιβάλλοντος) ακριβώς εκεί που πρέπει.</li> <li>Ρύθμιση και λειτουργία του νέου Ecocirc XL πολύ εύκολα μόνο με την χρήση τεσσάρων κουμπιών. Πρόσβαση
στις προηγμένες ρυθμίσεις από PC, tablet ή smartphone μέσω ενσωματωμένου πρωτοκόλλου επικοινωνίας BUS ή Wi-Fi (προαιρετικό).</li> <li>Η ενσωματωμένη προστασία
από εν ξηρώ λειτουργία σταματάει την αντλία και προστατεύει από βλάβες λόγω έλλειψης νερού.</li> <li>Τα ηλεκτρονικά μέρη είναι διαχωρισμένα από το υδραυλικό
μέρος της αντλίας για την αποφυγή προβλημάτων από συμπυκνώματα κατά την άντληση υγρών από συστήματα ψύξης.</li> <li>Δύο αναλογικές είσοδοι για σήματα 4-20mA
και 0-10V καθώς και επαφή για αισθητήριο θερμοκρασίας.</li> </ul> Συνοδεύεται από ρακόρ σύνδεσης.<br /> <br /> Ο κυκλοφορητής LOWARA Ecocirc XL καλύπτει
πλήρως της οδηγία ErP η οποία θα ισχύει από το 2015. <br /> <br /> Έντυπα:<br /> <a href="http://www.lowara.com/lowdata/doc/EN/ecocircxl-td-en.pdf"
style="line-height: 20.7999992370605px;">Πλήρες τεχνικό εγχειρίδιο των κυκλοφορητών Lowara Ecocirc</a><br /> <a href="http://www.lowara.com/lowdata/doc/ml
/ecocircxl-im-ml.pdf" style="line-height: 20.7999992370605px;">Οδηγίες χρήσης</a><br />
ok ..发现问题:从数据库中检索字符串,其中字符为“&lt;”被替换为“&amp; lt;”和“&gt;”被替换为“&amp; gt;”。当我使用这段代码时:
$array = preg_split("/<li>/",$description);
它起作用了。
我只是想知道为什么它用字符“&lt;,&gt;”回显字符串在他们的propper形式而不是“&amp; lt;,&amp; gt;”
答案 0 :(得分:4)
你忘记了分隔符了,这应该有效:
(此外,您输出的计数比标记的计数高1倍,因为它会计算数组的元素,因此您只需减去1(例如"<li>x1</li>x2"
- > 2) )
$array = preg_split("/<li>/",$string);
$count = count($array);
echo $count;
有关正则表达式分隔符的更多信息以及您可以使用哪个分区:http://php.net/manual/en/regexp.reference.delimiters.php