Reciban un cordial saludo y los tradicionales buenos deseos decembrinos.
Es época de amor, paz, pero sobre todo regalos y consumismo desbordado
:-P. Así que en estas navidades no caigas en la trampa, regala amor,
regala la respuesta a la inquietud en el script de un conocido. Tu
conocido y la familia de él te lo agradecerán indirectamente :-) (este
trozo del correo debe ser leido tarareando mentalmente el tutaina
tuturumaina)
<Tutaina tuturumaina mode off>
He estado trabajando en migrar El Directorio de mediawiki a moin. Las
razones y los adelantos del proceso están escritos acá:
http://el-directorio.org/index.php/Migrando_de_mediawiki_a_moin
y para esto he adaptado un script en php que encontré en Internet, cuya
función es conectarse a la base de datos de mediawiki y extraer los
artículos en formato Moin. La versión modificada la pueden encontrar acá:
http://el-directorio.org/index.php/MediaWikiExtractor
El corazón del mismo es la consulta:
$sql = "SELECT cur_title,cur_text FROM cur WHERE cur_namespace=3 AND cur_user_text not like \"MediaWiki default\" ORDER BY cur_title;";
$query = mysql_query($sql) or die(mysql_error());
Que modifiqué ayer explorando los namespaces de la Wikipedia[1]. Lo
ideal sería colocar el valor de "cur_namespace" como un parámetro que
puede ir de 0 a 3, de modo que se puedan hacer consultas diferenciales
por artículo, usuario, discusión de artículo o discusión de usuario.
¿Cómo puedo hacer esto en php?, ¿se usa algún truco como el de 'cadena'
+ variable de Python?
Bueno y ahora para lo que usan el querido Python otra preguntica para un
momento de ocio: ¿Cómo puedo hacer que Python busque todas los bloques
de líneas de un archivo que empiezan con espacio (' ') y coloque una
etiqueta '<pre>' antes del bloque y una '</pre>' después, en caso de que
no estén puestas anteriormente?
Chao y felices fiestas con verdadero espíritu navideño (que para mí es
unión familiar).
Offray
[1] http://en.wikipedia.org/wiki/Wikipedia:Namespace
--
El Directorio
------------------------------
.:| Tecnología |:.
.:| Comunidad | Libertad |:.
\| Colombia |/
------------------------------
www.el-directorio.org
Si creo entender bien la pregunta lo que debes hacer es algo como:
$sql = "SELECT cur_title,cur_text FROM cur WHERE cur_namespace=".$parametro."
AND cur_user_text not like 'MediaWiki default' ORDER BY cur_title;";
Es decir el operador . es el concatenador en PHP, claro que también en PHP es
posible tener variables dentro de cadenas sin necesidad de la concatenación,
todo esto está mucho mejor explicado en [1].
Saludos y felices fiestas.
[1] http://www.php.net/manual/es/language.types.string.php
--
Att:
Wilfredo I. Pachón López
Coordinador Desarrollo de Software y Asesor en Software Libre
Dirección Nacional de Sistemas
CUN (www.cun.edu.co)
----
Si desea conocer más sobre Software Libre en Colombia, puede visitar:
www.el-directorio.org
¡Feliz Navidad y Próspero año nuevo!
El 27/12/05, Offray Vladimir Luna
Cárdenas<offra...@javeriana.edu.co> escribió:
> Bueno y ahora para lo que usan el querido Python otra preguntica para un
> momento de ocio: ¿Cómo puedo hacer que Python busque todas los bloques
> de líneas de un archivo que empiezan con espacio (' ') y coloque una
> etiqueta '<pre>' antes del bloque y una '</pre>' después, en caso de que
> no estén puestas anteriormente?
>
Aquí hay un snippet de más o menos cómo sería la cosa:
archivo1 = open('input.txt')
archivo2 = open('output.txt', 'w')
block = False
has_pre = False
for line in archivo1:
if line.find('<pre>') >= 0: has_pre = True
if not has_pre:
if line.startswith(' ') and not block:
block = True
archivo2.write('<pre> \n')
elif block:
block = False
archivo2.write('</pre> \n')
archivo2.write(line)
if line.find('</pre>') >= 0: has_pre = False
Por supuesto le faltan algunos ajustes, pero esa es la ídea.
Un saludo,
Manuel.
--
· Manuel Alejandro Cerón Estrada
· cero...@gmail.com
· http://ceronman.blogspot.com
Gracias Wilfredo. Ahí estaba el truco. Ya actualicé el script
MediaWikiExtractor en El Directorio. Ahora me falta colocar dentro de un
ciclo en cambio de variables y listo :).
Chao,
Offray
Wilfredo I. Pachon Lopez wrote:
>>$sql = "SELECT cur_title,cur_text FROM cur WHERE cur_namespace=3 AND cur_user_text not
>>like "MediaWiki default" ORDER BY cur_title;";
>>$query = mysql_query($sql) or die(mysql_error());
>>
>>Que modifiqué ayer explorando los namespaces de la Wikipedia[1]. Lo
>>ideal sería colocar el valor de "cur_namespace" como un parámetro que
>>puede ir de 0 a 3, de modo que se puedan hacer consultas diferenciales
>>por artículo, usuario, discusión de artículo o discusión de usuario.
>>¿Cómo puedo hacer esto en php?, ¿se usa algún truco como el de 'cadena'
>>+ variable de Python?
>>
>>
>
>Si creo entender bien la pregunta lo que debes hacer es algo como:
>
>$sql = "SELECT cur_title,cur_text FROM cur WHERE cur_namespace=".$parametro."
>AND cur_user_text not like 'MediaWiki default' ORDER BY cur_title;";
>
>Es decir el operador . es el concatenador en PHP, claro que también en PHP es
>posible tener variables dentro de cadenas sin necesidad de la concatenación,
>todo esto está mucho mejor explicado en [1].
>
>Saludos y felices fiestas.
>
>[1] http://www.php.net/manual/es/language.types.string.php
>
>
>
--