ቤት / የሊኑክስ አጠቃላይ እይታ / ፒኤችፒ ይሰራል - ከሌለ አቃፊ ይፍጠሩ። Mkdir በ PHP ውስጥ ተግባር ፣ መግለጫ እና ምሳሌዎች ፒኤችፒ ከሌለ አቃፊ መፍጠር

ፒኤችፒ ይሰራል - ከሌለ አቃፊ ይፍጠሩ። Mkdir በ PHP ውስጥ ተግባር ፣ መግለጫ እና ምሳሌዎች ፒኤችፒ ከሌለ አቃፊ መፍጠር

የ mkdir() ተግባር በተጠቀሰው ማውጫ ውስጥ አዲስ አቃፊ ይፈጥራል። ፍጥረት ከተሳካ፣ እውነት ይመለሳል። አዲስ አቃፊ ሲፈጥሩ የ$mode መለኪያን በመጠቀም የመዳረሻ መብቶችን ማዘጋጀት ይችላሉ። $recursive ወደ እውነት በማቀናበር ብዙ ንዑስ አቃፊዎችን መፍጠር ይችላሉ።

የ PHP ስሪት 4 እና ከዚያ በላይ።

ተግባር ቡል mkdir(ሕብረቁምፊ $pathname [፣ int $mode [፣ bool $recursive [፣ ሀብት $ አውድ]]))

mkdir ተግባር መለኪያዎች

$የመንገድ ስምወደሚፈጠረው ማውጫ የሚወስደው መንገድ።
የ$ ሁነታለተፈጠረው አቃፊ መብቶች በመጀመሪያ ደረጃ (0777) አስገዳጅ ዜሮ ያለው እንደ ኦክታል እሴት ተሰጥቷል። ከመጀመሪያው ዜሮ በተጨማሪ ቁጥሮቹ ለባለቤቱ፣ ለባለቤቱ ቡድን፣ ለሌሎች ሁሉም ሰው የመዳረሻ ደረጃዎችን ይወክላሉ።
የመዳረሻ ደረጃ የሚወሰነው በቁጥር ነው፡-
0 - መዳረሻ ተከልክሏል;
1 - የንባብ መዳረሻ;
2 - የመጻፍ መዳረሻ;
4 - የአፈፃፀም መዳረሻ.
ብዙ ጊዜ፣ መብቶች እንደ ጥምር መጠን ይገለፃሉ፣ ለምሳሌ፡-
7 – ሙሉ መዳረሻ (1+2+4);
5 - ማንበብ እና መፈጸም (1 + 4).
ነባሪው ዋጋ 0777 ነው።
$ ተደጋጋሚየጎጆ ንዑስ ማውጫዎች መፈጠር ይቻል እንደሆነ የሚወስን የቦሊያን መለኪያ።
$ አውድከጅረቶች ጋር ሲሰራ ጥቅም ላይ ይውላል. በ PHP 5.0.0 ውስጥ ተጨምሯል.

የ mkdir ተግባርን የመጠቀም ምሳሌዎች

mkdir( "አዲስ አቃፊ");

mkdir( "../አዲስ አቃፊ"); // አንድ ደረጃ ወደታች

mkdir ("/ አቃፊ1 / አቃፊ2 / አዲስ አቃፊ"); // ሙሉ መንገድ

mkdir( "አዲስ አቃፊ", 0777); // ከተመደቡ መብቶች ጋር አቃፊ ይፍጠሩ

ብዙ ንዑስ አቃፊዎችን መፍጠር ከፈለጉ $recursive = እውነትን ማዘጋጀት ያስፈልግዎታል።

mkdir ("አቃፊ1/አቃፊ2/አዲስ አቃፊ"፣ 0777፣ እውነት); // አሁን ባለው ማውጫ ውስጥ አቃፊ መፍጠር


የዚህ ጽሑፍ ህትመት የሚፈቀደው ወደ መጣጥፉ ደራሲ ድርጣቢያ አገናኝ ጋር ብቻ ነው።

በዚህ ጽሑፍ ውስጥ አቃፊዎችን በመፍጠር ችግር ዙሪያ ለመስራት አንድ አማራጭ እገልጻለሁ php በመጠቀምበአስተማማኝ ሁነታ.
በPHP ውስጥ አቃፊ ለመፍጠር መደበኛ mkdir() ተግባር አለ ፣ ግን በአብዛኛዎቹ ጉዳዮች ከጥቅም ውጭ ሆኖ ብዙ ሰዎች ስለ እሱ ያውቃሉ ፣ ግን በዚህ ችግር ዙሪያ መስራት እንደሚችሉ ብዙ ሰዎች አያውቁም።
ሁሉም ነገር በጣም ቀላል ነው, አብሮ የተሰራውን በመጠቀም አቃፊዎችን መፍጠር ያስፈልግዎታል php ተግባራትኤፍቲፒ
ከዚህ በታች ስለዚህ ጉዳይ በበለጠ ዝርዝር እጽፋለሁ.

ማህደር ሲፈጥሩ በ mkdir() ላይ ችግሮች።
እንደሚታወቀው በ php ውስጥ ከነቃ አስተማማኝ ሁነታ(safe_mode = በርቷል)፣ ከዚያ mkdir()ን በመጠቀም ማህደሮችን መፍጠር አይሰራም። የበለጠ ትክክለኛ ለመሆን, ሊፈጥሩት ይችላሉ, ነገር ግን ይህን አቃፊ ተጨማሪ መጠቀም የማይቻል ይሆናል. ወደዚህ አቃፊ ፋይሎችን መስቀል አይችሉም, ስሙን መቀየር አይችሉም እና ማጥፋት አይችሉም, በኤፍቲፒ በኩል ቢገቡም (በአንዳንድ ሁኔታዎች በኤፍቲፒ ማጥፋት ይችላሉ).

ደህንነቱ የተጠበቀ ሁነታ በሁሉም አገልጋዮች እና በሁሉም አስተናጋጅ አቅራቢዎች ላይ በነባሪነት ነቅቷል። Safe Modeን የማሰናከል አማራጭ ከሌልዎት ሌላ መውጫ አለ።

FTP በመጠቀም በ php ውስጥ አቃፊዎችን መፍጠር.
ሁሉም ማለት ይቻላል አገልጋይ እና ማስተናገጃ በ php ውስጥ የነቃ የftp ድጋፍ አላቸው።
በእነዚህ ተግባራት እገዛ mkdir () አቃፊን የመፍጠር ችግርን እንረዳለን.
በኤፍቲፒ በኩል አቃፊ የመፍጠር ምሳሌ።

$conn_id = @ ftp_connect ("ftp.server.ru" , 21, 5); // ከኤፍቲፒ አገልጋይ ጋር ይገናኙ
ከሆነ($conn_id) // ከአገልጋዩ ጋር ያለው ግንኙነት የተሳካ ከሆነ ይቀጥሉ
{
$login_result = @ftp_login($conn_id፣ "ተጠቃሚ"፣ "ማለፍ"); // ለኤፍቲፒ መግቢያ እና የይለፍ ቃል ያስገቡ
ከሆነ($login_ውጤት) // አገልጋዩ የመግቢያ ይለፍ ቃል ከተቀበለ, ይቀጥሉ
{
// አሁን በተግባራዊ ሁኔታ መጫወት ፣ ማብራት ወይም ማጥፋት (TRUE ፣ FALSE) ያስፈልግዎታል
// ተጨማሪ የ ftp ተግባራት በትክክል ካልሰሩ ይህንን ግቤት ለመቀየር ይሞክሩ (TRUE ወይም FALE)
ftp_pasv($conn_id፣ TRUE); // በዚህ አጋጣሚ ተገብሮ ሁነታ ነቅቷል
ftp_mkdir($ conn_id፣ "1/2/3"); // እና የአቃፊው ፈጠራ ራሱ
}
}
ftp_close ($ conn_id); // እና የኤፍቲፒ ግንኙነትን ይዝጉ
?>
አሁን, በኮዱ ላይ ትልቅ አስተያየት አይደለም.
የመጀመሪያው መስመር ከኤፍቲፒ አገልጋይ ጋር ይገናኛል። ብዙውን ጊዜ ከአካባቢው የኤፍቲፒ አገልጋይ ጋር ለመገናኘት localhostን እንደ አገልጋይ መግለጽ በቂ ነው፣ነገር ግን ሙሉ አድራሻውን መግለጽ ይችላሉ።
ተገብሮ ሁነታ ነቅቷል ወይም ተሰናክሏል በኤፍቲፒ ቅንብሮች ላይ ይወሰናል.

አቃፊ ሲፈጥሩ ይጠንቀቁ, ማህደሩ የተፈጠረው ከኤፍቲፒ መግቢያ ስር ነው. ያም ማለት እዚህ ያሉት መንገዶች ከመንገዶቹ የተለዩ ናቸው የፋይል ስርዓትእና ማህደሩ የተፈጠረው በኤፍቲፒ በኩል እንደታየው ነው።
አቃፊ ሲፈጥሩ እንደ እኔ ምሳሌ "1/2/3" ብዙ አባሪዎችን ከገለጹ, በዚህ አጋጣሚ ሁሉም የጎደሉ አቃፊዎች ይፈጠራሉ. አቃፊ "1" ከሌለ ይፈጠራል, እና በውስጡም "2" አቃፊው ይፈጠራል, እና በውስጡም "3" አቃፊው ይፈጠራል. መካከለኛ አቃፊዎች ቀድሞውኑ ካሉ ፣ ከዚያ የጎደሉት ብቻ ይፈጠራሉ።
አቃፊ ከመፍጠርዎ በፊት, ለምሳሌ ወደ አቃፊ መሄድ ይችላሉ


እና ከዚህ ተግባር በኋላ አቃፊ መፍጠር ይችላሉ. ወደ አቃፊው የሚወስደው መንገድ ያለ መሪ slash "2/3" ተብሎ ከተገለጸ, አቃፊው አሁን ካለንበት አቃፊ አንጻር ይፈጠራል. ማለትም አቃፊው "1/2/3" ይፈጠራል


አቃፊ በሚፈጥሩበት ጊዜ መሪ slash (/1/2/3) ከገለጹ ወደየትኛውም አቃፊ ምንም ይሁን ምን ማህደሩ የሚፈጠረው ከኤፍቲፒ ስር ነው።

አስተያየቶች

10/14/2009 ሰርጌይ
ሁሉም ብልህነት ቀላል ነው :)

12.12.2009 ቪክቶር
አመሰግናለሁ, ሁሉም ነገር ይሰራል, ነገር ግን በ ftp ደንበኛ ውስጥ የተፈጠሩት አቃፊዎች ወዲያውኑ አይታዩም, እንደገና ማስጀመር አለብዎት, ማለትም. ከአገልጋዩ ጋር ያለውን ግንኙነት ማቋረጥ እና እንደገና ማገናኘት ብቻ ሳይሆን ፕሮግራሙን ዝጋ እና እንደገና አሂድ (የፋይልዚላ ደንበኛን እጠቀማለሁ)።

12/14/2009 አስተዳዳሪ
ያ ብቻ ይመስለኛል የኤፍቲፒ ደንበኞችመሸጎጫ ፋይሎች እና አቃፊዎች. ለምሳሌ, በጠቅላላ አዛዥ ውስጥ ለእንደዚህ አይነት ጉዳዮች ልዩ "ዝማኔ" አዝራር አለ, FileZilla ይህ አለመኖሩ አሳፋሪ ነው.

01/24/2010 እስክንድር
እንዴት በፋይልዚላ ውስጥ እንደዚህ ያለ ነገር የለም, ስሪት 3.2.2 አለኝ, ቀድሞውኑ አንድ አመት ገደማ ነው እና እንደዚህ አይነት ተግባር አለ እና እኔ እስከማስታውስ ድረስ ሁልጊዜም ነበር !!!

08/27/2010 ቪታሊ
አቃፊዎች የተፈጠሩት በቀኝ 755 ነው ፣ ግን 777 ያስፈልግዎታል ።
በፍጥረት ደረጃ፣ አቃፊው በኤፍቲፒ በኩል የሚፈጠረውን መብቶች እንደምንም ማዋቀር ይቻላል?

08/27/2010 አስተዳዳሪ
ቪታሊ, ለዚህ ተግባር አለ
ftp_chmod($conn_id፣ 0777፣ $ፋይል)
አቃፊ ወይም ፋይል ከፈጠሩ በኋላ ይጠቀሙበት

08/28/2010 ቪታሊ
አመሰግናለሁ, አስተዳዳሪ!

09/12/2010 አንድሬ
ይቅርታ ፣ ለምን ብዙ ማውጫዎችን አልፈጥርም ፣ ማለትም

06/12/2011 ኢሊያ
የሆነ ነገር ጥሩ አይደለም. አገልጋዩ የሚከተሉትን ችግሮች ያስከትላል:
ማስጠንቀቂያ፡ ftp_close() መለኪያ 1 ግብዓት እንዲሆን ይጠብቃል፣ ቡሊያን በ /home/bos/p/h/p/phpscripts/public_html/formf.php በመስመር 19 ላይ ይሰጣል።

06/15/2011 ቪክቶር
ኢሊያ፣ ወደ ftp_close ተግባር የምታልፈው የመጀመሪያው መለኪያ ትክክል እንዳልሆነ ይጽፋል

06/29/2011 አሌክሲ
እንደ አንድሬ ተመሳሳይ ችግር
(በርካታ ማውጫዎች አልተፈጠሩም)
ftp_mkdir ($conn_id, "1"); እንዴት እንደሚሰራ
ግን ልክ እንደዚህ ftp_mkdir ($ conn_id, "1/2/3");
???

07/27/2011 ቪክቶር
አሌክሲ ፣ እንግዳ ፣ ፈትሻለሁ ፣ ብዙ አቃፊዎችን ይፈጥርልኛል።
ምናልባት በአገልጋዩ ላይ አንዳንድ ተንኮለኛ ሞድ ነቅቷል ከዛ ፎልደሮችን አንድ በአንድ መፍጠር ያስፈልግዎታል ፣ መጀመሪያ ፎልደር 1 ይፍጠሩ ፣ ከዚያ ያስገቡት እና አቃፊ 2 በእሱ ውስጥ ይፍጠሩ ፣ ከዚያ አቃፊ 2 ያስገቡ እና በውስጡ 3 ይፍጠሩ…

11/07/2011 k1-801 (ዲሚትሪ ይቻላል)
እና ማህደሮችን ለመሰረዝ, እኔ እስከገባኝ ድረስ, በ
rmdir_ftp($conn_id፣$dir);
ታዲያ?

እና, በነገራችን ላይ, በሆነ ምክንያት ለእኔ አቃፊ አይፈጥርም (እና ስህተቶችን አይጽፍም ... እንግዳ ...)

03/10/2012 ያ
አመሰግናለሁ, አለበለዚያ በዚህ ጥያቄ ተሠቃየሁ.
እና ሁሉንም ነገር ይቅር ትላላችሁ እና ዋናው ነገር ይሰራል

05/29/2012 ሚካሂል
እርግጥ ነው ይቅርታ። ይህንን ኮድ የት ነው መጻፍ ያለብኝ ፣ ካልሆነ ግን በፍፁም ጥሩ አይደለሁም ፣ ግን በእውነቱ አቃፊ መፍጠር አለብኝ))

07/04/2012 Nomaq
የሆነ ችግር ገጥሞኛል... ለመጀመሪያ ጊዜ ኮዱ ሲዘል ለሁለተኛ ጊዜ እንደዚህ አይነት አቃፊ አስቀድሞ አለ ይላል...የተፈጠረ ይመስላል፣ነገር ግን ኤፍቲፒን እንደገና ከጀመረ በኋላም አይታይም።
እና ደግሞ፣ ፒኤችፒ ፋይል ባለበት ተመሳሳይ አቃፊ ውስጥ አቃፊ መፍጠር አለብኝ ፣ ግን አንድ እርምጃ ወደ ኋላ ተመለስ እና ከዚያ ሌላ አቃፊ አስገባ እና እዚያ ፍጠር… እንደዚህ ያለ ነገር
../folder1/አዲስ አቃፊ እዚህ
እባክዎን ይረዱ ፣ አስቸጋሪ ካልሆነ) አመሰግናለሁ)

