[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 12/07 11:08 / Filesize : 231 KB / Number-of Response : 930
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】下らねぇ質問はID出して書き込みやがれ 89



1 名前: mailto:sage [2009/10/11(日) 21:18:54 ID:???]
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 88
pc11.2ch.net/test/read.cgi/php/1253061577/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ

561 名前:nobodyさん mailto:sage [2009/10/24(土) 08:20:12 ID:???]
>//ここでデストラクターが呼ばれて勝手に終了する
$objがスコープ内にいるのにデストラクタが呼ばれちゃまずいだろ。

562 名前:nobodyさん mailto:sage [2009/10/24(土) 08:25:17 ID:???]
>>561
<?php
class Hoge {
function Hoge() {
echo "construct<br>\n";
}
function a() {
return array("a", "b", "c");
}
function __destruct() {
echo "destruct<br>\n";
}
}

$obj = new Hoge;
foreach ($obj->a() as $value) {
echo $value."<br>\n";
}
?>

563 名前:nobodyさん mailto:sage [2009/10/24(土) 08:44:46 ID:???]
ほんとこのスレ初心者ばっかだなw

564 名前:nobodyさん mailto:sage [2009/10/24(土) 09:21:19 ID:???]
www.php.net/manual/ja/function.sqlite-close.php

しかし相変わらずだな。

565 名前:nobodyさん mailto:sage [2009/10/24(土) 09:29:15 ID:???]
www.php.net/manual/ja/ref.sqlite.php

これ見方がわからないんだけど
SQLiteDatabase
SQLiteResult
SQLiteUnbuffered
に定義されてる各メソッドはそのクラスのみで使えて
目次のとこに書かれてるのは共通に使えるメソッド?

なんか無名関数のせいでマニュアルの見方がむずくなってきてる気がする・・・

566 名前:nobodyさん mailto:sage [2009/10/24(土) 09:34:01 ID:???]
マルチパラダイムだから仕方ないがこれはひどい
明確に分ければいいのに

567 名前:nobodyさん [2009/10/24(土) 09:49:09 ID:o7jv7fS8]
PHP、PEAR、Smartyはだいたい理解できました
しかし、実際HTMLなどのクライアントサイド側との連携がいまいち良く分かりません
本やちょっとしたPHP解説のサイトなどはメソッドとかプロパティなどの説明で終わっているもので

フォームなどの基本的な事は何処にでも書いてあるので分かるのですが、実践的なPHPとクライアントサイドとの連携したコードなど
書いてある書籍など自分の県では見つけられませんでした
実際にサイトを作る為のクライアント+サーバサイドを連携させたサンプルコードの載っているサイトや書籍は何かないでしょうか?
宜しくお願い致します

568 名前:nobodyさん mailto:sage [2009/10/24(土) 09:50:26 ID:???]
Ajaxのことだろ
Ajaxスレいってください

569 名前:nobodyさん mailto:sage [2009/10/24(土) 09:55:04 ID:???]
jquery



570 名前:nobodyさん [2009/10/24(土) 10:02:54 ID:o7jv7fS8]
えっ?
Ajaxですか?
Ajaxの事ではなく、例えばテンプレートとか実際に実装して作ったサンプルとかです
説明不足だったようです、すみません

例えば、Webデザインブックなどはいくらでも出ていますが、それらはただHTMLとCSSで実装しています
まぁたまにJavaScriptなどもありますが
自分は、人がサイトにアップロードした画像をサイトに情報つきで載せてレイアウトも崩れないようにしたいとか
(つまり$_FILESの概念はわかるけれどそれを実際クライアント側のコードにどのようにテンプレート内に実装・レイアウトしていくか)、
PEARによるログイン認証を行った後でそのログインしたユーザーのみが動的コンテンツを利用するためにはどのようにすればいいのか、
とかまぁ書けば色々と長くなりそうですが、そういう事です
自分側がただ作ったサイトを公開するだけではなく、ユーザーの参加できるようなサイトの作り方を、簡単でもいいので解説しているサイトや書籍が知りたいのです


571 名前:nobodyさん mailto:sage [2009/10/24(土) 10:05:27 ID:???]
>>557
おいおいwあんまり>>555をいじめんなよw
そんなの見せても>>555にはチンプンカンプンなんだぜwwwwwwww
今頃顔真っ赤にしてるだろうけど二度と出てこないよww

572 名前:nobodyさん mailto:sage [2009/10/24(土) 11:35:30 ID:???]
>>571
そういうのは、実際に必要になった時に調べたり考えたりしてもいいと思う。
PHPで家計簿でも何でもいいんで作ってみれば、分かってくるんじゃないかな。
気力があるなら、人が作成したPHPのプログラムを落としてHTML部分がどうなってるか探してみるのが言いかと

573 名前:nobodyさん mailto:sage [2009/10/24(土) 11:39:51 ID:???]
そりゃクライアント+サーバサイドの連携っていったら
JavaScriptとPHPの連携っていってるようなものだからAjaxって答えが返ってくるのも無理もない
MixiやYoutubeのようなSNSサービスをやりたいってことね
セッションとか勉強するといいよ

574 名前:nobodyさん mailto:sage [2009/10/24(土) 11:55:49 ID:???]
>>562
閉じタグとファイル終端は、直接関係無い。
タグ閉じただけじゃスコープ閉じないんだぜ。

575 名前:nobodyさん mailto:sage [2009/10/24(土) 11:58:58 ID:???]
日本語でおk

576 名前:nobodyさん mailto:sage [2009/10/24(土) 12:00:54 ID:???]
でてこいよ>>555wwwwwwwwwwwwwwwGOGOGOwwwwwwwwwwwwwwwwww

577 名前:nobodyさん [2009/10/24(土) 12:01:27 ID:o7jv7fS8]
>>572
レスアンカーは自分(>>570)にですよね?
そうだと思って返答させて下さい

>人が作成したPHPのプログラムを落としてHTML部分がどうなってるか探してみる

こういうのはWebサイトで検索して、人が書いたサンプルコードを集めて学習しろという事なのでしょうか?
それとも、自分は知らない(というかコードを読み取られると危険なのでそもそも出来ないのではと思うのですが)、ソース読み取りソフトとかあるのでしょうか?
例えばWebサイトであればIEのソース機能やFireFoxのFireBugのようなHTMLのコードを表示出来る様なソフトの事です



>>573
あぁ、すみませんでした
自分の表現がおかしかったようです
HTML+CSSにPHP(テンプレートやライブラリ含む)を組み込んで実装する、実際に運営する為の雛形コードを学習したかったのです


578 名前:nobodyさん mailto:sage [2009/10/24(土) 12:05:25 ID:???]
>>570
単にフォームからのリクエストを処理するPHPのコード、ってんなら、
PHPの本で2〜3章かけて解説してるんじゃね?
あとは自分の作りたいものに似てるの探して、コード読むべし。

579 名前:nobodyさん mailto:sage [2009/10/24(土) 12:05:29 ID:???]
>HTML+CSSにPHP(テンプレートやライブラリ含む)を組み込んで実装する、
>実際に運営する為の雛形コードを学習したかったのです

フレームワークのview部分とか見てみるといいかもしれない



580 名前:nobodyさん mailto:sage [2009/10/24(土) 12:10:51 ID:???]
>>574
aaa<br>
<?php
>>562のコード
?>
bbb<br>

でbbb<br>より後にdestructが現れるってことか?
どっちみちDBクローズならそれでもいいだろ

581 名前:555 mailto:sage [2009/10/24(土) 12:11:40 ID:???]
すいませんでした
無知を晒してしまいました
ごめんなさい

582 名前:nobodyさん mailto:sage [2009/10/24(土) 12:22:14 ID:???]
ちなみにスコープ閉じるってどうやるの?
objにnullいれるだけ?

583 名前:nobodyさん mailto:sage [2009/10/24(土) 12:59:43 ID:???]
>>580
その下にまた<?phpが出てくるとか、include/requireされてるとか。

>>582
$objはスコープから外れてないけど、インスタンスは
ガベージコレクションで回収されるから、そのときに
デストラクタが起動されるんだと思う。

PHPで明示的なスコープって言ったら関数かな。
ローカル(グローバルでない)変数のスコープは関数内でしょ。

584 名前:nobodyさん mailto:sage [2009/10/24(土) 13:03:20 ID:???]
>>281
いやだからそれは俺が振られた理由になってねえよ
なんで会社の休憩時間にイタリアフルコース頼まないといけないんだよ

585 名前:nobodyさん mailto:sage [2009/10/24(土) 13:16:46 ID:???]
フラれたのか、ま、元気だせ、応援してるから。

586 名前:nobodyさん mailto:sage [2009/10/24(土) 13:56:20 ID:???]
要らないもんはunsetしちゃおうぜ

587 名前:552 [2009/10/24(土) 14:16:10 ID:BvPjRTUm]
結局クラスを自作して対応しました。
class sqlite{
  var $_result = array();
  var $_pointer = null;
  var $_message = null;
  function connect($dbfile){
    return $this->_pointer = sqlite_open($dbfile,0666,$this->_message);
  }
  function close(){
    sqlite_close($this->_pointer);
  }
  function exec($que){
    return sqlite_exec($this->_pointer,$que,$this->_message);
  }
  function array_query($que){
    return sqlite_array_query($this->_pointer,$que,$this->_message);
  }
  function get_escape($str){
    return sqlite_escape_string($str);
  }
  function get_result(){
    return $this->_result;
  }
  function get_pointer(){
    return $this->$_pointer;
  }
  function get_message(){
    return $this->$_message;
  }
}

588 名前:nobodyさん mailto:sage [2009/10/24(土) 14:37:03 ID:???]
>>587
オブジェクト指向スタイル用意されてる意味ねーw

589 名前:nobodyさん mailto:sage [2009/10/24(土) 14:57:50 ID:???]
fscanfがおかしいです



590 名前:nobodyさん mailto:sage [2009/10/24(土) 18:28:54 ID:???]
なるほどね、凸者さんの判断次第ってことか。
あと、ヤンデレこえぇwww

591 名前:nobodyさん mailto:sage [2009/10/24(土) 18:29:35 ID:???]
誤爆

592 名前:nobodyさん mailto:sage [2009/10/24(土) 19:04:29 ID:???]
どうしてもnewで作ってclose()したいんだ、という強い意志が感じられます。
若いっていいね。

593 名前:nobodyさん mailto:sage [2009/10/24(土) 19:35:19 ID:???]
>どうしてもnewで作ってclose()したいんだ、という強い意志が感じられます。

はずかしいから黙ってて

594 名前:nobodyさん mailto:sage [2009/10/24(土) 20:43:07 ID:???]
newで作ったらdeleteを使いたくなるよね。
で、ダミー関数であるdeleteが登録されてるせいで、
delete($classA)とか書いてもしばらく気がつけない

595 名前:nobodyさん mailto:sage [2009/10/24(土) 20:45:44 ID:???]
え?

596 名前:nobodyさん mailto:sage [2009/10/24(土) 20:47:28 ID:???]
え?

597 名前:nobodyさん mailto:sage [2009/10/24(土) 21:14:45 ID:???]
これ何のスレだっけ

598 名前:nobodyさん mailto:sage [2009/10/24(土) 21:21:53 ID:???]
質問じゃない時はsageで書きやがれスレ

599 名前:nobodyさん [2009/10/24(土) 22:35:42 ID:aM0DiAaq]
【OS名】Windows xp
【PHPのバージョン】php5.2.10
【連携ソフトウェア】mysql
【質問内容】
心理テストのようなサイトを作ろうとしています。
何人がその答えを選んだかの集計と、
それとは別に選んだ答えがどのような性格をあらわすのかを表示できるようにしたいです。
チェックボタンを選んだ状態で「あなたはこんな人」のようなラジオボタンで
そのページに遷移させたいです。
どのようにしたらいいのでしょうか?
アバウトな質問でごめんなさい。




600 名前:nobodyさん mailto:sage [2009/10/24(土) 22:39:54 ID:???]
>>599
で、何ができないの?PHP?本買え

601 名前:nobodyさん mailto:sage [2009/10/24(土) 22:39:57 ID:???]
>>599
そのまんまじゃね?何が問題なんだ?

602 名前:nobodyさん mailto:sage [2009/10/24(土) 22:40:40 ID:???]
全部作らせる気かww
最近の若者は安易だなぁ

603 名前:nobodyさん [2009/10/24(土) 22:45:01 ID:aM0DiAaq]
くだらなすぎてごめんなさい・・・


604 名前:nobodyさん mailto:sage [2009/10/24(土) 22:45:53 ID:???]
くだらないというか何が(どこが)できないのかが分からんのだよ

605 名前:nobodyさん [2009/10/24(土) 22:50:44 ID:aM0DiAaq]
アンケートのページで「投票」を押したらその選んだ結果によって違うページに飛ばしたいです。
例えば赤を選んだら赤色を好きな人の性格について書いてあるページで、
青を選んだら青色が好きな人の性格について書いてあるページです。
アバウトすぎてごめんなさい。


606 名前:nobodyさん [2009/10/24(土) 22:51:31 ID:aM0DiAaq]
今こんな感じで書いているところです。。

<html>
<head><title>心理テスト</title></head>
<body>
<h1>メンタル編</h1>
<p>あなたがいつか天国へ旅立つとしたら、何色の石をお守りにしたいですか?
<?php
// スクリプト名取得
$script = basename(__FILE__);
// メンバー名配列
$member = array("", "赤いルビー", "ピンクのローズクォーツ", "ゴールド",
"イエロートパーズ", "緑のヒスイ", "青のラピスラズリ", "紫水晶", "白の水晶");

// 投票がある場合
if ($_POST['COLOR'] > 0) {
// 投票者番号
$no = $_POST['COLOR'];
// MySQLに接続
$db = mysql_connect("localhost", "root", "root");
// DB選択
mysql_select_db("graduation", $db);
// insert文実行
mysql_query("insert into ninki values(null, {$no},
now())", $db);
// DB切断
mysql_close($db);
}
?>

607 名前:nobodyさん [2009/10/24(土) 22:52:32 ID:aM0DiAaq]
<p><font color="red"><?= $msg ?></font></p>
<form method="POST" action="<?= $script ?>">
<p><input type="radio" name="COLOR" value="1">赤いルビー</p>
<p><input type="radio" name="COLOR" value="2">ピンクのローズクォーツ</p>
<p><input type="radio" name="COLOR" value="3">ゴールド</p>
<p><input type="radio" name="COLOR" value="4">イエロートパーズ</p>
<p><input type="radio" name="COLOR" value="5">緑のヒスイ</p>
<p><input type="radio" name="COLOR" value="6">青のラピスラズリ</p>
<p><input type="radio" name="COLOR" value="7">紫水晶</p>
<p><input type="radio" name="COLOR" value="8">白の水晶</p>
<p><input type="submit" value="投票"></p>

</body></html>


こんな感じです。
ごめんなさい。

608 名前:nobodyさん mailto:sage [2009/10/24(土) 22:56:06 ID:???]
>>607
switch($COLOR){
case 1
処理&リダイレクト1
break;
case 2
処理&リダイレクト2
break;
case 3
処理&リダイレクト3
break;
.....
}

あとaction="<?php echo $script ?>"はまずくね?
それだったらaction=""で空でいいと思うよ

609 名前:nobodyさん mailto:sage [2009/10/24(土) 22:58:11 ID:???]
case 1:

ね":"を忘れずに



610 名前:nobodyさん [2009/10/24(土) 23:01:10 ID:aM0DiAaq]
>>608
>>609
やってみます
情けない質問に答えてもらってありがとうございます



611 名前:nobodyさん mailto:sage [2009/10/24(土) 23:05:20 ID:???]
情けない質問wwww

612 名前:nobodyさん [2009/10/24(土) 23:24:44 ID:TvoLhocc]
switch内のbreak;のインデントってたまに悩むけどどうしてますか?
俺はcaseからインデントつけて位置に書いてるけど
そうすると最後でインデントが2つ一気になくなってしまう違和感がある
>>608みたいに書くとcase処理内な感じがしない違和感

613 名前:nobodyさん mailto:sage [2009/10/24(土) 23:34:28 ID:???]
>>612
その書き込みエスケープされただけだお

  case $a:

 break;

が多いけどおれも結構曖昧だ

614 名前:nobodyさん mailto:sage [2009/10/24(土) 23:35:29 ID:???]
逆だ

 case $a:

  break;



615 名前:nobodyさん mailto:sage [2009/10/24(土) 23:41:58 ID:???]
switch ($a) {
 case 0:
  do_something();
  break;
 case 1:
  do_something();
  break;
 default:
  do_something();
  break;
}

どの言語の解説でもたいていこうなってるしこれがスタンダードじゃないかね

616 名前:nobodyさん mailto:sage [2009/10/24(土) 23:42:52 ID:???]
下らねぇ回答はID出さないでここに書き込みやがれ 90

617 名前:nobodyさん mailto:sage [2009/10/25(日) 00:28:25 ID:???]
次スレの季節か

618 名前:nobodyさん mailto:sage [2009/10/25(日) 00:56:35 ID:???]
switch文で気になったのでメモ
switch('a'){
 case 'a'; //末尾が ;
}

switch('a'){
 case 'a': //末尾が :
}
は等価


619 名前:nobodyさん [2009/10/25(日) 05:29:05 ID:TWuysydg]
$test = " 1c 2c 3c!";
$search = "/([^0-9])([0-9])c([^0-9])/";
$replace = "$1c$2$3";
echo preg_replace($search, $replace, $test);

これで、期待する出力は
c1 c2 c3!
実際の出力は
c1 2c c3!

質問は、
・なぜこのような動作になるのでしょうか?
・どうすれば解決できるでしょうか?

後、欲しいアイデアとして
・"1c 2c 3c"のように、先頭にスペースを入れなくても"c1 c2 c3"に変える正規表現を教えてほしい
(ただし"11c"のような形の場合は変化させないでほしい)



620 名前:nobodyさん mailto:sage [2009/10/25(日) 05:53:15 ID:???]
explodeで配列にわけて
substrで文字を抜き出したのを結合すえばええ

621 名前:nobodyさん mailto:sage [2009/10/25(日) 10:22:02 ID:???]
認定回答者採用試験は今日までですので頑張って回答してください

622 名前:nobodyさん mailto:sage [2009/10/25(日) 11:14:26 ID:???]
>>619
$test = "1c 2c 3c!";
$search = "/([^| ][0-9]{1})c/";
$replace = "c$1";


623 名前:nobodyさん mailto:sage [2009/10/25(日) 13:01:49 ID:???]
トリもIDも出さずに試験官気取りとな?

624 名前:nobodyさん mailto:sage [2009/10/25(日) 13:03:49 ID:???]
>>623
お前鬱病だろ

625 名前:nobodyさん mailto:sage [2009/10/25(日) 21:45:40 ID:???]
phpでシングルトンって意味あるの?
リクエスト終わったらメモリ開放されるんでしょ?

626 名前:nobodyさん mailto:sage [2009/10/25(日) 22:19:54 ID:???]
2行目は正解。
1リクエストの中だけでも必要なときはあるさ。

627 名前:nobodyさん [2009/10/25(日) 22:38:37 ID:Ltpwqrvc]
mod_rewriteを使ってクリックカウントをとりたいのですが
以下のようにするとcount.phpにリダイレクトできるのですが、
count.phpからLocationで飛ばすとループしているのか404NotFoundになってしまいます。
どうすれば正常にできますか?

例:www.example.com/img/abc01.jpg をクリックしてcount.phpを介してカウント
www.example.com/img/abc01.jpgのまま表示する

//サーバー側
RewriteEngine on
RewriteRule ^/img/abc([0-9]+).(*)$ /img/count.php?id=$1&extension=$2

//count.php側
header("Location: www.example.com/img/abc$id.$extension");

628 名前:nobodyさん mailto:sage [2009/10/25(日) 22:42:08 ID:???]
readfile使えばいいと思うよ

629 名前:627 [2009/10/25(日) 22:54:09 ID:Ltpwqrvc]
>>628
やってみましたがだめでした・・・。



630 名前:nobodyさん mailto:sage [2009/10/25(日) 23:07:22 ID:???]
count.phpがabc01.jpgを出力するんだぜ。

631 名前:nobodyさん mailto:sage [2009/10/25(日) 23:15:10 ID:???]
リライトログ見てみたら?吐いてなかったら吐かせて

632 名前:627 [2009/10/26(月) 00:20:09 ID:8+sjsIrs]
>>630-631
アドバイスありがとうございます。
何とか解決できたみたいです。
/img/を物理ディレクトリ、URL表示部分を新規に/img2/として(抽象ディレクトリ)
リライトしたらできるようになりました。

633 名前:627 [2009/10/26(月) 00:33:00 ID:8+sjsIrs]
>>628
readfileも必要だったみたいです。
ありがとうございました。

634 名前:nobodyさん mailto:sage [2009/10/26(月) 05:27:50 ID:???]
質問させてください。

<html>
<body>
<?php include("./hoge.php");?>
</body>
</html>

で閲覧に問題はないのですが、
ソースを見ると

<html>
<body>
<html><body></body></html>
</body>
</html>

と2度使われ重複している状態です。

hoge.phpには<html><body></body></html>などの記述はしておりません。
問題の箇所等ご指摘願います。

635 名前:nobodyさん mailto:sage [2009/10/26(月) 05:31:55 ID:???]
hoge.phpの中身書くのがいやなら簡略化したもの書いてくれないと
それだけではなんともいえない

636 名前:nobodyさん mailto:sage [2009/10/26(月) 05:40:09 ID:???]
>>635
ありがとうございます。

hoge.phpの中身はモバイル版AdSenseコードのみです。

637 名前:nobodyさん [2009/10/26(月) 05:48:48 ID:n4efgg6U]
質問です。MagpieRSSを使っています。
日付順に取得記事をソートしたいのですが、うまくいきません。
アドバイスお願いします。

$rssurl = array ();
$rssurl[] = "mainichi.pheedo.jp/f/mainichijp_flash";
$rssurl[] = "rss.asahi.com/f/asahi_newsheadlines";

foreach ($rssurl as $pre) {
$url = $pre;
$rss = fetch_rss($url);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "shift_jis", "auto");
$url = $rss->channel['link'];
$rss->items = array_slice($rss->items, 0, 1);

foreach ($rss->items as $item ) {
$day = date('n/j',strtotime(substr($item['dc']['date'],0,10)));
$time = date('H:i',strtotime(substr($item['dc']['date'],11,8)));
$date = "$day $time";
$rdf = $item[link];
$article = $item[title];
$article = mb_convert_encoding($article, "shift_jis", "auto");
$linkstr = "$date $rdf $article $url $title<br>\n";
$rssarray["{$date}"] = $linkstr;

krsort($rssarray);
echo "$linkstr";

638 名前:nobodyさん mailto:sage [2009/10/26(月) 05:52:16 ID:???]
>>637
$linkstrは全て想定通りになってるの?

639 名前:nobodyさん [2009/10/26(月) 05:55:31 ID:n4efgg6U]
>>638
はい、順序以外は期待通りの実行結果です。



640 名前:nobodyさん mailto:sage [2009/10/26(月) 06:00:30 ID:???]
じゃkrsortの問題ですね
どんな$linkstrを入れるとどのようなソート結果になるか例を出してもらえますか?

ちなみに第二引数にソートフラグを指定して挙動を変えることができる
www.php.net/manual/ja/function.sort.php
今回の場合は全て文字列だから関係ないかもしれないけど

641 名前:nobodyさん [2009/10/26(月) 06:09:43 ID:n4efgg6U]
RSSの取得を下のようにしたとして
$rssurl[] = "mainichi.pheedo.jp/f/mainichijp_flash";
$rssurl[] = "mainichi.jp/rss/etc/mantan.rss";
$rssurl[] = "mainichi.jp/rss/etc/enta.rss";
$rssurl[] = "mainichi.jp/rss/etc/sports.rss";

10/26 05:00 ■URL ■人事:法務省(26日) ■URL ■毎日jp-ニュース速報(総合)
10/25 21:00 ■URL ■注目アニメ紹介:「空中 ■URL ■毎日jp-まんたんウェブ
10/25 22:14 ■URL ■the GazettE ■URL ■毎日jp-エンタメ
10/25 23:10 ■URL ■横浜:巨人・尾花コーチ ■URL ■毎日jp-スポーツ
(長いので削ってます)

このような結果が出ます。
日付でソートをかけているつもりですが、まったくされていません。
$rssurl配列の上から順に表示されています。

642 名前:nobodyさん mailto:sage [2009/10/26(月) 06:10:21 ID:???]
>>636
echoで文字列を出力してるのか?
それともただアドセンス部分のHTMLだけ書いてるのか?
試してみたがhtml bodyタグが加わることはない
サーバかPHPの設定かもしれないがどの設定項目かはわからんわ
PHP使えるレン鯖が2つ以上あるなら両方で試してみ
ローカルに環境作るのが一番いいけど

643 名前:nobodyさん mailto:sage [2009/10/26(月) 06:11:55 ID:???]
>日付でソートをかけているつもり
使う関数まちがってるんじゃね?
krsortって逆順ソートだよ

644 名前:nobodyさん mailto:sage [2009/10/26(月) 06:15:55 ID:???]
日付だから逆順であってんでねーの?

645 名前:nobodyさん mailto:sage [2009/10/26(月) 06:17:41 ID:???]
いやいや
ただ単にキーを逆順にするソートってこと
ユーザー定義のソートをしたいのならusort()とかじゃないと

646 名前:nobodyさん [2009/10/26(月) 06:18:06 ID:n4efgg6U]
$rssurl[] = "mainichi.jp/rss/etc/mantan.rss"; //まんたんウェブ
$rssurl[] = "mainichi.jp/rss/etc/enta.rss"; //エンタメ
$rssurl[] = "mainichi.pheedo.jp/f/mainichijp_flash"; //ニュース速報(総合)
$rssurl[] = "mainichi.jp/rss/etc/sports.rss"; //スポーツ

10/25 21:00 ■URL ■注目アニメ紹 ■URL ■毎日jp-まんたんウェブ
10/25 22:14 ■URL ■the GazettE ■URL ■毎日jp-エンタメ
10/26 05:00 ■URL ■人事:法務省( ■URL ■毎日jp-ニュース速報(総合)
10/25 23:10 ■URL ■横浜:巨人・尾 ■URL ■毎日jp-スポーツ

例がわかりにくかったので書き直しました。

647 名前:645 mailto:sage [2009/10/26(月) 06:19:49 ID:???]
あ、ごめん。
よくよんでなかったw
>日付でソートをかけているつもりですが、まったくされていません。
ってかいてたからてっきり
データ見る限りだとkrsortでよさそうだね

648 名前:645 mailto:sage [2009/10/26(月) 06:20:38 ID:???]
とか書いた瞬間にデータの日付ルールが変わった件

649 名前:nobodyさん [2009/10/26(月) 06:22:04 ID:n4efgg6U]
usortにしたらエラーがでました。
Warning: Wrong parameter count for usort() in C:\WWW\php.php on line 30

>>648
26日が真上だと日付でソートされているように見えたので…
配列順に表示されるだけでソート機能が働いていないというのが今回の悩みです。。。



650 名前:nobodyさん mailto:sage [2009/10/26(月) 06:25:26 ID:???]
>usortにしたらエラーがでました。
マニュアルみようぜ
www.php.net/manual/ja/function.usort.php
krsort($rssarray);を
usort($rssarray);にかえただけじゃだめ
第2引数入れないと

651 名前:nobodyさん mailto:sage [2009/10/26(月) 06:26:20 ID:???]
それぞれどんな$linkstrなの?

652 名前:nobodyさん [2009/10/26(月) 06:34:30 ID:n4efgg6U]
>>650
すいません、ありがとうございます。
試している最中ですが、cmpの設定に少し時間がかかりそうなので結果が遅れます。

>>651
$day 記事の更新日
$time 記事の更新時間
$date 上記二つを合わせた文字列
$rdf 記事のURL
$article 記事のタイトル
$url 配信元のURL
$title 配信元のタイトル

です。

653 名前:nobodyさん mailto:sage [2009/10/26(月) 06:41:45 ID:???]
>>652
ごめん、krsortに$linkstr関係なかったね

$array = array('10/25 21:00'=>1,'10/25 22:14'=>2,'10/26 05:00'=>3,'10/25 23:10'=>4);
var_dump($array);
krsort($array);
var_dump($array);

array(4) {
["10/25 21:00"]=>
int(1)
["10/25 22:14"]=>
int(2)
["10/26 05:00"]=>
int(3)
["10/25 23:10"]=>
int(4)
}
array(4) {
["10/26 05:00"]=>
int(3)
["10/25 23:10"]=>
int(4)
["10/25 22:14"]=>
int(2)
["10/25 21:00"]=>
int(1)
}
こちらで試してみたら想定どおりにソートされてる気がするけども

654 名前:nobodyさん mailto:sage [2009/10/26(月) 06:43:43 ID:???]
usortの$aの部分を日付をunixタイムに変えたものいれればそのまま使えるんじゃね
$a部分を連想配列にしてキーを$rssarrayのキーと一致させておけば簡単
比較は値のunixタイムにしたものを比較する感じで
マニュアルの例そのまま使うならrsort()にしたほうがいいと注意書きに書いてるから
まずはusortで形をつくってからパフォーマンスのためにrsortで書き直してみては?

655 名前:645 mailto:sage [2009/10/26(月) 06:48:17 ID:???]
なんか話をややこしくしてすまんかった
krsortの使い方を勘違いしてたようだ
>>653でよさそう

656 名前:nobodyさん mailto:sage [2009/10/26(月) 06:50:28 ID:???]
オマエラ馬鹿じゃね?
$rssarrayをソートかけてんのに$linkstr表示してっからだろ

657 名前:nobodyさん mailto:sage [2009/10/26(月) 06:50:51 ID:???]
>>637
krsort($rssarray);
echo "$linkstr";

froeachの終わりがどこかわからんけど、echo結果を見ているなら$rss->itemsの順番に表示されてるんじゃ?
$rssarrayに入れたいものを全部入れてからkrsortしてprint_r($rssarray)で確認してみたらどうかな

658 名前:nobodyさん [2009/10/26(月) 06:56:25 ID:n4efgg6U]
>>653
phpは昨日触ったばかりなのでじっくり参考にさせて頂きます。

>>654>>655
助言を求めたのは私なのでハマりから抜け出すためのしっかり参考にさせて頂きます。

>>656>>657
やっと原因が究明出来ました。
表示がまだ思い通りにいかないので試行錯誤してみます。

659 名前:nobodyさん [2009/10/26(月) 07:00:40 ID:n4efgg6U]
foreachを閉じた後

krsort($rssarray);

for(reset($rssarray); $i=i($rssarray); next($rssarray)){
echo "$rssarray[$i]";
$count++;
if($count == 4){
break;
}
}

これでしっかりと表示出来ました。
原因はkrsort($rssarray);をforeachの中に入れていたことと
$linkstrを表示していたことです。
皆様ありがとうございました!



660 名前:nobodyさん mailto:sage [2009/10/26(月) 07:01:41 ID:???]
echo "$linkstr";
の行は単にデバッグのためループの中で出力を確認しているだけで
当然そのあとにテーブルか何かで一覧を表示して、正しくソートされてないと言ってるもんだと思ってた。

$linkstrはkrsortどころか$rssarrayとも関係ない。foreachの順で表示されるだけじゃん。

661 名前:nobodyさん mailto:sage [2009/10/26(月) 07:07:28 ID:???]
終わった後に言っても仕方ねぇだろ無能。
オマエラ馬鹿すぎ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<231KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef