當前位置:首頁 » 編程語言 » php拷貝

php拷貝

發布時間: 2022-08-09 13:12:30

A. php如何復制文件和子文件夾中的文件到指定目錄,保持路徑順序不變

//使用()

$r=('test/3.html','3.html');

if($r){
echo'Success';
}else{
echo'Fail';
}

B. php復制目錄下的所有文件及文件夾

這個直接用下面這個函數就可以了,多看下手冊,很多例子的啊。

function recurse_($src,$dst) { // 原目錄,復制到的目錄

$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
recurse_($src . '/' . $file,$dst . '/' . $file);
}
else {
($src . '/' . $file,$dst . '/' . $file);
}
}
}
closedir($dir);
}

C. 把PHP程序拷貝到htdocs目錄

htdocs就是upupw環境里配置了的網站存放目錄,也就是網站根目錄,拷貝就是復制的意思!

D. PHP復制文件 移動到其他文件夾內

PHP 中的 () 函數可以實現

() 函數拷貝文件。

(source,destination)

參數說明
source 必需。規定要復制的文件。
destination 必需。規定復制文件的目的地。

詳細說明
將文件從 source 拷貝到 destination。如果成功則返回 TRUE,否則返回 FALSE。

提示:如果要移動文件的話,請使用 rename() 函數。

注釋:從 PHP 4.3.0 開始,如果啟用了 "fopen wrappers" 的話,source 和 destination 都可以是 URL。更多信息見 fopen()。如果 destination 是一個 URL,則如果封裝協議不支持覆蓋已有的文件時拷貝操作會失敗。

重要事項:如果目標文件已存在,將會被覆蓋。

例如:
<?php
echo ("source.txt","new_file/target.txt");
?>

E. PHP如何拷貝一個值,操作這個值不改變原值

php拷貝概念和大部分語言的拷貝概念一樣。其實就是個值和引用的區別。一般而言,你實例化1個對象以後,把其賦值給某個變數,其實只是把這個實例在內存里的地址告訴了變數,所以當你把這個變數賦值給另外1個變數時候,2個變數都是保存了同一個實例的地址。當你通過其中1個變數去修改內容,那麼你通過另外一個變數也能讀取到修改後的值。
比如假設fooclass有個x的屬性
$bar = new fooclass()
$foo = bar
這里的話,如果執行$foo.x = 5,那麼$bar.x也是5
而fin_var這個拷貝函數,則是把實例在內存里邊重新復制了1份並且把其返回。這種情況下$bar 和$foo已經指向不同的實例了。修改$foo的實例並不會對$bar產生影響。
還是上例,再執行$foo.x = 5 ,你訪問$bar.x就不會是5了。而是其初始值。

F. php什麼是淺拷貝,深

php淺拷貝:賦值時,引用賦值,相當於取了一個別名。對其中一個修改,會影響另一個
深拷貝:賦值時值完全復制,完全的,對其中一個作出改變,不會影響另一個

PHP中, = 賦值時,普通對象是深拷貝,但對對象來說,是淺拷貝。也就是說,對象的賦值是引用賦值。(對象作為參數傳遞時,也是引用傳遞,無論函數定義時參數前面是否有&符號)

G. php實現原型模式中深拷貝是什麼意思

找工作之前製作簡歷時,需要做很多份簡歷,而且簡歷的格式是一樣的,也就意味著要做很多重復性的工作。在編程過程中,遇到重復性工作多的時候,粘貼復制是最快的解決辦法。但是一旦這些代碼需要修改時,那麼每一處用到這段代碼的地方都需要進行修改,這也就增加了代碼維護工作。在學習VB的時候,我們總是把相同的代碼放在模塊中,然後用到這段代碼的地方就調用模塊,這樣的話耦合性又是比較大的。那麼,解決這個問題到底該怎麼辦呢?

設計模式中的原型模式就很好的解決了這個問題。原型模式是用原型實例指定創建對象的種類,並且通過拷貝這些原型創建的對象。

也就是說,先生成一份模板,然後其餘的對象都去拷貝這份模板,那麼得到的對象就都是一樣的了。

下面小編就以簡歷復制為例子,簡單介紹原型模式:
[java] view plain print?
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;">//工作經歷類
class WorkExperience {
public String workDate;
public String company;
}

//簡歷類
class Resume implements Cloneable{
private String name;
private String sex;
private String age;

private WorkExperience work;

public Resume(String name){
this.name=name;
work=new WorkExperience;
}

//設置個人信息
public void SetPersonalInfo(String sex,String age){
this.sex=sex;
this.age=age;
}

//設置工作經歷
public void SetWorkExperience(String workDate,String company){
work.workDate=workDate;
work.company=company;
}

public Object Clone(){
return this.Clone();
}
}

//客戶端
class WorkResume{
public static void main(String[] args){
Resume a =new Resume("張三");
a.SetPersonalInfo("男","20");
a.SetWorkExperience("1998~2000","XX公司");
Resume b=(Resume)a.Clone();
b.SetWorkExperience("2000~2006","YY公司");
}
}</span></span>
這樣設置完成之後得到的結果卻是兩條信息是一樣的,而且工作經歷都是最新的這一條。

做代碼的內存分析,可得到如下圖:

即a、b兩個對象指向的是同一塊內存,也就是說b在進行修改時,a的信息也會被修改,這也就是原型模式的淺復制。淺復制的意思就是說,只把對象a的引用復制給b,二者指向同一區域,當一個修改時,會影響另一個對象。

對代碼進行修改,將工作經歷類改為:
[java] view plain print?
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;">//工作經歷類
class WorkExperience implements Cloneable{
private String workDate;
private String company;

public Object Clone(){
WorkExperience obj=new WorkExperience();
obj.workDate=this.workDate;
obj.company=this.company;
return obj;
}
}</span></span>

將簡歷類中的Clone方法改為:
[java] view plain print?
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;"> public Object Clone(){
Resume obj=new Resume(this.work);
obj.name=this.name;
obj.sex=this.sex;
obj.age=this.age;
return obj;
}</span></span>

並且在簡歷類中添加私有構造方法:
[java] view plain print?
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;"> private Resume(WorkExperience work){
this.work=(WorkExperience)work.Clone();
} </span></span>
則得到的結果就是我們想要的結果了。

對新代碼進行內存分析,如下圖:

到此為止,原型模式的深淺復制就介紹完了,如果有什麼理解不到位的地方,歡迎廣大讀者給出指導。

總結

深淺復制其實不難,只要把內存分析搞懂了就好了。淺復制是把一個對象的引用復制給另一個對象,二者對同一塊內存區域進行操作,類似於參數傳遞中的傳址。而深復制則是把原型對象的內存區域也復制一份給拷貝對象,二者各自擁有自己的引用,各自操作自己的內存區域,互不影響,類似於參數傳遞中的傳值。

H. php如何真「拷貝」一個數組

參看以下代碼:

<?php

$a=array(1,2);
$b=$a;//$b是一個和$a相同的新數組,就是你所說的真「拷貝」
$c=&$a;//$c是一個$a數組的引用,任何對$a的操作都會影響到$c
熱點內容
插件編程用 發布:2025-01-21 13:04:07 瀏覽:216
jd源碼 發布:2025-01-21 12:58:19 瀏覽:643
ftp非阻塞 發布:2025-01-21 12:55:46 瀏覽:426
一般轎車買哪個配置 發布:2025-01-21 12:47:26 瀏覽:233
高強度加密大師解密 發布:2025-01-21 12:41:56 瀏覽:188
腳本精靈開發平台 發布:2025-01-21 12:41:54 瀏覽:61
haproxy演算法 發布:2025-01-21 12:31:05 瀏覽:679
雲伺服器集合 發布:2025-01-21 12:30:17 瀏覽:381
如何給客戶講解代理伺服器 發布:2025-01-21 12:29:31 瀏覽:72
兩g顯卡開守望先鋒什麼配置 發布:2025-01-21 12:27:05 瀏覽:559