• ベストアンサー

PHPでの配列を分割する方法を教えて下さい

私はPHPを始めたての初心者です。 現在、私は2chビューワーを作って居ます。 まず、datを読み込み、explodeで<>を条件に分割しました。 ここからメール欄、名前欄、ID、BE、内容などを分けて別の変数の配列に分けて入れたいのですが、良い方法が思いつかないのです、どなたか教えて頂けないでしょうか。 現在のスクリプトを貼ります。 $dat = @file_get_contents($dat0); #datの取得 $dat_bunkatu = explode("<>", "$dat"); $dat0はdatのアドレスです。 宜しくお願いします

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

2chのdatファイルの形式には詳しくないのですが、file_get_contentsで読んでいいような形式なのですかね。 掲示板のログって、普通は行ごとの形式なのでfileで読んで処理した方がいいのでは? $name = array(); $mail = array(); // 同様に保存したい配列を定義 $array = file($dat0) or die('cannot get'); foreach ($array as $val) { $item = explode('<>', rtrim($val)); $name[] = $item[0]; $mail[] = $item[1]; // 同様に配列にセット } あとの処理を考えると、 $dat = array(); $array = file($dat0) or die('cannot get'); foreach ($array as $val) { $item = explode('<>', rtrim($val)); $dat[] = array('name'=>$item[0], 'mail'=>$item[1], ・・・・); } としておいて、foreachで$dat(二次元配列)を処理する方が楽かもしれませんが、そのあたりはお好みで(汗

S-DUCK
質問者

お礼

ありがとうございます! 無事に表示出来ました。

その他の回答 (1)

回答No.1
S-DUCK
質問者

お礼

むむむ・・・ よくわからない・・・ ありがとうございました!

