2

私のphpコードでは、最終的に次を出力する一連のシェルスクリプトを実行します

['October 20, 2003', '047085815X', '978-\n0470858158', '1', u'\nWireless Foresight: Scenarios of the Mobile World in 2015 [Hardcover]\n']

上記の出力は $temp に保存されます。

ただし、echo $temp[0] を実行すると、最初の開き括弧が出力され、echo $temp[1] は一重引用符などが出力されます.....

これは、配列ではなく文字列であるためだと思います。

これを n 配列に変換したいのですが、各要素はカンマで区切られています。

ただし、2003 年 10 月 20 日にはカンマが含まれており、独自の要素のままにしておく必要があることに注意してください。

誰かが私が探している機能を教えてもらえますか。

4

4 に答える 4

2

[] の開始と終了をトリムしてから、str_getcsv()を使用します。

于 2012-10-11T09:04:44.400 に答える
1

これはあなたが探している機能だと思います

str_getcsv()

簡単な例

$line = "'October 20, 2003', '047085815X', '978-\n0470858158', '1', '\nWireless     Foresight: Scenarios of the Mobile World in 2015 [Hardcover]\n'";

$parsed = str_getcsv(
  $line, # Input line
  ",",   # Delimiter
  "'"   # Enclosure
);

print_r($parsed);

出力:

Array ( [0] => October 20, 2003 [1] => 047085815X [2] => 978- 0470858158 [3] => 1 [4] => Wireless Foresight: Scenarios of the Mobile World in 2015 [Hardcover] ) 
于 2012-10-11T09:04:25.973 に答える
0

uあなたの入力は、他のすべての回答が無視しているように見える一重引用符の外側にある不思議な記号を除いて、js 配列に非常によく似ています。私もそうです。一重引用符を二重引用符に変更すると、json_decode関数を使用して js 配列からphp配列を取得できるようになります。

$str = '["October 20, 2003", "047085815X", "978-\n0470858158", "1", "\nWireless Foresight: Scenarios of the Mobile World in 2015 [Hardcover]\n"]';
print_r(json_decode($str));
于 2012-10-11T09:41:13.557 に答える
0

あなたが持っているものは、JavaScript配列に近いようです。あなたのシェルスクリプトがどのように機能するかはわかりませんが、php 配列がどのように形成されるかは知っています。PHP配列を形成するには、次のものが必要です。

$temp = array('item1','item2','etc');

したがって、角かっこを除いて、次のように出力します。

$temp = array('October 20, 2003', '047085815X', '978-\n0470858158', '1', '\nWireless Foresight: Scenarios of the Mobile World in 2015 [Hardcover]\n');

そして、$temp[0] は正しい情報を返します。

于 2012-10-11T09:05:52.453 に答える