martes, 25 de julio de 2017

[Fecha de publicación: 2017-07-25]

Temas a tener en cuenta:


chmod

(PHP 4, PHP 5, PHP 7)
chmod — Cambia el modo de un fichero

Descripción ¶

bool chmod ( string $filename , int $mode )
Intenta cambiar el modo de un fichero especificado por el dado en mode.

Parámetros ¶

filename
Ruta del fichero.
mode
Observe que no se asume que mode sea automáticamente un valor octal, por lo que, para asegurarse de que la opración sea la esperada, es necesario prefijar mode con un cero (0). String tales como "g+w" no funcionarán adecuadamente.
<?php
chmod
("/directorio/fichero"755);   // decimal; probablemente incorrectochmod("/directorio/fichero""u+rwx,go+rx"); // string; incorrectochmod("/directorio/fichero"0755);  // octal; valor de modo correcto?>
El parámetro mode consiste en tres componentes numéricos octales que especifican las restricciones de acceso para el propietario, el grupo de usuarios al que pertenece el propietario, y para todos los demás, en este orden. Un componente puede ser computado sumando los permisos necesarios para ese usuario objetivo base. El número 1 significa que se conceden derechos de ejecución, el número 2 significa que se puede escribir en el fichero, el número 4 significa que el fichero se puede leer. Sume estos números para especificar los derechos necesarios. Se puede leer más sobre los modos en sistemas Unix con 'man 1 chmod' y 'man 2 chmod'.
<?php// Lectura y escritura para el propietario, nada para los demáschmod("/directorio/fichero"0600);
// Lectura y escritura para el propietario, lectura para los demáschmod("/directorio/fichero"0644);
// Todo para el propietario, lectura y ejecución para los otroschmod("/directorio/fichero"0755);
// Todo para el propietario, lectura y ejecución para el grupo del propietariochmod("/directorio/fichero"0750);?>

Valores devueltos ¶

Devuelve TRUE en caso de éxito o FALSE en caso de error.

Notas ¶

Nota:
El usuario actual es el usuario bajo el que se ejecuta PHP. Probablemente no sea el mismo usuario que se utilize para el intérprete de comandos normal o el acceso FTP. EL modo puede ser cambiado sólo por el usuario al que pertenece el fichero en la mayoría de sistemas.
NotaEsta función no funcionará en ficheros remotos ya que el fichero debe ser accesible vía el sistema de ficheros del servidor para poder ser examinado.
Nota:
Cuando modo seguro está habilitado, PHP verifica si los ficheros o directorios sobre los que se va a operar tienen el mismo UID (propietario) que el del script que está siendo ejecutado. Además, no se pueden establecer los bits SUID, SGID y sticky.
tomado de: http://php.net/manual/es/function.chmod.php

NAME

getcwd - get the pathname of the current working directory

SYNOPSIS

#include <unistd.h>

char *getcwd(char *
buf, size_t size);

DESCRIPTION

The getcwd() function shall place an absolute pathname of the current working directory in the array pointed to by buf, and return buf. The pathname copied to the array shall contain no components that are symbolic links. The size argument is the size in bytes of the character array pointed to by the buf argument. If buf is a null pointer, the behavior of getcwd() is unspecified.

RETURN VALUE

Upon successful completion, getcwd() shall return the buf argument. Otherwise, getcwd() shall return a null pointer and set errno to indicate the error. The contents of the array pointed to by buf are then undefined.

ERRORS

The getcwd() function shall fail if:
[EINVAL]
The size argument is 0.
[ERANGE]
The size argument is greater than 0, but is smaller than the length of the pathname +1.
The getcwd() function may fail if:
[EACCES]
Read or search permission was denied for a component of the pathname.
[ENOMEM]
Insufficient storage space is available.

The following sections are informative.

EXAMPLES

Determining the Absolute Pathname of the Current Working Directory
The following example returns a pointer to an array that holds the absolute pathname of the current working directory. The pointer is returned in the ptr variable, which points to the bufarray where the pathname is stored.
#include <stdlib.h>
#include <unistd.h>
...
long size;
char *buf;
char *ptr;


size = pathconf(".", _PC_PATH_MAX);


if ((buf = (char *)malloc((size_t)size)) != NULL)
    ptr = getcwd(buf, (size_t)size);
...

tomado de: http://pubs.opengroup.org/onlinepubs/009695399/functions/getcwd.html


strpos

(PHP 4, PHP 5, PHP 7)
strpos — Encuentra la posición de la primera ocurrencia de un substring en un string

Descripción ¶

mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
Encuentra la posición numérica de la primera ocurrencia del needle (aguja) en el string haystack (pajar).

Parámetros ¶

haystack
El string en donde buscar.
needle
Si la needle no es una cadena, es convertida a integer y se interpreta como el valor ordinal de un carácter.
offset
Si se específica, la búsqueda iniciará en éste número de caracteres contados desde el inicio del string. A diferencia de strrpos() y strripos(), el offset no puede ser negativo.

Valores devueltos ¶

Devuelve la posición donde la aguja existe, en relación al inicio del string haystack (independiente del offset). También tener en cuenta que las posiciones de inicio de los string empiezan en 0 y no 1.
Devuelve FALSE si no fue encontrada la aguja.
Advertencia
Esta función puede devolver el valor booleano FALSE, pero también puede devolver un valor no booleano que se evalúa como FALSE. Por favor lea la sección sobre Booleanos para más información. Use el operador === para comprobar el valor devuelto por esta función.

Ejemplos ¶

Ejemplo #1 Usando ===
<?php
$mystring 
'abc';$findme   'a';$pos strpos($mystring$findme);
// Nótese el uso de ===. Puesto que == simple no funcionará como se espera
// porque la posición de 'a' está en el 1° (primer) caracter.
if ($pos === false) {
    echo 
"La cadena '$findme' no fue encontrada en la cadena '$mystring'";
} else {
    echo 
"La cadena '$findme' fue encontrada en la cadena '$mystring'";
    echo 
" y existe en la posición $pos";
}
?>
Ejemplo #2 Usando !==
<?php
$mystring 
'abc';$findme   'a';$pos strpos($mystring$findme);
// El operador !== también puede ser usado. Puesto que != no funcionará como se espera
// porque la posición de 'a' es 0. La declaración (0 != false) se evalúa a
// false.
if ($pos !== false) {
     echo 
"La cadena '$findme' fue encontrada en la cadena '$mystring'";
         echo 
" y existe en la posición $pos";
} else {
     echo 
"La cadena '$findme' no fue encontrada en la cadena '$mystring'";
}
?>
Ejemplo #3 Uso de offset
<?php// Se puede buscar por el caracter, ignorando cualquier cosa antes del offset$newstring 'abcdef abcdef';$pos strpos($newstring'a'1); // $pos = 7, no 0
CODIGO IMPORTANTE: 

<?php
   $destination_path = getcwd().DIRECTORY_SEPARATOR;
   $result = 0;
   $miarchivito = basename( $_FILES['myfile']['name']);
   $pos = strpos($miarchivito, ".");
   $extension = substr($miarchivito, ($pos +1));
   $miarchivito = substr($miarchivito,0, $pos);

   $miarchivito = $miarchivito . "." . $extension;

   $target_path = $destination_path . '/adjuntados/'.$miarchivito;

   if ($extension == "zip"){
   if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
      $result = 1;
   }
}
   sleep(1);
?>
<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result; ?>);</script>

No hay comentarios.:

Publicar un comentario