Tuesday 29 March 2011

Error: Call to undefined function: file_put_contents()

Si tu navegador te muestra ese error es que probablemente tienes una versión obsoleta de PHP instalada en tu servidor. Porque la función file_put_contents() apareció a partir de PHP5. Puedes verlo en la doc. oficial de la misma:

http://php.net/manual/en/function.file-put-contents.php

Tienes 2 soluciones:

  • actualizar tu servidor... lo cuál es más que recomendable, porque cada vez irás teniendo más problemas de este tipo si no lo haces, a parte que es muy pero que muy recomendable por seguridad! a día de hoy (Marzo de 2011) está por salir PHP6 pronto...

  • construirte una función a medida que haga lo mismo que se supone que hace file_put_contents().



Voy a ayudarte a ello, porque es bien simple: básicamente intenta escribir en un archivo (existente o no) un contenido tipo string.

1  <?php 
2  
3  
function file_put_contents($path_file,$content){
4            
// intentamos cambiar los permisos del archivo 
5            
@chmod($path_file,0755);
6            
// abrimos el archivo en modo escritura al inicio
7            
$fp fopen($path_file,"w"); 
8            
// escribimos
9            
fwrite($fp$content);
10            
// cerramos  
11            
fclose($fp); 
12  }
13  
14  
?>       


Espero que te haya sido útil. Recuerda solamente que una vez que cambies a PHP 5 tendrás que eliminar esta función, si no lo haces te dará error.

Saludos!
SERGI

4 comments:

  1. Hola buenos dias, gracias por la funcion, cuando la corri localmente funciono bien, pero al correrla en mi servidor me dio este error.

    Parse error: syntax error, unexpected '(', expecting '{' in /hsphere/local/home/centrogo/amet.gov.do/search_and_replace.php on line 36

    ReplyDelete
  2. Aiiiiii... perdón perdón... fue un error tontísimo. Es fácil corregirlo. En dónde pone:

    file_put_contents()($path_file,$content){

    debe poner:

    file_put_contents($path_file,$content){

    sobraba el primer par de paréntesis! :S

    Saludos!
    SERGI

    ReplyDelete
  3. Usher web, gracias por todo, he tratado y de verdad que me preocupa mucho el asunto busque haber si encontraba la semilla pero no, enotnces el script funciono perfectamente el unico problema es que no encontro ningun archivo con el virus, lo cual me parece muy extraño no modifique nada solo agregue la funcion al principio del archivo.

    Gracias por todo

    ReplyDelete
  4. De nada, me alegra haberte sido útil. Pásalo ;)

    ReplyDelete