-3

以下のコード セクションを使用していますが、explode() 関数を動作させることができません。

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

上記のコードから出力がないのはなぜですか。IDE はエラーがあるというヒントを提供しますが、どこにあるのかわかりません。

ありがとうございました。

4

2 に答える 2

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 = 改行、

\t = タブ、

\" = 二重引用符。ところで、文字列が「終了」しておらず、パーサー,$a);が残りを文字列の続きとして処理するため、構文エラーが発生します...

そのため、場合によって\は、それ自体が「実際の」文字ではないため、「実際の」バックスラッシュを意味するために 2 回入力する必要があります。(別のユーザー[@xdazz]が言っ'...'たように、エスケープを避けるために単一引用符文字列を使用できることを意味します)。

于 2012-08-17T10:07:28.060 に答える
4

をエスケープする必要があり\ます。

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

または、文字列に改行コードと見なされる$aような特別な文字が含まれている場合は、一重引用符を使用することをお勧めします。\n

$a='E:\xampp\htdocs\magento162\media\catalog\product\c\o\colorch091001-black-2.jpg';
于 2012-08-17T10:07:50.837 に答える