07/04/2012 Nomaq
መንገዶቹን አውጥቻለሁ))) በአጠቃላይ ለጽሑፉ አመሰግናለሁ ፣ ማንም ሰው እንዴት ምን እንደሆነ በትክክል ማብራራቱ ያልተለመደ ነገር ነው)))

01/27/2013 CiliZ
መልካም, ለጽሑፉ አክብሮት

06/05/2013 ቫሲሊ
የኮርፖሬት አቃፊ ዋናው አካል ነው የድርጅት ማንነትኩባንያዎች. አነስተኛ መጠን ያላቸው ሰነዶችን እና የወረቀት ቁሳቁሶችን ለማያያዝ ምርት ነው. ማህደሮች ለሁለቱም በኩባንያ ውስጥ ፣ ሰነዶችን ለማከማቸት እና ለማንቀሳቀስ ፣ እና ለማስታወቂያ ዓላማዎች ያገለግላሉ። በድር ጣቢያው ላይ ተጨማሪ ዝርዝሮች: www.logodesigner.ru/papki

መለያዎችን አስወግድ (12)

በዎርድፕረስ ጭነቶች ከብሉሆስት ብዙ ጉዳዮች አጋጥመውኛል በዎርድፕረስ ጭብጥ ላይ ስህተቶች ያጋጠሙኝ ምክንያቱም የሰቀላዎች wp-content/loads አቃፊ ጠፍቷል።

በግልጽ ለማየት እንደሚቻለው Bluehost cPanel WP ጫኝ ይህን አቃፊ አይፈጥርም, ምንም እንኳን HostGator ቢሰራም.

ስለዚህ ማህደሩን የሚፈትሽ እና ሌላ የሚፈጥረው ኮድ ወደ ጭብጡ መጨመር አለብኝ።

መልሶች

ይህን ይሞክሩ፡

