bueno he hecho algunas modificaciones y ahora ya me escribe los html con el nombre del id que le llega por el url, pero no hay forma de que me lea la variable $DIR, he probado lo que dices Cluster y tampoco , entonces da el error inicial del post, solo funciona poniendo el directorio directamente en el fopen.
Ademas vereis que para que funcionara he tenido que meter la variable $id dentro de la funcion cache_guardar pq sino no llegaba la variable al fopen, eso debe ser desconocimiento mio pero estaria bien una aclaracion.
Y por ultimo la variable $html no la lee ni de coña, es la que deberia escribir en el fichero, ahora esta puesto manual para ver si escribia o no, pero iria en el fwrite.
Os pongo como esta ahora:
Archivo cacheador
Código PHP:
<?php
$TIEMPO = 86400;
$dire = "/html";
function cache_abrir() {
global $TIEMPO,$dire;
if(file_exists($dire.'/'.$id.'.html') &&
time()-filemtime($dire.'/'.$id.'.html')<$TIEMPO) {
include($dire.'/'.$id.'.html');
exit();
}
ob_start();
}
function cache_guardar() {
global $html;
$id = $_GET['articuloID'];
$html = ob_get_contents();
ob_end_clean();
$file = fopen("html/".$id.'.html','w') or die("Error al intentar crear fichero.");
fwrite($file,$id) or die ("Imposible escribir en el fichero");
fclose($file);
}
?>
Archivo lanzador:
Código PHP:
<?php require_once('conexion'); ?>
<?php include('caching.php');?>
<?php
cache_abrir();
ob_start();
$colname_Recordset1 = "0";
if (isset($HTTP_GET_VARS['articuloID'])) {
$colname_Recordset1 = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['articuloID'] : addslashes($HTTP_GET_VARS['articuloID']);
}
mysql_select_db($database_libros, $libros);
$query_Recordset1 = sprintf("SELECT * FROM articulos WHERE articulos.articuloID = %s", $colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $libros) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$html = ob_get_contents();
ob_end_clean();
cache_guardar($html);
echo $html;
?>
Bueno saludos