{"id":685,"date":"2022-05-08T21:06:00","date_gmt":"2022-05-08T19:06:00","guid":{"rendered":"https:\/\/blog.pirulug.com\/?p=685"},"modified":"2022-05-08T21:06:00","modified_gmt":"2022-05-08T19:06:00","slug":"como-crear-una-carpeta-si-no-existe-en-php","status":"publish","type":"post","link":"https:\/\/blog.pirulug.com\/?p=685","title":{"rendered":"C\u00f3mo crear una carpeta si no existe en PHP"},"content":{"rendered":"<ol>\n<li><code>file_exists()<\/code>  para comprobar si un archivo o directorio existe en PHP<\/li>\n<li><code>is_dir()<\/code>  para comprobar si un archivo o directorio existe en PHP<\/li>\n<li><code>file_exists()<\/code>  vs  <code>s_dir()<\/code>  en PHP<\/li>\n<li><code>mkdir()<\/code>  en PHP<\/li>\n<\/ol>\n<p>Es posible crear una carpeta y establecer el permiso apropiado usando PHP, espec\u00edficamente usando la funci\u00f3n  <code>mkdir()<\/code>.<\/p>\n<p>El modo de permiso por defecto es  <code>0777<\/code>  (el acceso m\u00e1s amplio posible). Antes de crear un directorio, es importante comprobar primero si el directorio o un archivo existe o no. En PHP, puede hacerse usando  <a href=\"https:\/\/www.php.net\/manual\/en\/function.mkdir.php\"><code>file_exists<\/code><\/a>  o  <a href=\"https:\/\/www.php.net\/manual\/en\/function.is-dir.php\"><code>is_dir<\/code><\/a>.<\/p>\n<h2><code>file_exists()<\/code>  para comprobar si un archivo o directorio existe en PHP<\/h2>\n<p>La funci\u00f3n  <code>file_exists<\/code>  es una funci\u00f3n incorporada para comprobar d\u00f3nde existe o no un directorio o un archivo. Acepta un par\u00e1metro de un camino que devuelve  <code>true<\/code>  si ya existe o  <code>false<\/code>  si no.<\/p>\n<p>Ejemplo usando  <code>file_exists()<\/code>:<\/p>\n<pre><code class=\"language-php\">$path = &quot;sample\/path\/newfolder&quot;;\nif (!file_exists($path)) {\n    mkdir($path, 0777, true);\n}<\/code><\/pre>\n<p>En el ejemplo anterior, comprueba la existencia del directorio usando la funci\u00f3n  <code>file_exists()<\/code>, luego crea el directorio  <code>newfolder<\/code>  si el resultado es falso, con el permiso de  <code>0777<\/code>.<\/p>\n<h2><code>is_dir()<\/code>  para comprobar si un archivo o directorio existe en PHP<\/h2>\n<p>Esta funci\u00f3n tambi\u00e9n es similar a  <code>file_exists<\/code>, y la \u00fanica diferencia es que s\u00f3lo devolver\u00e1  <code>true<\/code>  si la cadena pasada es un directorio y devolver\u00e1  <code>false<\/code>  si es un archivo.<\/p>\n<p>Ejemplo usando  <code>is_dir<\/code>:<\/p>\n<pre><code class=\"language-php\">$path = &quot;sample\/path\/newfolder&quot;;\nif (!is_dir($path)) {\n    mkdir($path, 0777, true);\n}<\/code><\/pre>\n<p>En el ejemplo anterior,  <code>is_dir<\/code>  comprueba si la carpeta ya existe antes de crear una nueva carpeta usando  <code>mkdir<\/code>.<\/p>\n<h2><code>file_exists()<\/code>  vs  <code>s_dir()<\/code>  en PHP<\/h2>\n<p>Ambas funciones comprueban la existencia del directorio, la \u00fanica diferencia es que  <code>file_exists()<\/code>  tambi\u00e9n devuelve  <code>true<\/code>  si el par\u00e1metro pasado es un archivo. Por otro lado,  <code>is_dir<\/code>  es un poco m\u00e1s r\u00e1pido que  <code>file_exists<\/code>.<\/p>\n<h2><code>mkdir()<\/code>  en PHP<\/h2>\n<p>Esta funci\u00f3n crea un directorio que se especifica por ruta que se pasa como par\u00e1metro. El valor de retorno esperado es  <code>true<\/code>  o  <code>false<\/code>.<\/p>\n<p>Ejemplo de implementaci\u00f3n:<\/p>\n<pre><code class=\"language-php\">mkdir($path, $mode, $recursive, $context);<\/code><\/pre>\n<p><strong>Valores de los par\u00e1metros<\/strong><\/p>\n<p>Par\u00e1metro<\/p>\n<p>Valores<\/p>\n<p><code>path<\/code>  (requerido)<\/p>\n<p>Directorio o ruta para crear<\/p>\n<p><code>mode<\/code>  (opcional)<\/p>\n<p>Permiso de directorio o de archivo. Por defecto, el  <code>mode<\/code>  es  <code>0777<\/code>  (acceso m\u00e1s amplio posible).<br \/>\nEl  <code>mode<\/code>  est\u00e1 compuesto por cuatro n\u00fameros:<br \/>\n<strong>1st<\/strong>  &#8211; Siempre establecido en  <code>0<\/code><br \/>\n<strong>2nd<\/strong>  &#8211; Especifica el permiso del propietario del directorio o archivo.<br \/>\n<strong>3rd<\/strong>  &#8211; Especifica el permiso del grupo de usuarios del propietario<br \/>\n<strong>4th<\/strong>  &#8211; Especifica el permiso de todos los dem\u00e1s.<\/p>\n<p><code>recursivo<\/code>  (opcional)<\/p>\n<p>(<code>true<\/code>  o  <code>false<\/code>)<br \/>\nPara crear la estructura anidada, el par\u00e1metro  <code>recrusive<\/code>  debe establecerse en  <code>true<\/code>.<\/p>\n<p><code>context<\/code>  (opcional)<\/p>\n<p>Conjunto de par\u00e1metros que mejoran o modifican el comportamiento de la corriente.<\/p>\n<p><strong>Nota:<\/strong>  PHP comprueba si el script operativo en el directorio tiene el mismo UID(propietario) en el directorio cuando el  <code>safe mode<\/code>  est\u00e1 activado.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>file_exists() para comprobar si un archivo o directorio existe en PHP is_dir() para comprobar si un archivo o directorio existe en PHP file_exists() vs s_dir() en PHP mkdir() en PHP Es posible crear una carpeta y establecer el permiso apropiado usando PHP, espec\u00edficamente usando la funci\u00f3n mkdir(). El modo de permiso por defecto es 0777 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[108],"class_list":["post-685","post","type-post","status-publish","format-standard","hentry","category-sin-categoria","tag-php"],"_links":{"self":[{"href":"https:\/\/blog.pirulug.com\/index.php?rest_route=\/wp\/v2\/posts\/685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.pirulug.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.pirulug.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.pirulug.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.pirulug.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=685"}],"version-history":[{"count":0,"href":"https:\/\/blog.pirulug.com\/index.php?rest_route=\/wp\/v2\/posts\/685\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.pirulug.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.pirulug.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.pirulug.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}