関連するQ&A

  • PHP 文字分割で配列に。

    こんにちは。 先日よりPHPにて文字列を分割し配列する事に悩んでいます。 質問内容としましては、 $str = "文字","1,2,3","テキスト" を Array ( [0] => 文字" [1] => "1,2,3" [2] => "テキスト" ) の様に配列にしたいと思っています。 今までは、sprit(",", $str) で分割していましたが、PHP 5.3.0 で 非推奨となったことで explode(",", $str) に変更。 その後今回の様なデータは無く問題ありませんでしたが、新しくデータを読み込みした時、ダブルクォートの中にコンマがあり、 Array ( [0] => 文字" [1] => "1 [2] => 2 [3] => 3" [4] => "テキスト") と分割され、エラーとなりました。 色々、「Sprit」「PHP 分割 ダブルクォーテーション」等で検索しているにも関わらず、希望の情報がヒットしませんでした。 改善方法若しくは情報の記載されておりますサイトがあればご誘導いただければ幸いです。 初歩的な質問かと思いますが、お願い致します。 サーバの種類: MySQL サーバのバージョン: 5.5.42 - Source distribution PHP/5.6.10

    • ベストアンサー
    • PHP
  • PHPの配列をjavascriptへ渡したい

    PHPの配列をjavascriptの配列に渡したいのですがやり方がわかりません。 変数の渡し方ならわかるのですが配列はどう渡せばいいのでしょうか? for文を使って渡せばいいと思うんですがどうやればいいか分かりません。 <?php $filedata=file("data.txt");//javascriptに渡したい配列 ?> <script language="javascript"> var a=new Array();//PHPの配列をこの配列に入れたい </script> 何方か教えてください。

    • ベストアンサー
    • PHP
  • 簡単なPHPスクリプトを動的に生成したい

    PHPスクリプトを動的に生成することは可能でしょうか? たとえば [ index.php ] <html> <head></head> <body>  <?php   print file_get_contents('format.txt');  ?> </boy> </html> [ format.txt ] echo "aaa"; のようにスクリプトをformat.txtに記述しておき それをindex.phpを読み込んだときに展開するのです。 しかし、上記のスクリプトを実行するとecho "aaa";と表示され、 aaaとは表示してくれませんでした。 PHPでこういう動的にスクリプトを展開するようなことは出来ないのでしょうか?

    • ベストアンサー
    • PHP
  • PHPでJSONを扱うときに配列の参照について

    Web ad Fortune http://jugemkey.jp/api/waf/api_free.php という占いのAPIをPHPにて使おうと思い、 JSON形式で情報が帰ってくるようなので JSONについて調べて json_decode()関数を使うことにしました。 しかし、いまいち配列からのデータ参照ができません。どういうことかというと、 牡羊座のランクを取り出したいときに 【ソース】 <?php $json = file_get_contents("http://api.jugemkey.jp/api/horoscope/free/2009/02/27","r"); $obj = json_decode($json); echo "<pre>"; print_r($obj->horoscope->2009/02/27[0]["rank"]); echo "</pre>"; ?> としても何も表示されません。 ちなみに、print_rの部分を print_r($obj->horoscope); とすると http://nanigashi.biz/json.php のように表示されます。 配列からの情報の読み込み(データ参照)がわかりません。 教えてください。

    • ベストアンサー
    • PHP
  • phpで画像を扱う方法についてです。

    phpで画像を扱う方法についてです。 やりたいことは、下記です。 1.外部サイトから画像を読み込む 2.読み込んだ画像をサーバーに保存 使用しているレンタルサーバーの都合で、 ・file_get_contents ・file_put_contents が使用できず、代替の方法を探しております。 PHPのバージョンは5.2.14です。 ※iniファイルによる設定変更は不可です。 方法をご存知の方がいらっしゃいましたら、 ご教授いただけたらと思います。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHP配列をJavaScriptに渡したい

    全くの初心者です。 PHPファイルのなかで外部のテキストファイルから読み込んだデータ$listをJavaScriptの配列に変換したいのですが、分かりません。よろしくお願いします。 JavaScriptが外部のデータを読み込めないなら、いったんPHPでオプションメニューに書き込んだあと、これをJSで配列に取り込むことも考えたのですが、これもオプションメニューの各アイテムをどうしたら読み取れるのかが分かりませんのであきらめたしだいです。 <?php $file = fopen("GermJ.txt","r"); $list = file('GermJ.txt'); fclose($file);  $max=count($list); ?> <SCRIPT type="text/javascript"> <!-- var jsArray; // グローバル宣言 function Arraycreate() {  jsArray = new Array($max);  //$max をこうすることは可能ですか?  for (i = 0; i <= $max-1; i++) { jsArray = $list[i];???????? (分かりません) } } // --> </SCRIPT>

    • ベストアンサー
    • PHP
  • PHPでWebページの特定部を取得したいのですが、上手くいきません。

    PHPでWebページの特定部を取得したいのですが、上手くいきません。 現在file_get_contentsを用いてURLを指定して取得し、preg_matchの引数にする方法で行っています。 また、preg_matchは以下のように用いています。 preg_match("/パターン(.*?)パターン/s", $html, $matches); print_rで$matchesを表示してみたところArray()のみ出力されます。 また、話が逸れて申し訳ないですが、上記とは別にfile_get_contentsを用いて動的にURLを指定して取得しているのですが、処理に時間がかかります。(約10秒) $wordをURLに組み込む変数として以下のように記述しています。 file_get_contents("http://…".$word."…(URLの続き)"); 以上の2点についてご教示願います。

    • ベストアンサー
    • PHP
  • PHPで外部ファイルから取り込んだデータを配列に

    外部ファイルから取り込んだデータを、配列に代入したいと考えています。自分で試したのですが、どうしてもうまくいかないので詳しい方、どうかよろしくお願いします。 外部のdatファイルは3項目をカンマ区切りで記述してあり、その3項目の繰り返しになっています。そこで次のスクリプトを実行すると、echo結果は$aの列挙になります。 <?php //ファイル名 $file_name = "ファイルのURL/××.dat"; //ファイルを読み取りモードで開く $file = fopen($file_name, "r") or die("OPENエラー"); //ファイルをロックする flock($file, LOCK_SH); //出力 while (!feof($file)){ $string = fgets($file,1000); list($a, $b, $c , $d) = explode(",", $string); $d="$a".","; echo "$d"; } //ロックを開放する flock($file, LOCK_UN); //ファイルを閉じる fclose($file); ?> じつは、この$aの内容が、RSSフィードのURLになっており、次のスクリプトでRSSの更新情報を書き出すのですが、$dの中のカンマ区切りのデータを、次のスクリプトの●●●部分に取り込みたいのですが、どう記述すればよいのかわかりません。 <?php include_once(ABSPATH . WPINC . '/feed.php'); $rss = fetch_feed(array( ●●● 'URL1', 'URL2', 'URL3' )); if (!is_wp_error( $rss ) ) : $rss->set_cache_duration(1800); $rss->init(); $maxitems = $rss->get_item_quantity(100); $rss_items = $rss->get_items(0, $maxitems); date_default_timezone_set('Asia/Tokyo'); endif; ?> <!--出力--> <ul style="height: 200px; margin: 10; padding: 0; overflow-y: scroll;"> <?php if ($maxitems == 0) echo '<li style="list-style: none;">No items.</li>>'; else foreach ( $rss_items as $item ) : ?> <li style="list-style: none; margin: 0; padding: 0;"><?php echo $item->get_date("Y-n-j"); ?> <a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php echo $item->get_title(); ?></a></li> <?php endforeach; ?> </ul> どうか、お知恵をお貸しください、よろしくお願いします。

    • 締切済み
    • PHP
  • URLをたたく賢い方法

    定期的に実行させたいスクリプトを組んだのですが、あまりいいアイディアがなく、単にそのスクリプトを自分のホームページのフッターに file_get_contents() をおいて読み込ませるようにしています。 ただしかし、なんとなくページの読み込む時間が遅くなったような気がするので、 file_get_contents() 以外でURLをたたく方法がないかな、と思っています。 できればブラウザの処理に影響がないような方法を探しています。 ご存知の方おられましたらよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • print_rで出力した配列データファイルをfile_get_cont

    print_rで出力した配列データファイルをfile_get_contentsでそのまま取り込もうとしましたが、配列としてではなく文字列として取り込んでしまいます。 ひとつの配列にまとまってしまします。 text.php $data=array(1,2,3,4,5); print_r($data); Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) output.php これを別ファイルで取り込むと$value= file_get_contents("text.php"); echo $value; print_r($value);両方とも Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) が出力されました。 配列として取り込みたいのですが可能でしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう