【PHP】くだらねぇ質問はここに書き込みやがれpart8
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/08/08(月) 01:18:55ID:54u1h4+Dここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
00119
2005/08/08(月) 10:33:27ID:???http://phpspot.net/php/pgSimpleXML.html
等は見つけていて試しているのですが真っ白なページしか表示されません。
----------------------------------------
$xml = simplexml_load_file("http://www3.asahi.com/rss/index.rdf");
print_r($xml); // 配列を出力してみる。
foreach ($xml->item as $item) {
$rss_title = $item->title; // item/title
$rss_item = $item->link; // item/link
$rss_desc = $item->description;// item/description
}
print $rss_title;
----------------------------------------
としてみたんですが間違っている箇所を指摘下さると助かります。
0012nobodyさん
2005/08/08(月) 10:47:27ID:???コードは間違ってないよ。PHP5.0.4で実際に動かしてみたけど大丈夫。
先頭に以下を入れて実行してみて何かエラーメッセージは表示されない?
ini_set('display_errors', true);
ini_set('display_startup_errors', true);
error_reporting(E_ALL);
0013nobodyさん
2005/08/08(月) 11:09:29ID:???ini_set('display_errors', true);
ini_set('display_startup_errors', true);
error_reporting(E_ALL);
上記コードを加えてみましたが、相変わらず真っ白です。
PHP5ではエラー表示が標準では出ないのでしょうか。
コンパイルオプションの問題かな・・。
ちなみに
http://phpspot.net/php/pg%8AO%95%94%82q%82r%82r%82%F0%93%C7%82%DD%8D%9E%82%DD.html
のコードでは問題なく動きました。
しかし自分でいじるならsimpleXMLのほうがコードが短くなりそうですし、習得したいのですが・・。
0015nobodyさん
2005/08/08(月) 12:05:40ID:uL829/sh<FORM method='post' action='{$_SERVER["PHP_SELF"]}?proc=result'>
というフォームを作ってsubmitボタンから飛ぶと期待通りファイル名に?proc=resultがつくのに
<FORM method='get' action='{$_SERVER["PHP_SELF"]}?proc=result'>
とすると?proc=resultがつかない・・・。
postをgetにするだけで渡されるURLが変わってしまうのはなぜでしょう?
0016nobodyさん
2005/08/08(月) 12:25:54ID:???print や echo を使って出力する時の話だよね?
getの時は、<form 〜action='自分自身のファイル名'> だけが出力されるってこと?
んな筈ないんだけどなぁ。もう一回確認してみ。
001715
2005/08/08(月) 12:32:23ID:???それが、出力されたソースを見てみると両方とも確かにURL?proc=resultとなってるんですよ。
なんだけど、postの場合はproc=resultを渡された処理が行われているのに
getだと元のフォームがそのまま表示されてしまうんです。
URLを見てみるとproc=resultがなく、入力した変数と値のみがパラメータとしてついている状態です。
なんでだろ?
0018nobodyさん
2005/08/08(月) 12:34:55ID:???print_rで確認しる
0019nobodyさん
2005/08/08(月) 12:35:13ID:nwBW+BrYブラウザに聞けや
0020nobodyさん
2005/08/08(月) 12:39:09ID:???postで?proc=resultを付けている時点でアイタタなソースなんだが。
以下でやって味噌。
<FORM method='get' action='{$_SERVER["PHP_SELF"]}'>
<INPUT TYPE='hidden' NAME='proc' VALUE='result'>
<INPUT TYPE='submit' VALUE='送信'>
</FORM>
002116
2005/08/08(月) 12:51:09ID:???これを試してみ。procの分岐条件に問題があると思われ。
<?php
print_r($_GET);
print("<BR>");
print_r($_POST);
echo "<FORM method='post' action='{$_SERVER["PHP_SELF"]}?get_var=get_var'>"
?>
<input type="hidden" name="post_var" value="post_var">
<INPUT TYPE='submit' VALUE='送信'>
</FORM>
URLにひっつけた分は$_GETに入り、hiddenの方は$_POSTに入る。
0022nobodyさん
2005/08/08(月) 13:08:08ID:???$_GET[hoge]もしくは$_REQUEST[hoge]
002315
2005/08/08(月) 13:10:03ID:???もともとGETで作るつもりで?proc=resultを付けていたのですが、
うまくいかないので試しにPOSTでもやってみたということです。
<INPUT type='hidden' name='proc' value='result'>でうまくいくことも確認済みです。
FORMでactionを指定する際にGETだとパラメータをつけられないのかが気になっているだけなので・・・。
入力フォームにprint_r($_GET)を書いたところ、submitを押した後に$_GETの内容が表示されましたorz。
action='ファイル名?proc=result'でもダメって・・・ナンダソリャ。
>>21を試してみたところ$_GETにはget_var、$_POSTにはpost_varがちゃんと入ってます。
で、次に>>21をmethod='get'にして試したところ、$_GETには[post_var] => post_varのみが表示されました。
・・・もしかしてmethod='get'のときはフォーム内で指定した変数・値だけしか渡されない?
actionでURLにつけたパラメータは$_GETには格納されなかったりするのでしょうか?
00249
2005/08/08(月) 13:11:37ID:???最終的には
+++++++++++++++++++++++
<?php
ini_set('display_errors', true);ini_set('display_startup_errors', true);
error_reporting(E_ALL);
$xml = simplexml_load_file("http://www3.asahi.com/rss/index.rdf");
foreach ($xml->item as $item) {
$rss_title = $item->title; // item/title
$rss_item = $item->link; // item/link
$rss_desc = $item->description;// item/description
print $rss_title;
}
?>
++++++++++++++++++++++++
としてみましたが相変わらず真っ白です・・
このスクリプトのあったページに移動して質問してみます
ありがとうございました
0025nobodyさん
2005/08/08(月) 13:18:12ID:???あなたの日本語良くわからないけど
form だったら hidden で
a href だったら クエリーストリングで
って、ちゃんとやった方がいいんじゃないの?
パラメータ組み立てる関数とか作っとけば、
別に値追加しようが削除しようが手間にならないし。
0026nobodyさん
2005/08/08(月) 13:20:17ID:???0027nobodyさん
2005/08/08(月) 15:07:50ID:???0028nobodyさん
2005/08/08(月) 15:11:11ID:???0029nobodyさん
2005/08/08(月) 15:15:22ID:???シンプルな方法ありませんか?
0030nobodyさん
2005/08/08(月) 15:17:56ID:???$path_parts = pathinfo('aaa.jpg');
$path_parts['basename']の中身はaaa
0032nobodyさん
2005/08/08(月) 15:20:27ID:???0033nobodyさん
2005/08/08(月) 15:46:32ID:???$path_parts = pathinfo('aaa.jpg');
$path_parts['basename']の中身はaaa.jpg
0035nobodyさん
2005/08/08(月) 15:58:22ID:???1.hoge.php内でhoge2.phpをインクルードした後の処理も中断されますか?
2.hoge2.phpの処理が中断されるだけで、hoge.phpの続きの処理は実行されますか?
0036nobodyさん
2005/08/08(月) 16:11:01ID:???質問内容の 1 と 2 は同じ事を言っているんではないか?
--- hoge1.php ---
<?php
echo 'hoge1 start<br>';
include('hoge2.php');
echo 'やってみたら判るだろ<br>';
?>
--- hoge2.php ---
<?php
echo 'hoge2 start<br>';
echo 'hoge2 exit<br>';
exit;
?>
00379
2005/08/08(月) 16:15:08ID:???//------------------------------------
<?php
$xml = simplexml_load_file("http://www3.asahi.com/rss/index.rdf");
print_r($xml); // 配列を出力してみる。
print "<br><br>";
$rss = $xml->item[0]->title;
print $rss;
?>
//------------------------------------
で個別の値を取り出すことは出来ました。
foreachの使い方が適切じゃないような気がする・・
でも他の人は動いてるみたいだし・・
003835
2005/08/08(月) 16:38:15ID:???挿入されると考えればいいようですね。
どうもありがとうございました。
0039nobodyさん
2005/08/08(月) 21:46:26ID:yiUBO5QJ0040nobodyさん
2005/08/08(月) 21:47:28ID:???0041nobodyさん
2005/08/08(月) 21:54:40ID:???無理。やりたければ、参照渡しされた引数に値を入れるか配列を返すかぐらいかな。
function sub1(&$result1, &$result2) {
$result1 = 1;
$result2 = 2;
}
function sub2() {
$array['result1'] = 1;
$array['result2'] = 2;
return ($array);
}
sub1($result1, $result2);
echo 'sub1 result<br>';
echo $result1.'<br>';
echo $result2.'<br>';
$array = sub2();
echo 'sub2 result<br>';
echo $array['result1'].'<br>';
echo $array['result2'].'<br>';
0043nobodyさん
2005/08/09(火) 02:34:15ID:ZFB/xAI3といように宣言と同時に初期化ってできないですか?
また大規模なサイトを作るときはglobal変数は使っては
あまりよろしくないとどこかのサイトで言ってたけどreally?
0044nobodyさん
2005/08/09(火) 04:21:50ID:+MEETmeS004543
2005/08/09(火) 05:25:36ID:???メインファイルからユーザー名など書かれた設定を呼び出そうと
していました。その時にglobalで定義すれば楽なのかなーと
思っていてました・・・
defineで設定するか、関数を用意してそれを呼び出すのが
よいとですかね?
0046nobodyさん
2005/08/09(火) 06:00:03ID:???0047nobodyさん
2005/08/09(火) 10:28:30ID:???定数はスカラーデータしか定義できないから、
設定ファイルで連想配列とか使った方がわかりやすい場合は
global ってのもありだと思うんだけど、識者の方どうですか?
004843
2005/08/09(火) 10:47:50ID:???情報をphpファイルに渡すとき、情報を渡されたphpファイルに
DBにコネクトしに行くユーザー名、DB接続関数などを書いておくのが
効率がいいのか、
もしくはDB関連の関数を格納したphpファイル、ユーザー名など
書かれた設定ファイルを用意して、それを呼んできてやるほうが
効率がいいんでしょうか?
0049nobodyさん
2005/08/09(火) 11:08:07ID:???この辺全部インスタンスをいちいち引数で参照私するのもわずらわしいので、グローバルな変数として
CもしくはMのクラスメソッド内で使っているのだが、globalにせん方がいいのだろうか?
0050nobodyさん
2005/08/09(火) 11:08:20ID:???厳密に言うと別ファイルをincludeする必要がない分、前者の方が実行効率は良い。
微々たるものだろうけど。
でも普通は後者。理由は考えて味噌。
ところで今回の質問も含めて、質問のレベルと
>また大規模なサイトを作るときは...
の一文が激しくマッチしないんだが。。。
バカにしているんぢゃなくてオジさんは心配だよ。
0051nobodyさん
2005/08/09(火) 11:15:49ID:???>>41は難しく書いてあるけど、これでいいからね。
function sub() {
$a = 1;
$b = 2;
return array($a,$b);
}
0052nobodyさん
2005/08/09(火) 11:31:44ID:???$array['result1'] = 1;
$array['result2'] = 2;
return ($array);
}
と
function sub() {
$a = 1;
$b = 2;
return array($a,$b);
}
では、まったく同じ処理ではないだろうに。
後者で充分な場合もあるし、前者のようにキーがあったほうが使いやすい場合もあるし。
>>51が「これでいいからね。」と断定する理由はなんぢゃろな。
0054nobodyさん
2005/08/09(火) 11:52:38ID:???$a[1] = "2,けこさ,1";
$a[2] = "3,かきく,2";
とある時、カンマで分けてからそれによって配列をソートしたいんだけどどうしたらいいでしょう?
実行結果
・カンマ1個目まででソート
$a[0] = "1,あいう,3";
$a[1] = "2,けこさ,1";
$a[2] = "3,かきく,2";
・カンマ1個目〜2個目まででソート
$a[0] = "1,あいう,3";
$a[1] = "3,かきく,2";
$a[2] = "2,けこさ,1";
・カンマ2個目〜3個目まででソート
$a[0] = "2,けこさ,1";
$a[1] = "3,かきく,2";
$a[2] = "1,あいう,3";
こんな説明で意味わかりますかね?ヒントか、こうしたらいい、みたいのだけでもいいのでお願いします。
0056nobodyさん
2005/08/09(火) 12:51:36ID:???「カンマ2個目〜3個目まででソート」という表現が理解しづらいのだが。
求める結果を見る限り、カンマで区切られたフィールドの1〜3番目のどれかでソートしたい、でいい?
であれば、usort を使って、自前の比較関数内で
explode で分解、指定のフィールド番号の値を取得、取得した値を比較
すればいいのでは。
取得するフィールド番号はグローバル変数にでも入れるしかないかな。
0057nobodyさん
2005/08/09(火) 13:17:08ID:???0058nobodyさん
2005/08/09(火) 13:53:25ID:???print '<?php print \"PHP\"; ?>';
?>
『<?php print "PHP"; ?>』を表示させたいのですがうまくいきません。
どうすればいいですか?
0059nobodyさん
2005/08/09(火) 13:58:06ID:???0062nobodyさん
2005/08/09(火) 14:36:18ID:???0064nobodyさん
2005/08/09(火) 16:56:32ID:???switch($mode){
case '$data->Name': //一応仮に書いてますがこれじゃダメでした
$data->Name();
break;
default:
break;
}
//ここは別のユーザー関数
while($data = mysql_fetch_object($GLOBALS["dbexe"])) {
print " <TR>\n";
print " <TD><a href=\"$script?mode=$data->Name\">$data->Name</a></TD>\n";
print " <TD>$data->date</TD>\n";
print " <TD>$data->time</TD>\n";
print " </TR>\n";
}
function $data->Name () {
〜〜〜〜〜〜
}
こんな感じの
while文で取ってきた$data->Nameを元にリンクを作ってそこに飛ぶと$data->Nameで取ってきた名前だけの物を表示させようとしてるのですが、
while文で回してるためリンクは作れても$data->Nameが変わっていくのでちゃんと変数を渡せません。
$data->Nameは100種類くらいあってスイッチ文に100個ズラズラ名前を並べるのもさすがにメンド臭いのですが、どうやったら解決できますかね?
006554
2005/08/09(火) 17:01:23ID:???レスありがとうございます。言いたいことは>>57のとおりです。
やっぱり>>57みたいな方法しかないですよね。なんかスマートにできないかなーと思ったもので。ありがとうござます。
0068nobodyさん
2005/08/09(火) 17:10:27ID:???やりたい事はこういうことかな
function hyouji($mode) {
echo $mode;
}
if (!empty($_GET['mode'])) hyouji($_GET['mode']);
006954
2005/08/09(火) 17:36:54ID:???0070nobodyさん
2005/08/09(火) 17:38:17ID:???もうちょっときれいに書いてもらいたいね。
0071nobodyさん
2005/08/09(火) 21:39:57ID:KNgHkL21http://nadsat.net/music/
このサイトのようにiTMSとの連携はどのようにすればよいのでしょうか?
http://phobos.apple.com/WebObjects/MZSearch.woa/wa/MRSS/rssGeneratorInput
でRSSを作っておいてそれを使ったものらしいのですが・・・
0072nobodyさん
2005/08/09(火) 21:41:46ID:???http://pc8.2ch.net/test/read.cgi/hp/1122350593/
897 Name_Not_Found sage 2005/08/09(火) 21:32:38 ID:???
>>895
phpを使ってるみたいだね
899 Name_Not_Found sage 2005/08/09(火) 21:35:26 ID:???
>>897
ありがとうございます。
PHPのスレイッテキマ。
900 Name_Not_Found sage 2005/08/09(火) 21:40:22 ID:???
>>899 迷惑くるな!!
0073nobodyさん
2005/08/09(火) 21:43:30ID:KNgHkL21質問スレじゃないの?
0074nobodyさん
2005/08/09(火) 22:18:54ID:???0075nobodyさん
2005/08/09(火) 22:52:24ID:KNgHkL21詳しく。
0076nobodyさん
2005/08/09(火) 23:00:13ID:???自分でやれや
007777
2005/08/10(水) 00:18:04ID:Yaj8EMvt1週間分のシフト表を追加するスクリプトを作っているのですが、
すでにMySQLのテーブルは用意してあり、サンプルデータも入れてあります。
そのデータから指定日(曜日)のシフト表を画像で出力する.phpも作成済みで、動作も問題ないようです。
あとは新規登録用の.phpを用意するだけなのですが、
入力する情報としては「時間」「作業種類」「場所」の3種類で1日10〜30件ほどで、
1週間分の情報を1度にブラウザで入力させるとなるとかなり長いページになってしまいそうなのですが、
以下どちらのやり方を選択すべきでしょうか?
1. いろいろとラクだから1度に全部入力させてもいい
2. やはり1日ずつ入力させたほうがよい
007877続き
2005/08/10(水) 00:22:52ID:Yaj8EMvt(途中で入力をやめたときにそれまでに入力した分も反映されないようにしたい)、
複数ページに分けて入力した情報をまとめてDBへ登録する処理をするとき、
以下のどちらを選択すべきでしょうか?
2a. セッション変数に格納してDB登録時にセッション変数から削除する
2b. DBに仮登録用テーブルを作っておいて、最後にまとめてそのテーブルから本命のテーブルに登録する
セッション変数を利用するほうがお作法的にはいいような気がするのですが、
途中で入力をやめたときにそれまでにセッション変数に格納された分を削除できないため
無駄が生じるのではないかが心配です。
また、確認用の画像生成もすでに作成した画像生成用.phpを再利用できるのでラクなのもあります。
このままでは2bを選択しそうな勢いなのですが、セッション変数を利用すべき、
あるいは他のやり方を選択すべき理由がありましたら教えてください。
よろしくお願いします。
0079nobodyさん
2005/08/10(水) 00:29:47ID:???asort($fruits);のあとにreset($fruits);を実行しているのですが、
reset()はどういう効果があるのかが説明文を見てもよくわかりません。
ためしにasort()の説明にあるスクリプトからreset()を除いて実行しても同じ結果がでてくるようなのですが、
reset()は何のために必要なのでしょうか?
0080nobodyさん
2005/08/10(水) 00:33:46ID:???一日分ずつ入れて、途中でやめてもそれまでの入力を反映させたいっていうのであれば
その都度insertするのと変わらないんじゃ・・・
0081nobodyさん
2005/08/10(水) 00:37:27ID:???それまでの入力は反映させ「ない」ですね。
セッション使えるならセッション使った方がいいかと。
仮登録用のテーブルをどうしても使わないといけない理由
(バカ上司からの注文とか、よくありますね)が無ければ
プログラム側でカバー出来るのだから、無駄なテーブルは
作るべきではないと思う。
008264
2005/08/10(水) 07:46:52ID:???<a href=\"$script?mode=hoge&name=$data->Name\">$data->Name</a>
にしてスイッチ文にhogeだったらを追加したらいけました。
ありがとうございました。
0083nobodyさん
2005/08/10(水) 09:51:01ID:aRxpvYvh前にどこかで見たんですが、検索ワード忘れて見つけられません。
0084nobodyさん
2005/08/10(水) 09:54:46ID:???携帯だと画像出力しても.phpだとだめとかあるんで。
0086nobodyさん
2005/08/10(水) 10:03:38ID:???web鯖が何か書いてないけど、適当にapache2あたりで。
phpのマニュアルのインストールのページを見てみる。
どうやら、AddType application/x-httpd-php .php つーのをhttpd.confに付ければphpの関連付けができるらしい。
apacheのマニュアルを見てみる。addtypeの項目を探す。
AddType MIME-type extension [extension] ... となっているので、一行で複数の拡張子を設定できるようだ。
「コンテキスト(どこで設定できるか)」には、サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess とあるので、
ほとんどどこでも設定できるらしい。
「上書き」にFileInfoとあるので、htaccessを使う時にはそれを許可しておく必要があるようだ。
008884
2005/08/10(水) 10:19:43ID:???0089nobodyさん
2005/08/10(水) 10:35:20ID:???できますでしょうか?
require_once "Timer.php";//クラスのロード
$timer = new Benchmark_Timer;
$timer->start();
for($i=0;$i<20;){
$i++;
print "{$i}回目 計測中...<br>";
}
$timer->stop();
$profile = $timer->getProfiling();
echo "<h1>処理時間 {$profile[1][diff]}秒</h1>"; //結果表示
0090nobodyさん
2005/08/10(水) 10:53:01ID:???ページの内容をechoやprintで出力していると、一番最後に実行する処理時間の表示が必然的に一番下になってしまう。
それを一番最初に表示できるようにしたいってことかな?
いくつか方法があると思うけど、
・ページの内容を変数に保持していって、最後に出力する。
・ob_*を使ってバッファに溜め込んでおき、最後に出力する。
・テンプレートエンジンを使って、viewを独立させる。
0092nobodyさん
2005/08/10(水) 11:41:29ID:???0094nobodyさん
2005/08/10(水) 12:55:32ID:GX2p4p8d整数をそのまま負数にする関数ってありますでしょうか?
例えば、1を-1に。2を-2という風にです。調べたんですが、言葉が
悪いのか見つけることが出来ません。どうかお願い致します。
0096nobodyさん
2005/08/10(水) 13:07:32ID:pwCfG7c40098nobodyさん
2005/08/10(水) 13:29:00ID:???多少、print_rと形式が異なっても良ければ$output = var_export(対象変数, true);って方法もある。
0100nobodyさん
2005/08/10(水) 14:53:06ID:???質問者が曖昧だからなんとも言えんが、
それだと負の整数の場合、負数が取れないと思う。
でも考え方はそれだよな。
010194
2005/08/10(水) 15:03:46ID:???なりますね。助かりました。こんなことも気付かないなんて・・・
本当にありがとうございました。
0103nobodyさん
2005/08/10(水) 15:30:29ID:???0105nobodyさん
2005/08/10(水) 16:23:55ID:???$buf = _sendcmd("USER $user");
アンダスコアは何を意味しているのでしょうか?
0106105
2005/08/10(水) 16:38:52ID:???すんませんでした。
0109nobodyさん
2005/08/10(水) 18:05:04ID:ZswK9ZtxレッツPHPのメールチェッカーだな。
ttp://php.s3.to/net/pop.phps
0110nobodyさん
2005/08/10(水) 18:46:13ID:???■ このスレッドは過去ログ倉庫に格納されています