2012-08-17 52 views
-2

我正在使用下面的代碼部分,無法使explode()函數正常工作。爲什麼不爆炸()工作?

$a="E:\xampp\htdocs\magento162\media\catalog\product\c\o\colorch091001-black-2.jpg"; 
$b=explode("\",$a); 
print_r($b); 

爲什麼沒有上述代碼的輸出。 IDE提供了一個有錯誤的提示,但我不知道在哪裏。

謝謝。

+2

對於單引號建議,您必須使用另一個\ – CyberDem0n 2012-08-17 10:07:35

回答

8

最有可能的,你必須逃離反斜槓「\」爲雙反斜線「\\」,無論是在$a("\"...成爲explode("\\", $a);

即使StackOverflow上的語法高亮告訴你有一個錯誤:) (看你紅print_r?):)

$a="E:\\xampp\\htdocs\\magento162\\media\\catalog\\product\\c\\o\\colorch091001-black-2.jpg"; 
$b=explode("\\",$a); 

編輯:我會進一步解釋:在雙引號字符串一樣"....",反斜槓用於轉義一些特殊字符,如:

\ N =換行符,

\噸=標籤上,

\」 =雙引號,其中的方式生成作爲字符串沒有你的語法錯誤‘已完成’和解析器對待,$a);其餘的作爲字符串的延續...,

因此,在某些情況下,\本身並不是一個「真實」字符,因此需要鍵入兩次以表示「真實」反斜槓。 (這意味着,正如另一位用戶[@xdazz]所言,您可以使用單引號字符串'...'來避免轉義)。

4

您需要轉義\

$b=explode("\\",$a); 

你最好使用單引號爲$a,或者如果字符串包含類似\n這將被視爲一個新行代碼中的一些特殊字符。

$a='E:\xampp\htdocs\magento162\media\catalog\product\c\o\colorch091001-black-2.jpg'; 
+2

+1進行轉義。 – Cranio 2012-08-17 10:14:29