Nuestra base de datos está llena de artículos recuperados de fuentes RSS. No estaba seguro de qué datos recibiría, y de cuánto filtrado ya estaba configurado (complemento WP-O-Matic Wordpress utilizando la biblioteca SimplePie). Este complemento hace una codificación básica antes de la inserción usando la función de inserción de publicaciones incorporada de Wordpress, que también hace algunos filtros. Entre la codificación de la fuente RSS, la codificación del plugin usando PHP, la codificación de Wordpress y el escape de SQL, no estoy seguro por dónde empezar.¿Qué debo usar para eliminar html escapado de grandes conjuntos de datos?
Los datos suelen estar al final del campo después del contenido que quiero conservar. Es todo en una línea, pero separados a cabo para facilitar la lectura:
<img src="http://feeds.feedburner.com/~ff/SoundOnTheSound?i=xFxEpT2Add0:xFbIkwGc-fk:V_sGLiPBpWU" border="0"></img>
<img src="http://feeds.feedburner.com/~ff/SoundOnTheSound?d=qj6IDK7rITs" border="0"></img>
<img src="http://feeds.feedburner.com/~ff/SoundOnTheSound?i=xFxEpT2Add0:xFbIkwGc-fk:D7DqB2pKExk"
Aviso cómo algunas de las imágenes son de escape y algunos no lo son. Creo que esto tiene que ver con la última parte cortada para ser irreconocible como una etiqueta html, que luego causó que se html endcoded mientras que las etiquetas img reales se quedaron solos.
Otro registro tiene única esto en uno de los campos, lo que significa la fuente RSS me dio nada por el elemento (filtrada a cabo ahora, pero tengo un montón de discos como este):
<img src="http://farm3.static.flickr.com/2183/2289902369_1d95bcdb85.jpg" alt="post_img" width="80"
Todas las muestras extraídas están en una línea, pero están rotas para facilitar su lectura. De lo contrario, se copian exactamente desde la base de datos desde la línea de comandos del cliente mysql.
Pregunta: ¿Cuál es la mejor manera de trabajar con lo anterior escapado html (o parte de una etiqueta HTML), por lo que puede entonces y eliminar sin afectar el contenido?
Quiero quitarlo, porque las imágenes al final del campo suelen ser imágenes que no tienen nada que ver con el contenido. En el caso de los feedburner, feedburner los agrega a cada artículo en un feed. Otras veces, son enlaces rotos que rodean imágenes rotas. El punto no son las etiquetas html img válidas que se pueden eliminar fácilmente. Son las etiquetas destrozadas que, si no están codificadas, no serán válidas como html, que no se podrán analizar con los analizadores html estándar.
[EDIT] Si era sólo una cuestión de tirar el html que quería salir y hacer un strip_tags
y volver a insertar los datos, no estaría haciendo esta pregunta.
La parte con la que tengo un problema es que lo que solía ser una etiqueta img estaba codificado en html y el final se cortó. Si está codificado, será no una etiqueta html, por lo que I no se puede analizar de la manera habitual.
Con toda la mierda de <img src="
, no puedo entender lo que no es SELECT ID, post_content FROM table WHERE post_content LIKE '<img'
que al menos me da esas publicaciones. Pero cuando obtengo la información, necesito encontrarla, eliminarla, pero guardar el resto del contenido.
[/ EDIT]
[EDIT 2]
<img src="http://farm4.static.flickr.com/3162/2735565872_b8a4e4bd17.jpg" alt="post_img" width="80" />Through the first two months of the year, the volume of cargo handled at Port of Portland terminals has increased 46 percent as the port?s marine cargo business shows signs of recovering from a dismal 2009.<div> <a href="http://feeds.bizjournals.com/~ff/bizj_portland?a=YIs66yw13JE:_zirAnH6dt8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/bizj_portland?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.bizjournals.com/~ff/bizj_portland?a=YIs66yw13JE:_zirAnH6dt8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/bizj_portland?i=YIs66yw13JE:_zirAnH6dt8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.bizjournals.com/~ff/bizj_portland?a=YIs66yw13JE:_zirAnH6dt8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/bizj_portland?i=YIs66yw13JE:_zirAnH6dt8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.bizjournals.com/~ff/bizj_portland?a=YIs66yw13JE:_zirAnH6dt8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/bizj_portland?d=qj6IDK7rITs"
La parte quiero seguir:
<img src="http://farm4.static.flickr.com/3162/2735565872_b8a4e4bd17.jpg" alt="post_img" width="80" />Through the first two months of the year, the volume of cargo handled at Port of Portland terminals has increased 46 percent as the port?s marine cargo business shows signs of recovering from a dismal 2009.
Reiterar: No es sobre la eliminación de las etiquetas html img válidas . Eso es fácil. Necesito poder encontrar específicamente el <img src="http://feeds.feedburner.com/~ff/bizj_portland?d=qj6IDK7rITs"
si es parte del patrón de img tag img tag destrozado img tag o ancla img anchor img img destrozado, imagen etc., pero no eliminar <img
si es, de hecho, parte del artículo. De las pocas docenas de muestras que he revisado, ha sido bastante consistente que esta etiqueta img destrozada esté al final del campo.
La otra es la única etiqueta de imagen destrozada. Es consistentemente una etiqueta de flickr img mutilada, pero como arriba, no puedo simplemente buscar <img
ya que podría ser una parte válida del contenido.
El problema radica en que no puedo simplemente descodificarlo y analizarlo como HTML, porque no será válido html. [/ EDIT 2]
Estas bromeando ¿verdad? http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – Ether
Regex no puede analizar html. +1 @Ehter para el enlace –
Usar expresiones regulares para analizar HTML arbitrario suele ser una mala idea, pero no estoy tan seguro de que eso sea lo que estás haciendo. ¿Qué estás buscando como resultado final? Edite su pregunta anterior y muestre con qué desea terminar cada ejemplo que ha incluido. – benrifkah