ከሆነ (!ፋይል_የሚኖር("መንገድ/ወደ/ ማውጫ")) ( mkdir ("መንገድ/ወደ/ ማውጫ፣ 0777፣ እውነት)

0777 ቀድሞውንም የማውጫዎች ነባሪ ሁነታ እንደሆነ እና አሁንም አሁን ባለው umask ሊቀየር እንደሚችል ልብ ይበሉ።

ዎርድፕረስ እንዲሁ በጣም ምቹ የሆነ ተግባር አለው wp_mkdir_p እሱም በተደጋጋሚ የማውጫ መዋቅር ይፈጥራል።

የማጣቀሻ ምንጭ፡-

ተግባር wp_mkdir_p($ ዒላማ) ( $ መጠቅለያ = ባዶ፤ // ፕሮቶኮሉን ከ(wp_is_stream($ target)) (ዝርዝር($ መጠቅለያ፣ $ ዒላማ) = ሊፈነዳ("://"፣ $ target, 2);) // ከ php.net/mkdir ተጠቃሚ ማስታወሻዎችን አበርክቷል $ target = str_replace("//", "/", $ target);($wrapper !== null) ከሆነ ($ target = $ ዒላማ;) // አንዳንድ ፒኤችፒ ስሪቶች $ target = rtrim ($ target, "/"); ከሆነ (ባዶ($ ዒላማ)) $ target = "/"; (ፋይል_ኤክስፐርት($ዒላማ)) ከተመለሰ እና $ target_parent = dirname($ target); "!= $ target_parent && ! is_dir($ target_parent)) ( $target_parent = dirname($target_parent); ) // የፈቃድ ቢትስ ያግኙ። ከሆነ ($stat = @stat($target_parent)) ($dir_perms = $stat[ "ሞድ"] & 0007777;) ሌላ ($dir_perms = 0777;) ከሆነ (@mkdir ($ ዒላማ, $ dir_perms, እውነት)) (// $ dir_perms የሚያሻሽል umask ከተዘጋጀ, እኛ እንደገና ማድረግ አለብን. የ$dir_permsን በትክክል በ chmod() ያዋቅሩት ($dir_perms!= ($dir_perms & ~umask())) ($folder_parts = explode( "/", substr($ target, strlen($target_parent) + 1));<= count($folder_parts); $i++) { @chmod($target_parent . "/" . implode("/", array_slice($folder_parts, 0, $i)), $dir_perms); } } return true; } return false; }

ለ ($i = 1; $i

ለመግቢያ ጣቢያው ተመሳሳይ እፈልጋለሁ. ከሁለት ተለዋዋጮች ጋር ማውጫ መፍጠር ነበረብኝ። የ$ ማውጫው ከተጠቃሚዎች ፈቃድ ቁጥር ጋር ሌላ ንዑስ አቃፊ ለመፍጠር የፈለግኩበት ዋና አቃፊ ነው።

አንድ ጊዜ አካትት (".../include/session.php"); $lnum = $ session-> lnum; //የተጠቃሚዎች ፍቃድ ቁጥር ከክፍለ-ጊዜዎች $ directory = uploaded_labels; // የአቃፊው ስም በ (! file_exists($ directory."/"$lnum)) (mkdir($ directory."/"$lnum, 0777, true);

በጎግል ላይ እንደሚታየው የበለጠ አጠቃላይ የሆነ ነገር። ዝርዝሮቹ የበለጠ ግልጽ ቢሆኑም፣ የዚህ ጥያቄ ርዕስ የበለጠ አጠቃላይ ነው።

/** * በተደጋጋሚ ረጅም የማውጫ ዱካ ይፍጠሩ */ ተግባር ፍጠር መንገድ($ ዱካ) (( is_dir ($ ዱካ) ከሆነ) ወደ እውነት ይመለሱ፤ $prev_path = substr($path, 0, strrpos($path, "/", -) 2) + 1) $ መመለሻ = መፍጠር ($ prev_path);

የማቆሚያ ደረጃን በማቅረብ ሊሻሻል ይችላል ስለዚህ ከተጠቃሚው አቃፊ ወይም የሆነ ነገር ውጭ ከወጣ ብቻ አይሳካም እና ፈቃዶችን በማንቃት።

አስቀድሞ ከሌለ አቃፊ ለመፍጠር

የአካባቢን ጉዳይ ግምት ውስጥ ማስገባት.

  • WordPress.
  • የድር አስተናጋጅ አገልጋይ።
  • ሊኑክስ ፒኤችፒን እያሄደ አይደለም ብለን እንገምታለን።

ቡል mkdir(string $pathname[, int $mode=0777[, bool $recursive=FALSE[, resource$context]]])

መመሪያው የሚፈለገው መለኪያ $pathname ብቻ እንደሆነ ይገልጻል!

ስለዚህ በቀላሉ ኮድ ማድረግ እንችላለን-

ማብራሪያ፡-

ምንም መለኪያ ማለፍ አያስፈልገንም ወይም ማህደሩ መኖሩን ወይም አስፈላጊ ከሆነ የማስተላለፍ ሁነታ መለኪያውን ማረጋገጥ አያስፈልገንም; በሚከተሉት ምክንያቶች፡-

  • ትዕዛዙ 0755 (የህዝብ ማህደር ነባሪ ፍቃድ) ወይም 0777 ፍቃድ ያለው ማህደር ይፈጥራል።
  • ሁነታ ችላ ተብሏል ፒኤችፒን የሚያሄድ ዊንዶውስ አስተናጋጅ .
  • የ mkdir ትዕዛዝ ማህደሩ ካለ አብሮ የተሰራ ቼክ አለው; ስለዚህ መመለሱን ብቻ ማረጋገጥ አለብን እውነት | ሐሰት; እና ይሄ ስህተት አይደለም፣ ማስጠንቀቂያው ብቻ ነው፣ እና ማስጠንቀቂያው በነባሪ አገልጋዮችን በማስተናገድ ላይ ተሰናክሏል።
  • እንደ ፍጥነቱ መጠን ማስጠንቀቂያው ከተሰናከለ ፈጣን ይሆናል።

ይህ ጥያቄውን የሚመለከቱበት እና የተሻለውን ወይም ጥሩውን መፍትሄ ያለመጠየቅ ሌላ መንገድ ነው።

በ PHP7፣ ፕሮዳክሽን አገልጋይ፣ ሊኑክስ ላይ ተፈትኗል

መሞከርም ትችላለህ፡-

$dirpath = "መንገድ / ወደ / dir"; $mode = "0777"; is_dir($dirpath) || mkdir($dirpath፣$mode፣እውነት)

ከሆነ (!is_dir("path_directory")) (@mkdir("መንገድ_ዳይሬክተር");)

አቃፊ ለመፍጠር ፈጣኑ መንገድ፡-

ከሆነ (! is_dir ("መንገድ / ወደ / ማውጫ")) ( mkdir ("መንገድ / ወደ / ማውጫ", 0777, እውነት);)

ታረጋለህ

Printf("ሠላም %s፣
", $ ስም);

ከመጫኑ በፊት ኩኪዎች, የተከለከለ ነው. ከራስጌዎች በፊት ምንም ውሂብ መላክ አይችሉም, ባዶ መስመር እንኳን.

ፒኤችፒ አንድ ነጠላ ተግባር አለው - mkdir() ይህም አንዳንድ ጊዜ በቤተሰብ ውስጥ በጣም አስፈላጊ የሆኑትን በድረ-ገፁ አገልጋይ ላይ ማውጫዎችን ለመፍጠር ያስችልዎታል። ለምሳሌ, አዲስ ቁሳቁስ በሚፈጥሩበት ጊዜ, ለእሱ አቃፊ መፍጠር አለብዎት, እንደገና የእርስዎን ሲኤምኤስ በመጠቀም, ሁሉንም አስፈላጊ ፋይሎች ይሰቅላሉ.

ማክዲር ("/ መንገድ/ወደ/ማይ/ድር", 0700);

እነዚያ። በአንድ የተወሰነ ማውጫ ውስጥ አዲስ አቃፊ እንፈጥራለን እና ለምሳሌ ፣ ሁነታውን ወደ ሁነታ 0700 እናዘጋጃለን ፣ ለምሳሌ ፣ ፋይሎችን ወደ አቃፊው ለመፃፍ ፣ ሁነታውን ወደ 0777 እንለውጣለን ።

ነገር ግን ይህ የ mkdir () ችግር የሚነሳው ነው. ይህን ሲያደርጉ php ስክሪፕትየ safe_mode አገልጋይ ተግባር ሲነቃ ባለቤቱ (UID) ይጣራል እና የስክሪፕቱ ባለቤት እና ማህደሩ የማይዛመዱ ከሆነ፣ ለምሳሌ ፋይል ወደተፈጠረው ማውጫ መፃፍ፣ መሰረዝ አይችሉም። በውስጡ ፋይል ያድርጉ ወይም ለምሳሌ በኤፍቲፒ በኩል አቃፊውን እራሱ መሰረዝ አይችሉም።

ነገር ግን ለዚህ ችግር የበለጠ የሚያምር መፍትሄ አለ፣ አስተናጋጁ የ safe_mode ተግባርን እንዲያሰናክልልዎ ሳይጠይቁ (ይህ ተግባር በሁሉም ማስተናገጃ ጣቢያዎች ላይ በነባሪነት የነቃ ነው፣ ደህንነትን ለማረጋገጥ)። በመሠረቱ፣ የሚከፈልባቸው ማስተናገጃ አገልግሎቶች የftp መዳረሻን ይሰጣሉ፣ እና የምንጀምረው ይህ ነው።

$conn_ftp = @ftp_connect("Your_ftp_server", 21, 5);

በተግባሩ ውስጥ የመጀመሪያው ተለዋዋጭ የ ftp አገልጋይዎ አድራሻ ነው ፣ ሁለተኛው ከ ftp ጋር የሚገናኙበት ወደብ እና የመጨረሻው የተፈቀደ የግንኙነት ጊዜ ማብቂያ ነው። ስለ ጊዜው ማብቂያ ትንሽ, ለቀጣይ የአውታረ መረብ ስራዎች አስፈላጊ ነው, ካላስገቡት, ከዚያ ነባሪ እሴት ወደ 90 ሰከንድ ተቀናብሯል. ከግንኙነቱ በኋላ የተሳካ መሆኑን እንፈትሻለን እና መግቢያውን እና የይለፍ ቃሉን እንልካለን።

($ conn_ftp) // ግንኙነቱ የተሳካ ከሆነ ( $login_result = @ftp_login($conn_ftp, "ተጠቃሚ", "pass"); //($login_result) // መግቢያ እና የይለፍ ቃል ማረጋገጥ ካለፉ ለኤፍቲፒ መግቢያ እና የይለፍ ቃል ያስገቡ ስኬት(ftp_pasv($conn_ftp፣ TRUE);))

መግቢያውን እና የይለፍ ቃሉን ካረጋገጥን በኋላ በፓስቲቭ ሁነታ ላይ መወሰን እና ወደ TRUE ወይም FALSE ማዘጋጀት አለብን - ተጨማሪ የኤፍቲፒ ተግባራት በትክክል ካልሰሩ ይህ አስፈላጊ ነው. አሁን ተገብሮ ሁነታን ከገለፅን በኋላ አቃፊዎቻችንን መፍጠር እንችላለን ፣ ለወደፊቱ ለእርስዎ ጠቃሚ ሊሆኑ የሚችሉትን ሁሉንም ተግባራት እገልጻለሁ ።

$ፋይል = ftp_mkdir($conn_ftp፣ "public_html/materials/345"); // በቁሳቁሶች አቃፊ ውስጥ ማውጫ 345 መፍጠር ፣ የቁሳቁስ አቃፊው ከሌለ ፣ // እሱ እንዲሁ ይፈጠራል ፣ ከሕዝብ_html አቃፊ ጋር ተመሳሳይ ነው (ይህ ማውጫ // የተጠቆመው ሙሉውን ዱካ ማየት እንዲችሉ ነው ፣ ካልሆነ ግን ይህ ነው ። ልክ አንድ አቃፊ ከጣቢያው ጋር) ftp_chdir($conn_ftp, "public_html/materials"); //በእርግጠኝነት የቁሳቁስ ማህደር ካለህ ሙሉውን //መንገዱን መፃፍ አያስፈልግህም መጀመሪያ ወደ እሱ መሄድ ትችላለህ ከዛም አቃፊ 345 ፍጠር //የሚከተለውን ኮድ ftp_mkdir ($conn_ftp, "345") ftp_chmod($ conn_ftp, 0777, $ ፋይል); // ሁሉም አቃፊዎች በነባሪ ሁነታ 0755 ተፈጥረዋል, ይህ ትዕዛዝ // ወደ 0777 እንዲቀይሩ ይፈቅድልዎታል, ይህም ፋይሎችን ወደ ተፈጠረ አቃፊ ለመጨመር ያስችልዎታል.

አሁን ሁሉም ምን እንደሚመስል ለማየት እንዲችሉ የተሟላ የስራ ኮድ ምሳሌ እሰጣለሁ፣ ለምሳሌ የእኔ፡-

$dir_name = ጊዜ (); // እዚህ ስክሪፕቱ በተጀመረበት ጊዜ ላይ በመመስረት የአቃፊውን ስም እፈጥራለሁ $ conn_ftp = @ftp_connect ("your_ftp_server", 21, 5); ከሆነ($ conn_ftp) // ግንኙነቱ የተሳካ ከሆነ ( $login_result = @ftp_login($conn_ftp, "user", "pass"); //($login_result) // መግቢያ እና የይለፍ ቃል ማረጋገጥ ካለፉ ለኤፍቲፒ መግቢያ እና የይለፍ ቃል ያስገቡ ስኬት ( ftp_pasv ($ conn_ftp, TRUE); ftp_chdir ($conn_ftp, "public_html/ማቴሪያሎች"); ftp_mkdir ($conn_ftp, $dir_name); ftp_chmod ($ conn_ftp, 0777, $dir_name); ) )

እንዲሁም በሚፈጥሩበት ጊዜ ማውጫዎችን ስለመግለጽ ትንሽ መናገር ጠቃሚ ነው; ከኤፍቲፒ አገልጋይ ጋር ሲገናኙ ሁል ጊዜ ከሥሩ ጋር ይገናኛሉ፣ ስለዚህ ይህንን ልብ ይበሉ።