Pregunta

Im tratando de obtener GeSHi de trabajo con reducción del precio.

Un uso simple para Geshi es como sigue:

$geshi = new GeSHi($message, 'c');
print $geshi->parse_code();

El código anterior toma en el conjunto del mensaje y lo convierte en código en negrita

También tengo a mi función de rebajas

print Markdown($message);

Yo estaba tratando de utilizar la función de volver a la llamada preg_match las etiquetas <pre> regresado de rebajas y ejecutar la función geshi->parse_code(); en los valores devueltos

Aquí está mi código

print preg_replace_callback(
   '/<pre.*?>(.*?[<pre.*?>.*<\/pre>]*)<\/pre>/gism',
    create_function(
        // single quotes are essential here,
        // or alternative escape all $ as \$
        '$matches',
        '$geshi = new GeSHi($matches[0], \'php\'); return $geshi->parse_code()'
    ),
    Markdown($blog_res['message']));

¿Estoy en el camino correcto?

Regex es mi derecho? http://gskinner.com/RegExr/

Gracias por la ayuda

¿Fue útil?

Solución 2

era la expresión regular: (

en lugar de

/<pre.*?>(.*?[<pre.*?>.*<\/pre>]*)<\/pre>/gism 

utilización (quitar el indicador global)

/<pre.*?>(.*?[<pre.*?>.*<\/pre>]*)<\/pre>/ism 

Sin embargo, si está utilizando reducción del precio, usted tiene que recordar para compensar los bloques code que están en emabrgo propia, por tanto, es necesario sustituir sólo los que están en el formato de <pre><code>...MyCode</code></pre> y dejar de lado Hello <code>MyCode</code> Por lo tanto se necesitan los siguientes

'/<pre.*?><code.*?>(.*?[<pre.*?><code.*?>.*<\/code><\/pre>]*)<\/code><\/pre>/ism',

Otros consejos

En el futuro, es posible que desee echa un vistazo a mi blog a más de esto:

https://github.com/drm/Markdown_Geshi

Se basa en la reducción del precio regular de plug-in de añadir un bloque marcado con un tinglado de código más destacado, como esto:

#!php
<?php print('This is PHP code'); ?>

funciona bastante bien y lo uso en mi propio blog con regularidad.

entiendo que [eran] busca extender de rebajas, añadiendo soporte para resaltado de sintaxis GeSHi. Embellecer hace esto y más. Por ejemplo, se puede hacer que los gráficos en DOT .

se utiliza el enfoque de Embellecer a Geshi bloques de código difiere de DRM / Markdown_Geshi en que los "cercos". Por ejemplo:

~~~ php
<?php print('This is PHP code'); ?>
~~~

No estoy seguro de si era Embellecer alrededor de la espalda cuando esta pregunta estaba activo, pero parecía digno de mención en una respuesta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top