首頁 後端開發 php教程 PHP5的XML新特性_PHP教程

PHP5的XML新特性_PHP教程

Jul 21, 2016 pm 04:11 PM
php5 xml 文章 新功能 新特性 特性 面向


面向的讀者

這篇文章的物件導向是所有對PHP5的XML新功能感興趣的各個層級的PHP開發者。我們假定讀者掌握XML的基本知識。然而,如果你已經在你的PHP當中使用了XML,那麼這篇文章也會讓你受益非淺。

介紹

在當今的網路世界,XML已經不再是一個時髦詞了,它已經被廣泛的接受和規範的使用了。因此相對於PHP4,PHP5對於XML的支援更受到了重視。在PHP4你面對的幾乎都是非標準,API中斷,記憶體洩漏以及其它不完全的功能。儘管有些缺點已經在PHP4.3中改進,開發者們還是決定拋棄原有的程式碼,在PHP5重寫全部程式碼。

這篇文章將對PHP5中關於XML的所有令人興奮的新特性逐一介紹。

PHP4 的 XML

早期的PHP版本就已經開始支援XML了,而這只是一個基於SAX的接口,它可以輕鬆的解析任何XML文件。隨著PHP4加入了DOMXML擴充模組,XML被更好的支援了。後來XSLT做為補充被加了進來。在整個PHP4的階段,其它一些功能如HTML,XSLT和DTD驗證也被加到了DOMXML擴展中,不幸的是,由於XSLT和DOMXML擴展始終處於實驗階段,API部分也被不止一次的修改,它們還是不能以預設方式安裝。此外,DOMXML擴充功能沒有遵循W3C制定的DOM標準,而有自己的命名方法。雖然在PHP4.3中這部分得到了改善並且許多內存洩漏和其它一些功能也得以修復,但它始終沒有發展到一個穩定的階段,一些深入的問題已經幾乎不可能修復。只有SAX擴充被已預設方式安裝,其它的一些擴充從未被廣泛的使用。

基於所有這些原因,PHP的XML開發者決定在PHP5重寫全部程式碼,並遵循使用標準。

PHP5的XML
在PHP5中所有支援XML的部分幾乎全部重新編寫.現在的所有XML擴充都是基於GNOME專案的LIBXML2函式庫。這將允許在不同的擴充模組之間互相操作,核心開發者只需要在一個底層的函式庫上進行開發。例如,複雜的記憶體管理只實現一次就可以讓所有XML相關擴充功能得到改善。

除了繼承PHP4中聞名的SAX解析器之外,PHP5還支援遵循W3C標準的DOM和基於LIBXSLT引擎的XSLT。同時也加入了PHP獨有的SimpleXML擴充和符合標準的SOAP擴充。隨著XML越來越被重視,PHP開發者決定在預設安裝方式中加入更多對XML的支援。這意味著你現在可以使用SAX,DOM和SimpleXML,而這些擴充功能將會在更多的伺服器上安裝。然後對於XSLT和SOAP的支持,還需要在PHP編譯時被明確的配置。

資料流的支援

現在所有的XML擴充功能都支援PHP資料流,即使你不從PHP直接存取。例如,在PHP5中你可以從一個檔案或從一條指令存取資料流。基本上你能夠在任何可以存取普通文件的地方存取PHP資料流。

PHP4.3中簡要的介紹了資料流,在PHP5中已經得到了進一步的提高,包含文件訪問,網絡訪問和其它操作,如共享一套功能函數。你甚至可以使用PHP程式碼來實現你自己的資料流,這樣資料存取將變得非常簡單。關於這部分的更多細節請參考PHP文件。

SAX

SAX的全名是Simple API for XML,它是用於解析XML文檔的接口,是基於回調形式的。從PHP3開始就已經支援了SAX,到現在也沒有太大的變化。在PHP5中,API介面並沒有改變,所以你的程式碼仍然可以運作。唯一不同的是它不再基於EXPAT庫,而是基於LIBXML2庫。

這個變化帶來了一些對命名空間支援上的問題,這個問題在LIBXML2.2.6版本中已經解決。但是LIBXML2先前的版本中並沒有解決,因此如果你使用了xml_parse_create_ns();強烈建議在你的系統上安裝LIBXML2.2.6。

DOM

DOM (文檔物件模型)是由W3C制定的一套存取XML文檔樹的標準。在PHP4可以使用DOMXML來對此進行操作,DOMXML最主要的問題是它不符合標準的命名方法。而且在很長一段時間內還存在記憶體洩漏問題(PHP4.3已經修復了這個問題)。

新的DOM擴充是基於W3C標準完成的,包含方法和屬性名稱。如果你在其它語言中熟悉DOM,例如在JavaScript中,那麼在PHP中編寫類似的函數將變得非常容易。你不必每次都查看文檔,因為方法和參數都是相同的。

由於使用了新的W3C標準,基於DOMXML的程式碼將無法運作。在PHP的API有很大的不同。但是如果你的程式碼中使用了類似W3C標準的方法命名方式,移植並不是很困難。你只需要將載入函數和儲存函數修改,刪除函數名稱中的底線(DOM標準使用首字母大寫)。其它各處的調節當然也是必須的,但是主要邏輯部分可以保持不變。

讀取DOM

我不會在這篇文章中解釋DOM擴充的所有特性,那也是沒有必要的。或許你應該將HTTP://www.w3.org/DOM的文檔加入書籤。它基本上與PHP5的DOM部分相同。

在這篇文章的大多數例子中我們將使用同一個XML文件,zend.com上有非常簡單的RSS版本。將下面的文字貼到一個文字檔案中並儲存為articles.xml。





http://www.zend.com/zend/week/week172.php



http:/ /www.zend.com/zend/tut/tut-hatwar3.php



要將這個範例載入到一個DOM對象,首先要建立一個DOMDocument對象,然後載入XML文件。

$dom = new DomDocument();
$dom->load("articles.xml");

正如上面所提及的,你可以使用PHP的數據流來載入一個XML文檔,你應該這樣寫:

$dom->load("file:///articles.xml");

(或者其它類型的資料流)

如果你想將XML文件輸出到瀏覽器或做為標準標出,使用:

print $dom->saveXML();

如果你想把它儲存成文件,請使用:

print $dom->save("newfile.xml");

(注意這樣做會將文件大小送到stdout)

當然這個例子沒有太多的功能,讓我們來做一些更有用的。我們來取得所有的title元素。有很多方法可以辦到,最簡單的就是使用getElementsByTagName($tagname):

$titles = $dom->getElementsByTagName("title");
foreach($titles as $node) {
print $node->textContent . "n";
}

textContent屬性並不是W3C標準,它可以讓我們很方便的快速讀取一個元素的所有文字節點,使用W3C的標準讀取是下面這樣:

$node->firstChild->data;

(這時候你要確保firstChild結點是你需要的文字結點,否則你還得遍歷所有子結點來找)。

另外一個要注意的問題是getElementsByTagName()返回一個DomNodeList,對象,而不是像PHP4中get_elements_by_tagname()那樣返回一個數組,但是正像你在這個例子中看到的那樣,你可以使用foreach語句輕鬆的遍歷它。你也可以直接使用$titles->item(0)來存取結點。該方法將傳回第一個title元素。

另一個取得所有title元素的辦法是從根結點遍歷,你可以看到,這個方法更複雜,但是如果你需要的不只是title元素的時候,這個方法也就更靈活。

foreach ($dom->documentElement->childNodes as $articles) {
//如果節點是一個元素(nodeType == 1)且名字是item就繼續循環
if ($ articles->nodeType == 1 && $articles->nodeName == "item") {
foreach ($articles->childNodes as $item) {
//如果節點是一個元素,並且名字是title就列印它.
if ($item->nodeType == 1 && $item->nodeName == "title") {
print $item->textContent . "n";
}
}
}
}

XPath
XPaht 就像是XML的SQL,使用XPath你可以在一個XML文件中查詢符合一些模式語法的特定結點。想使用XPath來取得所有title結點,只需要這麼做:


