La respuesta correcta es detectar dónde tiene un punto de código asignado en el bloque Miscellaneous_Symbols_And_Pictographs
. En Perl, que tendría que utilizar
/\p{Assigned}/ && \p{block=Miscellaneous_Symbols_And_Pictographs}/
o simplemente
/\P{Cn}/ && /\p{Miscellaneous_Symbols_And_Pictographs}/
que se debe combinar en un solo aquellos con el patrón de
/(?=\p{Assigned})\p{Miscellaneous_Symbols_And_Pictographs}/
No recuerdo si la biblioteca PCRE que PHP uses le da acceso a las propiedades de caracteres Unicode requeridas. Mi recuerdo es que es bastante débil en esa área en particular. Creo que solo tiene propiedades de script Unicode y categorías generales. Suspiro.
A veces solo tiene que usar el producto real.
Por falta de soporte Unicode decente, puede que tenga que enumerar el bloque de sí mismo:
/(?=\P{Cn})[\x{1F300}-\x{1F5FF}]/
Parece una pesadilla de mantenimiento para mí, lleno de números mágicos.
Hola, gracias por esa idea, pero no funciona para todos los emoji:) ¿Hay alguna manera de agregar soporte para este: ❤? ¿Y probablemente algunos otros? Funciona perfectamente para iOS emoji ahora. Gracias. – Kukosk
Bueno, esa es la pregunta de qué cuentas como emoji. ❤ existía como un símbolo general mucho antes de que alguien concibiera emoji. Si desea bloquear solo los símbolos que se han reutilizado para emoji, mire el enlace de Emoji para PHP anterior y seleccione todos los puntos de código U + 2xxx utilizados. Alternativamente, considere bloquear un rango más amplio de símbolos si no los necesita, por ejemplo 'unichr (0x2190) .'- '. Unichr (0x27FF)'. – bobince
gracias Bobince :) – Kukosk