トップページphp
1001コメント319KB

【PHP】下らねぇ質問はここに書き込みやがれ 44

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2007/04/12(木) 16:54:47ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0917nobodyさん2007/04/26(木) 01:19:01ID:???
>>916
まずはエラーログチェックの癖をつける。
09188482007/04/26(木) 01:54:55ID:fEqE9au7
>>850
すみません。
考えてみたのですが、まったく理解できません・・・
もう少し噛み砕いて教えていただけないでしょうか?

0001の部分は0001.phpとしてファイルを作ってあります。
例の0002は現在作成していないファイルということになります。

index.php?hoge=0001 はすでに0001.phpとしてファイルがあるのでそのまま表示
index.php?hoge=0002や中途半端なアドレスの
index.php?hoge=や
index.php
は403 404を表示したいのです。

何度もすみませんがよろしくお願いします。
0919nobodyさん2007/04/26(木) 02:00:58ID:g6GrkNsN
if($number = "0001"){
include("0001.php");
}else{
header("Location:http://qawsedrftgyhujikol/";);
}
0920nobodyさん2007/04/26(木) 02:03:35ID:???
>>918
すごく噛み砕いてソースの具体例まで出してくれたのが850だと思うが。
理解できないならどこが理解できないか言ってくれないとこっちも全く理解できないんですよ。
0921nobodyさん2007/04/26(木) 02:04:59ID:???
>>918はelseの存在を知っているのか?
0922nobodyさん2007/04/26(木) 02:13:35ID:???
>>915
ありがとうございます
09238482007/04/26(木) 02:25:03ID:fEqE9au7
みなさんレスありがとうございます。
やってみようとしたところ、鯖の緊急メンテに入ってしまいました。
数時間のメンテらしいのでメンテ明けにやってみます。

0924nobodyさん2007/04/26(木) 02:48:03ID:???
だからレン鯖で開発するなと何度言えば
09258482007/04/26(木) 04:34:29ID:fEqE9au7
自宅でやってみました。
現在index.php には
<?php
$GET_PAGE=$_GET['hoge'];
if(@fopen($GET_PAGE.".php", "r")){
include($GET_PAGE.".php");
}else{
header("HTTP/1.0 404 Not Found", true, 404);
?>
<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<p>404 Not Found</p>
</body>
</html>
<?php
exit;
}
としたところ、
index.php?hoge=0001では正常に
index.php?hoge=0002やindex.php?ho などでは
そのアドレスのままページには「404 Not Found」と書かれたページが表示されるようになりました。

ここでさらに踏み込んで、現在自前でエラードキュメントをphpで作っておいてあるのですが、
index.php?hoge=0002やindex.php?ho の場合にそのエラードキュメントで表示するようには出来ないものでしょうか?
上記htmlの部分へ同じようなhtmlを書けばいいのかもしれませんが、せっかくなのでphpで表示したいのですが。

また上の書き方で何か問題はないでしょうか?fopenしてるので、閉じないといけないかもしれませんしもっとスマートは方法とかありそうですが。
0926nobodyさん2007/04/26(木) 04:51:20ID:???
ここはお前のサポセンじゃないんだよ
まずは自分で調べるなり考えろ
あとレン鯖で実験するな

> if(@fopen($GET_PAGE.".php", "r")){
このままでも閉じる必要は無い
is_file使えば見やすい

> エラードキュメントで表示するようには出来ないものでしょうか
.htaccess 404
09278482007/04/26(木) 05:09:41ID:fEqE9au7
>>926
レスありがとう。
fopenで閉じなくても問題ないと言うことですのでそのままにしておきます。
またis_fileの方がファイルがそうではないかと言う事みたいなので、is_fileに変更しました。

現在の.htaccessでは、
ErrorDocument 401 /library/error/error.php
ErrorDocument 403 /library/error/error.php
ErrorDocument 404 /library/error/error.php
ErrorDocument 500 /library/error/error.php
としていますが、それでも、
index.php?hoge=0002やindex.php?hogeなのでは、
うまくerror.phpが動作してないようです。
0928nobodyさん2007/04/26(木) 06:41:01ID:???
>>927
}else{
header("HTTP/1.0 404 Not Found", true, 404);
require "/library/error/error.php";
exit;
}

}else{
Location("http://自分のサーバの存在しないURL");
exit;
}
09298482007/04/26(木) 07:28:15ID:fEqE9au7
>>928
何度も申し訳ありません。
}else{
header("HTTP/1.0 404 Not Found", true, 404);
require "/library/error/error.php";
exit;
}
を試したところ、200が自前error.phpから戻ってきました。また
Location("http://自分のサーバの存在しないURL");
だと問題なくエラー表示されるのですが、アドレスが変わってしまうで自分がやりたいこととは、
少し外れてしまいます。

あまりスレを消費するのもあれなので、この辺で失礼します。
かなり勉強になりました。
レスを頂いた方ありがとうございました!
0930nobodyさん2007/04/26(木) 10:44:47ID:???
もうgdgd
0931nobodyさん2007/04/26(木) 12:15:12ID:MU7hy9Ys
phpを勉強しています。
参考にしている本のサンプルコードに

while($false !== ($entry = $d->$read())) {
(中略)


というコードが出てきました。
これはどういう意味でしょうか?
特に$d->$read()この「->」の意味が分かりません。
どなたかお分かりになるかた、教えてください。
0932nobodyさん2007/04/26(木) 12:20:49ID:???
           ∧∧
           /⌒ヽ) now loading ...
          i三 ∪      
         〜三 |       
          (/~∪
        三三
      三三
    三三
  三三
三三

0933nobodyさん2007/04/26(木) 12:24:05ID:???
>>931
点プレに入ってたかもshirenが
アロー演算子でググれ
0934nobodyさん2007/04/26(木) 12:38:43ID:???
>>931
そういう時は「php 演算子」でぐぐろう
0935nobodyさん2007/04/26(木) 12:48:32ID:???
どうでもいい雑談だけど
==より===で比較するほうが場合によっては処理が早くなったりするのかね
0936nobodyさん2007/04/26(木) 12:52:50ID:???
かおそー
0937nobodyさん2007/04/26(木) 12:52:58ID:???
>>935
場合によってはというより普通に速い。
気にするほどでもないけど。
0938nobodyさん2007/04/26(木) 12:53:39ID:???
936は誤爆
09399312007/04/26(木) 13:00:30ID:MU7hy9Ys
>933,934
レスありがとうございます。
クラス内で使用することがあることは知っていたのですが、
そのサンプルコードの中には1度もクラスが書かれていません。
ぐぐったところグローバル変数にも関係するようなのですが、
筋としてはそちらっぽいです。
もう少し調べます。ありがとうございます。
0940nobodyさん2007/04/26(木) 13:04:16ID:???
>>939
例えばこんなの
http://jp.php.net/manual/ja/class.dir.php
0941nobodyさん2007/04/26(木) 13:05:36ID:???
おぶじぇくと
0942nobodyさん2007/04/26(木) 13:13:53ID:???
雑談2
===による厳密な比較ってPHPだけ?
他の言語では==で厳密に比較されるが一般的なのかしら
0943nobodyさん2007/04/26(木) 13:30:51ID:???
つ型
0944nobodyさん2007/04/26(木) 13:31:30ID:???
比較されないと思う

0945nobodyさん2007/04/26(木) 13:39:50ID:???
以前booleanとNumberで===のベンチした時は10%程度速くなった記憶
0946nobodyさん2007/04/26(木) 13:42:22ID:???
10%とか処理速度が正確に分かるのか?
0947nobodyさん2007/04/26(木) 13:57:49ID:???
正確かと言われれば正確じゃない
xdebugかmicrotime()使かって10秒程度のループを数回やった記憶
0948nobodyさん2007/04/26(木) 14:02:46ID:???
雑談に乗じて超初心者レベルな質問が飛び交うのがこのスレの醍醐味ですね。
0949nobodyさん2007/04/26(木) 14:08:33ID:???
お前みたいに無知だけど口を出さずにはいられない輩もな
0950nobodyさん2007/04/26(木) 14:20:34ID:???
いやいや私は真面目に回答してますよ。
あまりにレベルの低い回答者のせいで質問者が不憫に思えた時なんか。
あ、雑談という体じゃなくてちゃんとした質問時の話ですよ。
0951nobodyさん2007/04/26(木) 14:22:39ID:???
うざぃ
0952nobodyさん2007/04/26(木) 14:26:58ID:???
くだスレだからいいんじゃね?
0953nobodyさん2007/04/26(木) 14:50:00ID:UlKx/JN4
すいませんXML_Treeについて教えてください。

こんな感じに書いてあるんですがXMLの要素が全部でちゃいます。
どうすれば指定した部分だけ取得できるんでしょうか?
print_rしても配列がいっぱいでてきてさっぱりです。

<?php

require_once'XML_Tree/Tree.php';

$xml_filename = "http://map.simpleapi.net/stationapi?x=139.8025&y=35.6657";;

$xml_str = join("",file($xml_filename)); // xml_str にファイルを読み込み

$tree =& new XML_Tree();
$root =& $tree->getTreeFromString($xml_str);

if(XML_Tree::isError($root)) {
//エラー処理
}

echo $tree->get();

?>
0954nobodyさん2007/04/26(木) 15:02:39ID:???
すみません、質問させてください。
1つのphpがPOSTメソッドを受信するプログラムだとします。
別のphpがPOSTメソッドを送信するプログラムだとします。
この時、<form action>で送信した場合画面が切り替わってしまうのですが、
これを遷移させずにデータを送信する方法は何か有りませんでしょうか…
0955nobodyさん2007/04/26(木) 15:03:04ID:???
>>954
ID出さない奴に質問する権利はない
0956nobodyさん2007/04/26(木) 15:03:35ID:???
指定した部分だけ取得ってどこにも指定してないじゃん
09579542007/04/26(木) 15:05:23ID:6G3Gma2a
>>955
すみません、忘れていました…
0958nobodyさん2007/04/26(木) 15:09:39ID:???
>>957
画面切り替えが嫌ならJavaScript使え
って、JavaScript全然知らんがな
0959nobodyさん2007/04/26(木) 15:11:33ID:UlKx/JN4
>>956
指定の仕方がわからないんです…。

phpspotのサンプルでは
$children = $root->children;
って感じになってるんですが
$childrenをprint_rしても配列がいっぱいで…
0960nobodyさん2007/04/26(木) 15:15:49ID:???
>>957
socket
0961nobodyさん2007/04/26(木) 15:16:51ID:???
>>959
子ノード以下のオブジェクトが返ってきてるんじゃないの?
見たい部分をそのまま指定すりゃいいじゃん。
マニュアルは読んだの?
0962nobodyさん2007/04/26(木) 15:31:18ID:UlKx/JN4
>>961

xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( [0] => xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( ) [content] => [name] => [namespaces] =>
Array ( ) [error] => [use_cdata_section] => [lineno] => 3 ) [1] => xml_tree_node Object ( [attributes] => Array ( ) [children] =>
Array ( [0] => xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( ) [content] =>
[name] => [namespaces] => Array ( ) [error] => [use_cdata_section] => [lineno] => 4 ) [1] => xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( ) [content] => 越中島駅 [name] =>.....

こんな感じに返ってきてるわけですがこれの「越中島駅」を出す場合
$content = $root->content;
print_r($content);

ってやってみたんですが上手くいかず…
マニュアルを読んでもさっぱりなんです。
0963nobodyさん2007/04/26(木) 15:34:18ID:???
せめて改行マークでも入れてくれよ・・・
0964nobodyさん2007/04/26(木) 15:37:35ID:UlKx/JN4
>>963
スマソ…これ全部一文です。
0965nobodyさん2007/04/26(木) 15:39:02ID:???
>>964
お前、ソース見ろ
0966nobodyさん2007/04/26(木) 15:39:11ID:???
>>962
マニュアル読んでどこが分からなかったの?
09679542007/04/26(木) 15:43:20ID:6G3Gma2a
>>960
有難うございます。調べたところ、fsockopenで可能なようです。
ただ、この場合POST値を複数値渡す際の書き方はどうすればいいのでしょう…

http://ml.php.gr.jp/pipermail/php-users/2005-May/026044.html
の、$POST="test_key=test_value";の部分を書き換えれば良いのは分かるのですが…
0968nobodyさん2007/04/26(木) 15:45:36ID:UlKx/JN4
>>965
これって$content[ ][ ][ ][ ]ってな感じで探ってくってことでしょうか…?

>>966
http://pear.plus-server.net/package.xml.xml-tree.xml-tree.get.html
この辺かと…
全部じゃなくて指定した部分だけを返すって事ができないのでそこで悩んでおります。
09699542007/04/26(木) 15:51:27ID:6G3Gma2a
自己解決しました。
普通にtest_key=test_value&test_key2=test_value2という風にやればいいんですね。
0970nobodyさん2007/04/26(木) 15:53:19ID:8BvigEmE
他サイトのフォームの値を取得することは不可能ですか?

例えばあるサイトのあるフォームの
textの値を取得したいのですが.

宜しくお願い致します。
0971nobodyさん2007/04/26(木) 15:55:59ID:???
>>968
$root->children[1]->children[1]->content
みたいにアクセスするっぽいけど。

そんな事より、公式に書いてある通りXML_SerializerかPHP5でSimpleXMLとか使ったほうがいいよ。
0972nobodyさん2007/04/26(木) 16:00:29ID:???
>>968
XMLツリーを取得したらあとは自分で指定するだけ。
PHPの基本的な配列とオブジェクト操作の話。
SimpleXMLやらのサンプルにも載ってる。

>>970
他サイトを読み込んでformのvalueのところ取ってくればok
0973nobodyさん2007/04/26(木) 16:05:14ID:UlKx/JN4
>>971 >>972
なるほど…こうすれば良かったんですか。
ありがとうございます。

SimpleXMLはサーバーがphp4しか対応してないのでできませんでした、
XML_Serializerをちょっと見てみます。
0974nobodyさん2007/04/26(木) 16:05:47ID:???
>php4しか対応してないので
>php4しか対応してないので
>php4しか対応してないので
>php4しか対応してないので
>php4しか対応してないので
0975nobodyさん2007/04/26(木) 16:09:20ID:???
今時どこの糞サーバだ
0976nobodyさん2007/04/26(木) 16:10:17ID:UlKx/JN4
>>974
…失礼しました。
レンタルなので自分の環境ではphp4しか使えません。
0977nobodyさん2007/04/26(木) 16:15:49ID:???
今時PHP4なんかやってらんないしサーバ変えたら?
0978nobodyさん2007/04/26(木) 16:16:09ID:g6GrkNsN
さくら鯖がphp4だからおわってるな
0979nobodyさん2007/04/26(木) 16:16:18ID:???
>>974
は勘違いしたと見た
0980nobodyさん2007/04/26(木) 16:21:34ID:UlKx/JN4
>>977
会社で指定されたサーバなので変更ができないんです…。
なんとか使い方わかりました。
ありがとうございました。
0981nobodyさん2007/04/26(木) 16:22:14ID:???
>>974
ID出さなくて良かったな
0982nobodyさん2007/04/26(木) 16:23:56ID:???
エンジニアの端くれならサーバが糞だってことちゃんと説明して説得しる
0983nobodyさん2007/04/26(木) 17:27:35ID:???
そう簡単にバージョンアップってできないもんなの?
それとも単に要望が出てないから放置してるか、ただめんどくさいだけなのか
0984nobodyさん2007/04/26(木) 17:41:28ID:???
バージョンアップできないことは無いだろうけど、古い方がまだメンテされてるのに
運用中のサーバのソフトのメジャーバージョンをホイホイ上げる管理者も珍しいんじゃないか。
0985nobodyさん2007/04/26(木) 18:00:49ID:???
運用中のサーバなら、難しいだろうな
バグフィックスならともかく、メジャーバージョンをあげるのは
躊躇するだろう
0986nobodyさん2007/04/26(木) 18:11:51ID:???
jじゃずっと4のままで大変だね
0987nobodyさん2007/04/26(木) 18:18:16ID:???
メンテ終了がアナウンスされれば移行するだろ
0988nobodyさん2007/04/26(木) 18:42:09ID:???
sakuraなら自分でインスコすればいいじゃん
0989nobodyさん2007/04/26(木) 18:48:45ID:???
>>983
変えるとしても、準備期間で最低でも告知から1ヶ月ぐらいは無理だろうね。
Xreaとかそこら辺の安い鯖借りておけば良いと思うよ。
0990nobodyさん2007/04/26(木) 23:25:16ID:???
>910
読んでみましたところ排他制御の機能のようです
知りたかったのは1度に2つのファイルを編集レてて片方だけが異常終了した場合の不都合を防ぐ方法だったのですが
セマフォで出来るもんですか

もうすぐ次スレになっちゃうけど
0991nobodyさん2007/04/27(金) 00:19:43ID:1wO6WmX/
Eclipsを入れようか迷い中
今、WAMP+DWで組んでるが
EclipsってPHP開発ソフトと見ておk?
0992nobodyさん2007/04/27(金) 00:32:58ID:???
PHP開発ソフトじゃなくてPHPも開発出来るソフトかな
PHPオンリーならやっぱZendの方が向いてるかも。
0993nobodyさん2007/04/27(金) 00:34:10ID:???
そいえば、DelphiForPHP買った人いる?
どんな感じなんだろう。
0994nobodyさん2007/04/27(金) 00:34:53ID:1wO6WmX/
>>992
サンクス
Zendにしてみるお

フリーだよな・・・
0995nobodyさん2007/04/27(金) 00:37:22ID:???
Zendはフリーじゃねぇだろう
Eclipsはフリーなんだから迷う前に使ってみればいいだろう
0996nobodyさん2007/04/27(金) 00:38:59ID:???
vim
0997nobodyさん2007/04/27(金) 01:40:47ID:???
Flashでプリントスクリーンした画像をPHPで書き出しって無理だわな
0998nobodyさん2007/04/27(金) 01:59:04ID:???
>>997
画像ファイルとして保存しておけばimgタグでドン!
0999nobodyさん2007/04/27(金) 02:20:19ID:???
今発行されてるPHPの雑誌ってある?
最近見なくなったよな・・・
1000nobodyさん2007/04/27(金) 04:34:40ID:???
しるかバカ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。