$xp = new domxpath($dom);
$titles = $xp->query("/articles/item /title");
foreach ($titles as $node) {
print $node->textContent . "n";
}
?>

這樣和使用getElementsByTagName ()方法差不多,但是Xpath要強大的多,例如,如果我們有一個title元素是article的子元素(而不是item的子元素),getElementsByTagName()就會將它回傳。而使用/articles/item/title語法,我們只會得到在指定深度和位置的title元素。這只是一個簡單的例子,再深入一點可能是這樣:

/articles/item[position() = 1]/title 傳回第一個item元素的所有

/articles/ item/title[@id = '23'] 傳回所有含有id屬性且值為23的title

/articles//title 傳回所有articles元素下面的title(譯者註://代表任意深度)

你也可以查詢含有特殊兄弟元素的點,含有特殊文字內容的元素,或是使用命名空間等等。如果你必須大量的查詢XML文檔,適當的學習使用XPath會節省你很多時間,它使用簡單,執行速度快,比標準的DOM需要更少的程式碼。

寫入資料到DOM
文件物件模型並不是只能讀取和查詢,你也可以操作和寫入。 (DOM標準有點冗長,因為編寫者想盡量支持能夠想像到的每一個環境,​​但是它工作的非常好)。看看下面這個例子,它在我們的article.xml檔案中加入了一個新元素。

$item = $dom->createElement("item");
$title = $dom->createElement("title");
$titletext = $dom->createTextNode(" XML in PHP5");
$title->appendChild($titletext);
$item->appendChild($title);
$dom->documentElement->appendChild($item);
print $dom->saveXML();

首先,我們創建了所有需要的結點,一個item元素,一個title元素和一個包含item標題的文本結點,然後我們將所有的結點連結起來,把文字結點加到title元素上,把title元素加到item元素上,最後我們把item元素插入到articles根元素上。現在,我們的XML文件中有一個新的文章清單了。

擴充類別(class)
好了,上面的例子都可以在PHP4下面用DOMXML擴充來做(只是API有一些不同),能夠自己擴充DOM類別是PHP5的一個新特性,這使得書寫更多可讀性強的程式碼變得可能。以下是整個用DOMDocument類別重新寫的範例:

class Articles extends DomDocument {
function __construct() {
//必須呼叫!
parent::__construct();
//必須呼叫!
parent::__construct(); }

function addArticle($title) {
$item = $this->createElement("item");
$titlespace = $this->createElement("title");
$titletext = $this->createTextNode($title);
$titlespace->appendChild($titletext);
$item->appendChild($titlespace);
$this->documentElement- >appendChild($item);
}
}
$dom = new Articles();
$dom->load("articles.xml");
$dom->addArticle ("XML in PHP5");
print $dom->save("newfile.xml");

HTML
PHP5中一個經常不被注意到的特性是libxml2庫對HTML的支持,你不僅可以使用DOM擴展載入結構良好(well-formed)的XML文檔,還可以載入非結構良好的(not-well-formed)HTML文檔,把它當做標準的DOMDocument對象,使用所有能用的方法和特性,例如XPath和SimpleXML。

當你需要存取一個你無法控制網站的內容時,HTML的效能就顯示十分有用了。在 XPath, XSLT 或 SimpleXML的幫助下,你省掉了許多程式碼,像是使用正規表示式比較字串或SAX解析器。當HTML文件結構不是很好的時候,這個辦法尤其有用(這是個頻繁的問題!)。

下面的程式碼取得並解析php.net的首頁,將回傳第一個title元素的內容。

$dom = new DomDocument();
$dom->loadHTMLFile("http://www.php.net/");
$title = $dom->getElementsByTagName(" title");
print $title->item(0)->textContent;

請注意當指定元素找不到時,你的輸出可能會包含錯誤。如果你的網站還在使用PHP輸出HTML4程式碼,有個好消息要告訴你,DOM擴充不僅能載入HTML文檔,還能將他們儲存為HTML4格式的文件。在你新增完DOM文件後,使用$dom->saveHTML()來儲存。要注意的是,為了讓輸出的HTML程式碼符合W3C標準,最好不用使用 整齊的擴充?(tidy extension)。 Libxml2 函式庫支援的HTML並不會考慮到每個可能發生的事情,也無法很好的處理非通用格式的輸入。

