Επισκέπτης Δημοσ. 31 Αυγούστου 2021 Δημοσ. 31 Αυγούστου 2021 Καλησπέρα. Έχω αυτό το regex στα Αράβικα και Αγγλικά. $text = preg_replace('/(?<!\S)#([0-9a-zA-Zذضصثقفغعهخحجدشسيبلاتنمكطئءؤرلاىةوزظأإآ_]+)/', '<a href="/hashtag/$1" class="hashtaglink">#$1</a>', $text); Το βρήκα στο stackoverflow αλλά δεν ξέρω πως να το κάνω και για Ελληνικά ας έχει και Αράβικα μέσα. Ευχαριστώ
parsifal Δημοσ. 31 Αυγούστου 2021 Δημοσ. 31 Αυγούστου 2021 Δες εδώ: https://www.regular-expressions.info/unicode.html#category Μπορείς να χρησιμοποιήσεις τη Unicode κατηγορία "Letters": \p{L} Άρα, η κανονική σου έκφραση θα γίνει: $text = preg_replace('/(?<!\S)#([0-9\p{L}_]+)/', '<a href="/hashtag/$1" class="hashtaglink">#$1</a>', $text); που θα πρέπει να δουλεύει για όλες τις γλώσσες με non-Latin χαρακτήρες.
Επισκέπτης Δημοσ. 31 Αυγούστου 2021 Δημοσ. 31 Αυγούστου 2021 16 λεπτά πριν, parsifal είπε Δες εδώ: https://www.regular-expressions.info/unicode.html#category Μπορείς να χρησιμοποιήσεις τη Unicode κατηγορία "Letters": \p{L} Άρα, η κανονική σου έκφραση θα γίνει: $text = preg_replace('/(?<!\S)#([0-9\p{L}_]+)/', '<a href="/hashtag/$1" class="hashtaglink">#$1</a>', $text); που θα πρέπει να δουλεύει για όλες τις γλώσσες με non-Latin χαρακτήρες. Η βάση δεδομένων είναι UTF-8 και επιστρέφει #��;Αγάπη στο hashtag #Αγάπη Κάτι για UTF-8 db;
parsifal Δημοσ. 31 Αυγούστου 2021 Δημοσ. 31 Αυγούστου 2021 Δεν φαίνεται για πρόβλημα στην κανονική έκφραση, αλλά στον τρόπο που έχεις ρυθμίσει τη ΒΔ σου, αποθηκεύεις σε και ανακτάς δεδομένα από αυτήν. Δες π.χ. https://stackoverflow.com/questions/10099011/getting-utf-8-strings-from-mysql-using-php https://kunststube.net/frontback/
Επισκέπτης Δημοσ. 31 Αυγούστου 2021 Δημοσ. 31 Αυγούστου 2021 ...φφφ Δεν ξέρω. Όλα τα έκανα αλλά δεν βγήκε. Σωστά τα λες αλλά θα προσπαθήσω άλλη ημέρα.
Επισκέπτης Δημοσ. 4 Σεπτεμβρίου 2021 Δημοσ. 4 Σεπτεμβρίου 2021 (επεξεργασμένο) Στις 31/8/2021 στις 6:19 ΜΜ, parsifal είπε Δεν φαίνεται για πρόβλημα στην κανονική έκφραση, αλλά στον τρόπο που έχεις ρυθμίσει τη ΒΔ σου, αποθηκεύεις σε και ανακτάς δεδομένα από αυτήν. Δες π.χ. https://stackoverflow.com/questions/10099011/getting-utf-8-strings-from-mysql-using-php https://kunststube.net/frontback/ parsifal μήπως μπορείς να μου γράψεις πως γίνετε και με non-unicode τρόπο $text = preg_replace('/(?<!\S)#([0-9a-zA-Zذضصثقفغعهخحجدشسيبلاتنمكطئءؤرلاىةوزظأإآ_](greek)+)/', '<a href="/hashtag/$1" class="hashtaglink">#$1</a>', $text); Αυτό δουλεύει με το (greek) στην άκρη ; Επεξ/σία 4 Σεπτεμβρίου 2021 από Επισκέπτης
elvizakos Δημοσ. 4 Σεπτεμβρίου 2021 Δημοσ. 4 Σεπτεμβρίου 2021 Όχι, δεν θα δουλέψει. Μπορείς να βάλεις μέσα στις αγκύλες όλους τους ελληνικούς χαρακτήρες (όπως έχει γίνει με τα αραβικά και δίπλα σε αυτά), κεφαλαία (αν σε ενδιαφέρουν) και μικρά, με τόνο και χωρίς. Για περισσότερα: https://www.regular-expressions.info/charclass.html
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα