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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2011/07/28(木) 06:53:37.45ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0831nobodyさん2011/08/24(水) 23:31:07.25ID:???
は?
0832nobodyさん2011/08/24(水) 23:46:27.33ID:???
>>827
>>830
専用関数があったような気がする

それかPEARだったか?
忘れた(確証率5%)
0833nobodyさん2011/08/25(木) 00:21:38.29ID:???
>>830
自分で作れ
0834nobodyさん2011/08/25(木) 00:32:53.21ID:KfTuoz9b
「PHP帝国の逆襲」
5時間目、描いてみたけど、
読んで意味わかる?
http://www.pixiv.net/member_illust.php?mode=manga&illust_id=21289086
0835nobodyさん2011/08/25(木) 00:44:53.18ID:???
1.まずは以前のレスを見なおせ
2.2枚目のコレがページを進めるまで何を指してるのか解らない
3.いきなりアルゴリズムの説明されても困る
4.あの程度の内容ならif文要らない
0836nobodyさん2011/08/25(木) 00:46:13.36ID:???
>>833
実は難しいんだぞ
0837nobodyさん2011/08/25(木) 00:50:19.24ID:KfTuoz9b
>>835
if文はいるだろボケエエエエエエエ

どーやって1と2と3を
識別するんだああああああ

あだち充のマンガみたいに
全員同じ顔で、しぐさで見分けるのかあああ?!
0838nobodyさん2011/08/25(木) 01:02:27.59ID:???
$ary = array(
      "それはできない",
      "忙しすぎる",
      "体調悪い"
     );
echo $ary[rand()%count($ary)],"\n";
echo $ary[rand(0,2)],"\n";
echo $ary[array_rand($ary)],"\n";

こんなんでもいいいし
1-3をそのままにしたいなら
$ary = array(
     1=>"それはできない",
      "忙しすぎる",
      "体調悪い"
     );
にして
echo $ary[rand(1,3)],"\n";
とすれば出来る
0839nobodyさん2011/08/25(木) 01:03:38.48ID:???
すっげお前まじ天才じゃね?
0840nobodyさん2011/08/25(木) 01:40:47.62ID:???
>>836
すべてのトップレベルドメインとセカンドレベルドメインを羅列するだけなら
面倒だけど別に難しくはないだろ?
0841nobodyさん2011/08/25(木) 02:21:48.35ID:Qb73wGwG
defined('Hoge') or define('Hoge', true);
これはどういう意味ですか?なぜ「defined('Hoge') or」をつけているのかわかりません
0842nobodyさん2011/08/25(木) 03:37:09.47ID:???
>>841
演算子orは左側を最初に評価し、falseだった場合は右側を評価します。
つまりdefined('Hoge')の評価結果がfalseであればdefine('Hoge', true)を評価します。
結果、定数'Hoge'が定義されていなければdefine('Hoge', true)が実行されることになります。
0843nobodyさん2011/08/25(木) 09:26:21.92ID:???
>>840
ccSLDならサードレベルまで欲しいって感じじゃない
0844nobodyさん2011/08/25(木) 11:17:02.67ID:L9PzJ4Hs
定数に数字を入れてるのですが、条件によって変更したいと思います。

if ($id == 1) {
 define('ENTRY_LIMIT', 100);
}

みたいな事がしたいのですが、上書きできません。
一度定義した定数って上書きできないのでしょうか?
0845nobodyさん2011/08/25(木) 11:31:40.94ID:???
それはもはや定数ではないのでは?
0846nobodyさん2011/08/25(木) 12:26:38.16ID:???
>>844
一応 PECL runkit を使えば再定義することはできる

define('ENTRY_LIMIT', 300);
echo ENTRY_LIMIT;
runkit_constant_redefine('ENTRY_LIMIT', 100);
echo ENTRY_LIMIT;
0847nobodyさん2011/08/25(木) 13:02:41.18ID:???
何のための「変数」だ
0848nobodyさん2011/08/25(木) 13:50:02.32ID:D2w26RWA
ちょっと無茶な質問かも知れないですが、クラスの中のメソッドが実行されたとき
どこから実行されたのか判定する方法ありますか?
そのメソッド(もしくはクラス)の中に何かを記述することで対応できるのが理想です
エラー処理のメソッドがどこから呼び出されてるのかわからなくて困っている状況です
0849nobodyさん2011/08/25(木) 14:18:30.39ID:???
XDebugでスタックトレースの表示とか?
0850nobodyさん2011/08/25(木) 14:33:05.48ID:Qb73wGwG
>>842
すみません。読解力がないせいか、まだよくわかりませんので、方向を変えて
「defined('HOGE')」を「defined('HOGE') or define('HOGE', true)」にする目的はなんでしょうか?
0851nobodyさん2011/08/25(木) 14:42:51.06ID:???
>>850
defined('HOGE') or define ('HOGE', true) の一行は、以下と等価


if (defined('HOGE'))
{
define('HOGE', true)
}
0852nobodyさん2011/08/25(木) 14:43:33.95ID:???
>>850
それを書き換えると
if (!defined('HOGE')) {
 define('HOGE',true);
}
と同じになる
0853nobodyさん2011/08/25(木) 14:43:36.19ID:???
セミコロン付けるの忘れた
0854nobodyさん2011/08/25(木) 14:46:46.15ID:???
セミコロンもそうだけどor判定だから!もしくは=== falseが必要
08558512011/08/25(木) 14:47:18.45ID:???
>>852が正しい。
スマン、半年romる・・・。
0856nobodyさん2011/08/25(木) 15:38:50.34ID:Qb73wGwG
if (!defined('HOGE')) define('HOGE', true); と等価ということですね。ありがとうございます
ただ、「define('HOGE', true)」だけではいけないのは何故でしょうか?あえて 「defined('HOGE') or ...」 をつけている理由が知りたいんです
0857nobodyさん2011/08/25(木) 15:50:12.81ID:???
defined ってけつに
dがついてるのを見落としてるとかないよな?
0858nobodyさん2011/08/25(木) 15:56:58.21ID:???
>>856
定数の定義が重複するとNoticeエラーを吐くから、事前にチェックしてるだけ
0859nobodyさん2011/08/25(木) 16:21:44.19ID:Qb73wGwG
>>858
なるほど!すっきりしました。ありがとうございます。
0860 忍法帖【Lv=1,xxxP】 2011/08/25(木) 20:42:25.54ID:ULkE4QS+
test
0861nobodyさん2011/08/25(木) 21:22:57.08ID:???
test禁止
0862nobodyさん2011/08/25(木) 21:40:26.76ID:???
へー
0863nobodyさん2011/08/25(木) 23:05:33.08ID:WrUw1RTI
つまり
if (!defined('HOGE')) {
 define('HOGE',true);
}は一番ハッキングしやすいし、
Javaのコントローラーにも
適応しやすいってことか。
C言語でも使いやすいよね
0864nobodyさん2011/08/25(木) 23:24:05.94ID:???
結局PHPみたいな前時代の遺物よりAjaxの方がよほど優秀というわけか。
0865nobodyさん2011/08/25(木) 23:43:07.91ID:4cMPPRv2
Ajaxは言語じゃないし
0866nobodyさん2011/08/25(木) 23:45:11.60ID:???
>>864
キリッ を忘れてるぞ
0867nobodyさん2011/08/25(木) 23:52:53.53ID:???
(キリッ
0868nobodyさん2011/08/26(金) 10:43:49.15ID:???
( ゚,_・・゚)ブブブッ
0869nobodyさん2011/08/26(金) 10:46:19.68ID:???
>>865
そういうデマ流して何が楽しいの?
Ajaxの優位性を認めたくないからって陰険なことすんな
0870nobodyさん2011/08/26(金) 10:57:44.68ID:???
>>869
http://ja.wikipedia.org/wiki/Ajax
0871 忍法帖【Lv=27,xxxPT】 2011/08/26(金) 17:45:11.32ID:???
test
0872nobodyさん2011/08/26(金) 22:33:41.79ID:lASdrs1R
foreach ($_POST['key'] as $key => $val) {

if ($key === 0) $sql.= $val . "='1'";
else $sql.= " and " . $val . "='1'";

上記の文の$sqlの後の.=の意味が分かりません。
基本的な書き方のルールだと思うのですが
検索してもでてこなくて困っています。よろしくお願いいたします。
0873nobodyさん2011/08/26(金) 22:37:33.03ID:???
test禁止
0874nobodyさん2011/08/26(金) 22:40:30.56ID:???
>>872
http://jp2.php.net/manual/ja/language.operators.string.php
0875nobodyさん2011/08/26(金) 22:41:04.65ID:???
>>872
.= は =(代入) と .(結合)が合体した演算子。
$a .= $b は $a = $a . $b と同じ。
http://www.php.net/manual/ja/language.operators.string.php
0876nobodyさん2011/08/26(金) 22:42:09.75ID:???
>>872
文字列演算子でググれ
0877nobodyさん2011/08/26(金) 22:42:25.34ID:???
>>872
結合代入演算子
0878nobodyさん2011/08/26(金) 22:44:44.20ID:???
>>872
+= もあるよ
http://www.php.net/manual/ja/language.operators.assignment.php
0879nobodyさん2011/08/26(金) 22:46:59.30ID:???
さっそくの返信
ありがとうございます!
じっくり読んでみます。
0880nobodyさん2011/08/26(金) 23:10:51.64ID:FNxQRvbX
何このログイン画面??

https://www.fout.jp/
0881nobodyさん2011/08/26(金) 23:23:52.68ID:JWsNDBFU
Wikipediaの
http://ja.wikipedia.org/wiki/○○○○○
の○○○○○には日本語をエンコードした文字列が入っています。
例.[てすと]をエンコードすると%5B%E3%81%A6%E3%81%99%E3%81%A8%5D

PHPでこのようなURLはどうやったら作れますか?

0882nobodyさん2011/08/26(金) 23:30:00.28ID:???
>>881
専用関数がたしかあった。
「PHP逆引き大辞典」
みたいな本を開いて、
「日本語処理」
とか、そういう章をあさっていけば
たぶん見つかる。

それか、グーグルで、
「PHP 日本語 文字列 エンコード 関数」
と入れて検索すると、たぶん見つかる。
0883nobodyさん2011/08/26(金) 23:34:29.94ID:???
rawurlencodeやらurlencode
0884nobodyさん2011/08/26(金) 23:45:55.40ID:JWsNDBFU
>>882 ありがとうございます
実はurlencode()関数は知っていますが上手くいかなかったんです...

Wikipediaの wiki/○○○○○とかニコニコ動画の tag/○○○○○
○○○○○の部分のコーディングについて経験者の方が
おられましたらご教授頂ければ幸いです
(特に作る際のmkdir($dir_name)のやり方等ですかね)
0885nobodyさん2011/08/26(金) 23:57:35.56ID:???
経験者? エスパーの間違いじゃね
0886nobodyさん2011/08/27(土) 00:06:25.73ID:???
文字列をエンコードしたいと言うわけではなく
URLに含めた文字列を取得したいという事?
0887nobodyさん2011/08/27(土) 00:16:29.36ID:lpaF2D26
えーとですね 要するに

ttp://unko.com/unko/うんこ/index.phpではなくて、
ttp://unko.com/unko/%E3%81%86%E3%82%93%E3%81%93/index.php 
というディレクトリを作って、
index.phpを普通に表示させるだけなんですが
私の知識ではやり方がわからなくて。。。
0888nobodyさん2011/08/27(土) 00:20:00.88ID:???
うんことかま○ことか下品な言葉を使わないでください
0889nobodyさん2011/08/27(土) 00:24:25.54ID:???
>>887
ディレクトリを作りたいのかURLを作りたいのかどっちなんだ
URLならurlencodeで出来る
何がどう上手くいかなかったんだ
0890nobodyさん2011/08/27(土) 00:29:32.21ID:???
mkdir("うんこ");
っていうディレクトリを作っといてurlencodeしたURLでアクセスすれば見れるよ
0891nobodyさん2011/08/27(土) 00:31:05.87ID:???
wikipediaのようなURLでの表示の仕方が解らないという事だな
最近はどうしてるかしらないけど
環境変数のPATH_INFO取得したりmod_rewrite使えば実現できるよ

wikipediaの場合うんkとかのディレクトリが有るわけではない
0892nobodyさん2011/08/27(土) 00:35:24.97ID:???
>>887
いっとくけど「%E3%81%86%E3%82%93%E3%81%93」という文字列をブラウザが送信しても
ウェブサーバーが%xxをURLエンコード文字列と解釈して「うんこ」に変換しちゃうよ
だから「%E3%81%86%E3%82%93%E3%81%93」というディレクトリを作ってもそこにはアクセスできないよ
0893nobodyさん2011/08/27(土) 00:36:26.78ID:???
だからうんことかま○ことか下品な言葉を使わないでください
0894nobodyさん2011/08/27(土) 00:38:32.82ID:???
ち○こは可。
0895nobodyさん2011/08/27(土) 00:48:11.83ID:???
例文で予約されてる単語はhageだろ。
日本語の時はハゲ。漢字の時は禿。かなははげ。
うんこちんこまんこじゃなくて、はげ。わかった?
0896nobodyさん2011/08/27(土) 00:57:56.08ID:???
hageなんて予約されてねーよボケ
0897nobodyさん2011/08/27(土) 01:11:47.60ID:lpaF2D26
>>890-892
ありがとうございます!全ての疑問が解決しました!!
最初から%E3%81%86%E3%82%93%E3%81%93ってディレクトリがあるんだと
勘違いしていました(笑)
0898nobodyさん2011/08/27(土) 02:34:53.56ID:???
>>894
それは女専用語か?
0899nobodyさん2011/08/27(土) 12:26:30.58ID:???
>>893
定期的にその用語を使う質問が出てくるけど全部同一人物だと思ってる。
多分、皆の食いつきがいいからあえてその用語を使ってる故意犯。回答しないでスルーすればいいのに。
0900nobodyさん2011/08/27(土) 12:39:47.70ID:16DOerPq
てst
0901nobodyさん2011/08/27(土) 16:09:20.17ID:???
てst禁止
0902nobodyさん2011/08/27(土) 16:11:05.65ID:???
>>899
うんことかま○こを持ってるのはお前だけじゃないよ
何言ってるの?
0903nobodyさん2011/08/27(土) 17:27:34.50ID:???
>>902
ま○こ持ってるのか?
0904nobodyさん2011/08/27(土) 17:41:01.49ID:???
普通持ってるでしょ
0905nobodyさん2011/08/27(土) 19:06:00.60ID:???
メタ構文変数を使えばいいのに
0906nobodyさん2011/08/27(土) 21:51:51.97ID:???
一連の荒らしは同一人物による自演。
0907nobodyさん2011/08/27(土) 21:53:24.81ID:He/A7o7q
スーパーサンプルの2-3/rcvarray.phpからの抜粋です。
<?php
$array = array("menu"=>"\≪\i!?", "price"=>"380", "date"=>"2005/01/01");

echo "配列の内容(エンコードした場合)";
print_r(unserialize(base64_decode($_POST["ar_enc"])));
echo "<p>配列の内容(そのまま渡すと失敗)";
print_r($_POST["ar"]);
?>
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>">
<input type="submit" value="A÷?R" name="sub1">
<input type="hidden" name="ar" value="<?php echo $array ?>">
<input type="hidden" name="ar_enc"
value="<?php echo base64_encode(serialize($array)) ?>">
</form>
を実行すると、
配列の内容(エンコードした場合):
Notice: Undefined index: ar_enc in /UNIONFS/opt/lampp/htdocs/samples/chapter2/2-3/rcvarray.php on line 14
配列の内容(そのまま渡すと失敗):
Notice: Undefined index: ar in /UNIONFS/opt/lampp/htdocs/samples/chapter2/2-3/rcvarray.php on line 16
というエラーが出るんですが、どうやって直せばいいのですか? $arrayの直後に
    $ar_enc = $array;
    $ar = $array;
と挿入してみましたがダメでした。
0908nobodyさん2011/08/27(土) 22:05:49.54ID:???
>>907
http://fa3-064.dokidoki.ne.jp/note9.html
09099072011/08/27(土) 22:17:12.87ID:He/A7o7q
>>908
まだ、うまくいきません。
まず、

$ar_enc = "";
$ar = "";

にしてみましたが、同じエラーでした。
それで@でエラーを抑制すれば抑制されましたが、結果が何も表示されませんでした。
それで

//$ar_enc = "";
//$ar = "";

とコメントアウトしても結果が何も表示されませんでした。
ずばりの答えをお願いします。

しかし、スーパーサンプル第2版は10万部も売っているんでしょう?
なぜ、こんなバグ入りで売っているんですか???
11刷目ですよ?
0910nobodyさん2011/08/27(土) 22:21:39.72ID:???
そんなエサで
その手のエラーはそこに至るまで何度も経験してるだろ
09119072011/08/27(土) 22:23:44.19ID:He/A7o7q
>>910
いやいや、そういうやりとりするためにここに訊きに来たんじゃないんです
サンプルを実行する、まずはそこから始めてるということです
答えないなら黙っててください
0912nobodyさん2011/08/27(土) 22:25:32.23ID:???
釣り下手すぎw
0913nobodyさん2011/08/27(土) 22:26:31.04ID:???
初心者はLAMPP使うな
0914nobodyさん2011/08/27(土) 22:33:21.73ID:???
HTTP_requestで画像データだけをそのままPOSTしたいのですが
addFileやPostDataでは 名前=画像データ になってしまいます
どうすればいいでしょうか
09159142011/08/27(土) 22:34:27.90ID:re5o6H/V
すみませんID出し忘れました
0916nobodyさん2011/08/27(土) 22:43:56.05ID:???
>>914
>>915
md5に突っ込んで、最初の8文字だけを取り出して使うとか?
09179142011/08/27(土) 22:57:47.37ID:re5o6H/V
>>916
勘違いかも知れませんが

用途でしたら↓こちらになります
http://www.ibm.com/developerworks/jp/xml/library/x-tipatom3/index.html
リスト 3. 画像を追加する
0918nobodyさん2011/08/28(日) 02:16:11.69ID:???
名前=画像データって何?
0919nobodyさん2011/08/28(日) 03:12:30.04ID:???
key=valueだろ
0920nobodyさん2011/08/28(日) 08:09:59.10ID:Lhrseqw0
配列に
id、値(日付データ)
[1001][1229247923473]
[1002][6439473927397]
[1003][4836883]
のような値が入っており、新しく値を追加する際、同時に日付データの値が一番値が少ないものを
破棄してから追加したいのですが、
スマートなやり方ってありますか?
0921nobodyさん2011/08/28(日) 08:37:01.79ID:???
配列をソートして一番小さい値を入れ替えるとする。

array_multisort($array,SORT_ASE);
$array[][]=($a,$b);

結果は保障できないが。
09229072011/08/28(日) 16:15:19.42ID:???
>>912-913
釣りじゃねぇーっ!
初心者だからこそのLAMPPだろが!
ただな、「送信」ボタン押すのを忘れてただけだ、この野郎!
タンポポ載せる仕事に応募してくるわ!
0923nobodyさん2011/08/28(日) 20:31:08.25ID:i1UEPL4O
$text = "あいうえおabcかきくこけ,...()==−";
こんな感じに変数があったとしてマルチバイト文字(記号も含めて)のみ残して半角(記号も含めて)のみ残す方法ってどうやれば良いのでしょうか?
0924nobodyさん2011/08/28(日) 20:37:58.28ID:???
>>923
[^\x01-\x7E]
0925nobodyさん2011/08/28(日) 20:48:13.13ID:???
>>923
マルチバイト文字を残したいのか半角文字を残したいのかどっちなんだ
0926nobodyさん2011/08/28(日) 20:52:38.03ID:i1UEPL4O
>>924
できました。ありがとうございます。
文字コードで指定すればよかったんですね。
0927nobodyさん2011/08/28(日) 20:53:46.18ID:i1UEPL4O
>>925
文書変でしたね。すみません。
全角を削除して半角を残したかったです。
>>924の方法でそれができました。
0928nobodyさん2011/08/28(日) 21:08:41.79ID:???
>>924が理解できて思いつかないっておかしいだろw
0929nobodyさん2011/08/28(日) 21:22:39.05ID:???
>>928
>>924の回答すらできないおまえは>>923より馬鹿。
0930nobodyさん2011/08/28(日) 21:25:18.32ID:???
質問は慇懃でも、ちょっと煽られるとその口調かw
レス数が900を超えています。1000を超えると表示できなくなるよ。