驗證
XML文件的驗證越來越重要了。例如,如果你從一些國外資源中獲得了一個XML文檔,在你處理之前你需要檢驗它是否符合某個確定的格式。幸運的是你不需要在PHP中寫自己的驗證程序,因為你可以使用三個應用最廣泛的標準之一(DTD,XML Schema 或RelaxNG)來完成它。 .

DTD是一個產生於SGML時代的標準,缺少一些XML的新特性(如命名空間),而且由於它不是用XML寫的,它也很難被解析和轉換。
XML Schemai是由W3C制定的一個標準,它應用廣泛,幾乎包含了所有驗證XML文件所需的內容。
RelaxNG 是複雜的XML Schema標準的對頭,是由自由者組織創建的,由於它比XML Schema更容易實現,越來越多的程序開始支持RelaxNG了
如果你沒有遺留下來的計劃文件或非常複雜的XML文檔,那麼使用RelaxNG吧。它書寫和閱讀都比較簡單,越來越多的工具也支持它。甚至還有一個工具叫做Trang,它可以從XML範本中自動建立一個RelaxNG文件。而且只有RelaxNG(和老化的DTDS)被libxml2完全支持,儘管libxml2也即將完全支援ML Schema。

驗證XML文件的語法相當簡單:

$dom->validate('articles.dtd');
$dom->relaxNGValidate('articles.rng'); $dom->schemaValidate('articles.xsd'); 目前,所有這些只會簡單的回傳true或false,錯誤會被做為PHP警告輸出。顯然想返回給用戶友好的信息這並不是一個好主意,在PHP5.0以後的版本裡會有所改善。到底該怎麼實現目前還在討論中,但是錯誤報告肯定會處理的更好。

SimpleXML
SimpleXML 是PHP的XML家族中最後一個被加入的成員,加入SimpleXML擴充的目的是為了提供一個使用標準物件屬性和迭代器存取XML文件的更簡單的方法。該擴展沒有太多的方法,雖然如此它還是相當強大的。從我們的文件的取得所有title節點比原來需要更少的程式碼。

$sxe = simplexml_load_file("articles.xml");
foreach($sxe->item as $item) {
print $item->title ."n";
}

這是在幹嘛?首先將articles.xml載入到一個SimpleXML物件。然後取得所有$sxe中的item元素,最後$item->title回傳title元素的內容,就是這樣。你也可以使用關聯數組查詢屬性,使用: $item->title['id']。

看到了吧,這後面真是太神奇了,有許多不同的辦法可以得到我們想要的結果,例如, $item->title[0]返回和例子中相同的結果,另一方面,foreach($sxe->item->title as $item)只傳回第一個title,並不是文件中的所有title元素。 (就像我在XPath中預期的那樣)。

SimpleXML 其實是使用了Zend引擎2新功能的第一個擴充。因此也成了這些新功能的測試點,你要知道在開發階段bugs和不可預料的錯誤可不是少數。

除了上面例子中所使用的遍歷所有節點的方法,在SimpleXML中也有一個XPath接口,它為訪問單個結點提供了更簡單的辦法。

foreach($sxe->xpath('/articles/item/title') as $item) {
print $item . "n";
}

不可否認,這段程式碼也不比前面例子中的短,但是提供了更複雜或更深的嵌套XML文檔,你會發現和SimpleXML一起使用XPath會節省你很多的輸入。

寫入 SimpleXML 文件
你不但可以解析並讀取SimpleXML,還可以改變SimpleXML文件。至少我們加入一些擴充功能:

$sxe->item->title = "XML in PHP5 "; //title元素的新內容。
$sxe->item->title['id'] = 34; // title元素的新屬性。
$xmlString = $sxe->asXML(); // 將SimpleXML物件做為序列化的XML字串回傳
print $xmlString;

互用協作性
由於SimpleXML也是基於libxml2函式庫的,你可以在幾乎不影響速度的情況下輕鬆的將SimpleXML物件轉換成DomDocument物件。 (文件不用進行內部複製),由於這個機制,你擁有了二個物件的最好部分,使用一個適合你手頭工作的工具吧,它是這樣使用的:

$sxe = simplexml_import_dom( $dom);
$dom = dom_import_simplexml($sxe);
XSLT
XSLT是用來將XML文檔轉換為其它XML文檔的語言,XSLT本身是用XML編寫的,屬於功能性語言家族,在程式處理上和麵對物件語言(像PHP)有所不同。 PHP4中有二種XSLT處理器:Sablotron(在廣泛使用的XSLT擴充中)和Libxslt(在domxml擴充中),這兩種API不互相相容,使用方法也不相同。 PHP5只支援libxslt處理器,之所以選擇它是因為它是基於Libxml2的,因此也更符合PHP5的XML概念。

理論上將Sablotron綁定到PHP5也是可能的,但是不幸的是沒人來做。因此,如果你正在使用Sablotron,你不得不在PHP5中切換到libxslt處理器。 Libxslt 是具有JavaScript異常處理支援的Sablotron,甚至可以使用PHP強大的資料流來重新實現Sablotron獨有的計劃處理(scheme handlers)。此外,libxslt 是 最快的XSLT處理器之一,所以你還免費得到了速度的提升。 (執行速度是Sablotron的二倍)。

和本文討論的其它擴展一樣,你可以在XSL擴展,DOM擴展和vice versa之間交換XML文檔,實際上,你必須得這麼做,因為EXT/XSL擴展並沒有載入和儲存XML文檔的接口,只能使用DOM擴充。一開始學習XSLT轉換,你不需要掌握太多的內容,這裡也不存在W3C標準,因為這個API中從Mozilla「借」過來的。

首先你需要一個XSLT樣式表,將下列文字貼到一個新檔案並且儲存灰articls.xsl















然後用PHP腳本呼叫它::



$xsl = new DomDocument();
$xsl->load("articles.xsl");
$inputdom = new DomDocument();
$inputdom->load("articles.xml");

/* 建立XSLT處理器,並匯入樣式表*/
$proc = new XsltProcessor();
$xsl = $proc->importStylesheet($xsl);
$proc->setParameter(null, "titles", "Titles");

/* 轉換並輸出XML文件*/
$newdom = $proc->transformToDoc($inputdom);
print $newdom->saveXML();

?>

上面的範例先用DOM的方法load()載入XSLT樣式表articles.xsl,然後創建了一個新的XsltProcessor對象,該對象導到了後面要使用了XSLT樣式表對象,參數可以這樣設置setParameter(namespaceURI, name, value),最後XsltProcessor對象使用transformToDoc($inputdom )開始轉換並傳回一個新的DOMDocument物件。

. 這個API的優點在於你可以使用同一個樣式表轉換許多XML文檔,只需要將它載入一次然後重複使用它,因為transormToDoc()函數可以應用於不同的XML文檔。

除了transormToDoc(),還有二個用於轉換的方法:transformToXML($dom)傳回一個字串,transformToURI($dom, $uri)將轉換之後的文件儲存到檔案或一個PHP數據流。注意如果你想使用XSLT的一個語法如或indent="yes",你不能使用transformToDoc(),因為DOMDocument物件不能保存該訊息,只能當你將轉換後的結果直接儲存到字串或檔案中時才能這樣做。

呼叫PHP函數
XSLT擴展最後一個新加的特性是能夠在XSLT 樣式表內部調用任何PHP函數,主張正統的XML支持者一定不會喜歡這個函數(這樣的樣式表有點複雜,很容易混淆邏輯和設計),在某些地方卻是十分有用的。當涉及到函數時XSLT就變得很有限,即使想實現用不同的語言輸出一個日期也是非常麻煩的。但使用這個功能,處理這些就跟只使用PHP一樣容易。以下是XSLT新增一個函數的程式碼:



function dateLang () {
return strftime("%A");
}

$ xsl = new DomDocument();
$xsl->load("datetime.xsl");
$inputdom = new DomDocument();
$inputdom->load("today.xml");

$proc = new XsltProcessor();
$proc->registerPhpFunctions();

// 載入文件並使用$xsl來處理
$xsl = $proc ->importStylesheet($xsl);

/* 轉換並輸出XML文件*/
$newdom = $proc->transformToDoc($inputdom);

print $newdom-> saveXML();

?>

下面是XSLT樣式表datetime.xsl,它會呼叫這個函數。








下面是要使用樣式表轉換的XML文檔,today.xml(同理,articles.xml也會得到同樣結果)。




上面的樣式表,PHP腳本和所有的XML檔案會用目前系統設定的語言輸出星期的名字。你可以為php:function()增加更多的參數,加入的參數會被傳遞給PHP函數。這裡有一個函數php:functionString(),這個函數會自動將所有輸入的參數轉換成字串,所以你不需要在PHP裡轉換。

注意你需要在轉換之前呼叫$xslt->registerPhpFunctions(),否則PHP函數呼叫將因為安全原因不會被執行(你總是相信你的XSLT樣式表嗎?)。目前存取系統還沒有實現,也許在將來PHP5的版本中會實現這個功能。

摘要
PHP對XML的支援已經向前邁進了一大步,它符合標準,功能強大,互用協作性強,被作為預設選項安裝,已被授權使用。新加入的SimpleXML擴充功能提供了簡單快速存取XML文件的方法,可以節省你很多的程式碼,尤其是當你有結構化文件或可以使用強大的XPath。

感謝libxml2—PHP5 XML擴充所使用的底層函式庫,使用DTD,RelaxNG或XML Schema驗證XML文件現在已經被支援了。

XSL支援也得到了翻新,現在使用Libxslt庫,比原來的Sablotron庫在性能上有很大提高,而且,在XSLT樣式表內部調用PHP函數可以讓你寫出更強大的XSLT代碼。

如果你已經在PHP4或其它語言中使用了XML,你會喜歡PHP5的XML特性的,XML在PHP5中有了很大的變化,符合標準,和其它工具,語言是同等的。 (出處:Viphot)

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/314040.htmlTechArticle面向的讀者這篇文章的物件導向是所有對PHP5的XML新功能感興趣的各個程度的PHP開發者。我們假定讀者掌握XML的基本知識。然而,如果你已...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1319
25
PHP教程
1269
29
C# 教程
1248
24
iPadOS18新功能 iPadOS18新功能 Jun 12, 2024 pm 10:41 PM

今日凌晨,蘋果正式發布了iPadOS18,該系統不僅擁有iOS18當中的經典功能,而且還新增了一些獨特的功能,例如支援數學筆記計算器等,進一步提升了iPad用戶的體驗感,有興趣的朋友快來看看。這次iPadOS18不僅完美繼承了iOS18的核心功能,如個性化的控制中心設計,允許用戶根據個人偏好自由調整控制項順序和佈局,以及備受期待的遊戲模式,為遊戲玩家提供了更流暢、更沉浸的遊戲體驗,也特別針對iPad的大螢幕優勢和ApplePencil的創意用途,加入了多項獨特功能,進一步拓展了iPad的生產力

今日頭條發布文章怎麼有收益?今日頭條發布文章獲得更多收益方法! 今日頭條發布文章怎麼有收益?今日頭條發布文章獲得更多收益方法! Mar 15, 2024 pm 04:13 PM

一、今日頭條發布文章怎麼有收益?今日頭條發布文章獲得更多收益方法! 1.開通基礎權益:原創文章選擇投放廣告可獲得收益,影片必須原創橫屏才會有收益。 2.開通百粉權益:粉絲量達百粉以上,微頭條、原創問答創作及問答均可獲得收益。 3.堅持原創作品:原創作品包含文章、微標題及問題等,要求300字以上。注意違規抄襲作品作為原創發布,會被扣信用分,即使有收益也會被扣除。 4.垂直度:做專業領域一類的文章,不能隨意跨領域寫文章,會得不到合適的推薦,達不到作品的專和精,難以吸引粉絲讀者。 5.活躍度:活躍度高,

微軟Edge瀏覽器新功能「超拖曳」上線! 微軟Edge瀏覽器新功能「超拖曳」上線! Mar 04, 2024 pm 06:31 PM

小編近日得知,微軟Edge瀏覽器新功能「超級拖曳」上線,解鎖新分頁開啟連結第四種方式,方便用戶更快開啟連結。目前在微軟Edge瀏覽器中,用戶想要在新分頁中開啟連結或圖像,有以下三種方式:1、右鍵連結或圖像,然後選擇對應的操作選項。 2、拖曳連結或圖片到標籤頁欄。 3.使用滑鼠滾輪點擊連結或圖像。而「超級拖曳」帶來了第四種互動操作,使用者點擊連結、部分文字或圖像,然後將其橫向、向上或向下拖曳一點,即可在新標籤頁中開啟它。使用者拖曳文字之後,會預設呼叫Edge瀏覽器的預設搜尋引擎,開啟新的標籤頁

微信上線新功能:'安靜模式” 微信上線新功能:'安靜模式” Mar 04, 2024 pm 01:43 PM

據了解,微信上線了一個新功能:「安靜模式」。開啟後,微信在訊息通知、音訊視訊通話、視訊號碼內容播放等所有場景下,都不會再發出聲音。在iOS微信更新到最新版本,透過“微信”-“我”-“設定”-“關懷模式”-“安靜模式”,就能開啟。之後,微信在訊息通知、音訊視訊通話、視訊號碼內容播放等所有場景下,都不會再發出聲音。微信表示,這項功能是為了滿足那些無法聽到聲音的人的需求而開發的。對大多數人來說,聲音可能是非常普通和易得的,但他們往往忽略了聾人群體並不具備這種感知能力,儘管他們也像其他人一樣使用手機和微信。據

iOS18新功能爆料 iOS18新功能爆料 Mar 06, 2024 pm 02:25 PM

隨著蘋果即將發布其年度軟體重大更新的iOS18,這無疑將成為2024年備受矚目的熱門版本之一。據傳言,這次更新將堪稱iPhone的史上升級規模最大的軟體升級之一,以下就給大家簡單總結一下相關的功能升級iOS18新功能爆料1、據悉,蘋果或將融入visionOS式風格於iOS18中,給人以耳目一新的操作體驗。 2.據傳聞,該公司正積極測試AI模型,預計在iOS18版本上對Siri進行重大改進。 3.此外,近期蘋果已展開試驗計劃,向AppleCare推出了名為"Ask"的全新工具,旨在提升客戶答詢效率。 4

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

如何使用 PHP 函數處理 XML 資料? 如何使用 PHP 函數處理 XML 資料? May 05, 2024 am 09:15 AM

使用PHPXML函數處理XML資料:解析XML資料:simplexml_load_file()和simplexml_load_string()載入XML檔案或字串。存取XML資料:利用SimpleXML物件的屬性和方法來取得元素名稱、屬性值和子元素。修改XML資料:使用addChild()和addAttribute()方法新增元素和屬性。序列化XML資料:asXML()方法將SimpleXML物件轉換為XML字串。實戰案例:解析產品饋送XML,提取產品信息,轉換並將其儲存到資料庫中。

Golang中有類似類別的物件導向特性嗎? Golang中有類似類別的物件導向特性嗎? Mar 19, 2024 pm 02:51 PM

在Golang(Go語言)中並沒有傳統意義上的類別的概念,但它提供了一種稱為結構體的資料類型,透過結構體可以實現類似類別的物件導向特性。在本文中,我們將介紹如何使用結構體實現物件導向的特性,並提供具體的程式碼範例。結構體的定義和使用首先,讓我們來看看結構體的定義和使用方式。在Golang中,結構體可以透過type關鍵字定義,然後在需要的地方使用。結構體中可以包含屬

See all articles