with texto strip_tags remove limpiar from eliminar allow php localization html-parsing typography

php - texto - string strip_tags



Análisis de HTML para solucionar problemas de microtypography y glifo (4)

Como han dicho otros, una solución basada en expresiones regulares podría ser peligrosa / prohibida ...

Pero si tiene un bloqueo en el tipo de contenido en el que desea utilizar esta herramienta (y parece que sí lo hace si el contenido proviene de su CMS), suena como una extensión del programa Perl que Demoroniser puede encargarse de esto para usted: http://www.fourmilab.ch/webtools/demoroniser/

Me interesan los temas de microtypography en la web.

Quiero una herramienta para arreglar:

  • Citas
    • "(& # 8220;) comillas iniciales (en lugar de")
    • ”(& # 8221;) cotización de cierre (en lugar de")
  • Apóstrofe
    • ''(& # 8217;) apóstrofe (en lugar de'')
  • Guiones y guiones
    • - (& # 8211; o & ndash;) en el tablero, usado para rangos, por ejemplo, "13-15 de noviembre" (en lugar de -)
    • - (& # 8212; o & mdash;) em dash, usado para cambiar de pensamiento, por ejemplo, "Star Wars es, como todos saben, increíble".
  • Elipsis
    • ... (& # 8230; o & hellip;) puntos suspensivos horizontales, utilizados para indicar una omisión o una pausa (en lugar de ...)
  • Y mas / o /

Todas esas correcciones dependen del idioma del contenido. En francés, por ejemplo, debemos agregar un espacio insegable (sin ruptura) antes de cada glifo compuesto ( : , ; , , ? , ! , ...), y nuestras citas son "como esta".

Hay muchas restricciones para tal herramienta:

  • no debe editar ningún HTML dentro de las etiquetas protegidas ( pre , code ...)
  • debe ser rápido (usado en una salida de CMS)
  • no debe romper el HTML
  • y así.

Ya hay algunas herramientas en el mercado:

Todos ellos están más o menos basados ​​en SmartyPants, una publicación de 2005, no están probados ni documentados, analizan el HTML manualmente y no tratan otras reglas que no sean el inglés. Infierno no

Así que mis preguntas son:

  • ¿Conoces alguna herramienta decente como esta?
  • ¿Cómo puedo hacerlo? Ya tengo un POC con DomCrawler pero no estoy convencido. ¿Cuál es la mejor manera de analizar y editar HTML en PHP?

Edición de julio de 2013 : he desarrollado JoliTypo partir de las pruebas y la experiencia que obtuve con este problema. Ninguna libra existente estaba haciendo lo que quería hacer.


En cuanto a las citas, lea esta etiqueta Q , otras utilizaría la biblioteca bbcode. Como sería muy difícil escribir un algoritmo para distinguir los guiones que necesita. BBcode permite que el editor elija, pero en ese caso, cuando el editor tiene que realizar una acción, puede pensar en proporcionar algún tipo de botón para insertar caracteres especiales. Para las cosas que son fáciles de reconocer, simplemente crea nuevas reglas para BBcode lib y, si tienen que ser locales, crearía diferentes conjuntos de reglas para diferentes idiomas. Obviamente la herencia en OOP sería útil aquí.



Usted podría estar interesado en tidy . Está enlazado con PHP 5+ (todo lo que necesitas para usarlo es libtidy). No solo analiza HTML, sino que también lo repara.

Pero con la localización, usted está solo - intl no tiene ningún dato acerca de las citas - f.ex .; Al menos no pude encontrarlos.