【PHP】下らねぇ質問はID出して書き込みやがれ 112
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/10/31(月) 05:11:09.81ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 111
http://hibari.2ch.net/test/read.cgi/php/1317232566/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0513nobodyさん
2011/11/16(水) 10:03:50.43ID:???0518nobodyさん
2011/11/16(水) 10:26:43.32ID:???0519495
2011/11/16(水) 10:44:41.16ID:gD8mJFYY>>512
すいません、スマホからコピペして書き込むと、改行が上手く反映されてないかもしれません。
http://i.imgur.com/Q3QEc.jpg
>>513
どうして駄目なのでしょうか?
よろしければご教授を。
ひとつ目の読み込みでは上手くいってるのですが。
>>515
どこのスペースのことでしょうか??
くだらない内容をだらだらとすいません。
0520nobodyさん
2011/11/16(水) 10:58:38.15ID:???0521nobodyさん
2011/11/16(水) 11:05:25.53ID:???0523nobodyさん
2011/11/16(水) 11:51:54.72ID:???0524nobodyさん
2011/11/16(水) 12:16:58.51ID:???0525nobodyさん
2011/11/16(水) 12:25:35.75ID:???検索のノウハウが無いと大変なんかねえ
0526nobodyさん
2011/11/16(水) 12:29:59.69ID:???嘘に引っかかることもあるし、それは古い話だってこともある。
0527nobodyさん
2011/11/16(水) 12:48:57.64ID:???ググった
0528nobodyさん
2011/11/16(水) 12:49:31.84ID:???0529nobodyさん
2011/11/16(水) 12:51:33.14ID:???0531nobodyさん
2011/11/16(水) 13:57:50.04ID:???0532nobodyさん
2011/11/16(水) 13:59:35.26ID:???0533nobodyさん
2011/11/16(水) 14:02:40.03ID:???0534495
2011/11/16(水) 14:08:22.17ID:gD8mJFYY微妙にお叱りを受けていたようなので、
>>510
print getUserAgent();
のレスを元に、
2つのinclude先ファイルに記載してみました。
すると、後で読み込むファイル(002)の箇所が表示されない。
後のファイルのみなら表示される。
ソースを半分に割って試行錯誤。(取得部分と再include部分)
結論は、002でユーザーエージェントを取得しなければ、思い通りの表示になりました。
考えてみると、001で取得してるので、必要ないので削除しました。
色々と助言をくれたかた、ありがとうございました。
0535nobodyさん
2011/11/16(水) 14:08:26.73ID:???そして不必要なパラメータを削っているところを見ると
0536495
2011/11/16(水) 14:15:09.40ID:gD8mJFYY必要な時に、必要最低限の勉強と公開されてるソースのコピペばかりをやってきたので、
phpの知識が全く系統だてられていません。
その状態で半年、だましだましやってきたので、
分からないことに出会った時に、上手く調べられないのも確かです。
また、ヒットしたページの通りにやってみても、バージョンのせいなのか設定のせいなのか、
上手くいかないこともしばしばでして。。
でも、僕の怠慢です。
不快にさせて申し訳ありませんでした。
きちんと勉強しながら、またどうしてもというときだけ、質問させてもらいます。
ありがとうございました。
0537nobodyさん
2011/11/16(水) 14:18:59.43ID:???PHP3や4でも動くコードを書け、みたいなノリ。配布するわけでもないのに
0539nobodyさん
2011/11/16(水) 14:21:59.65ID:???0542nobodyさん
2011/11/16(水) 14:25:22.03ID:???0543nobodyさん
2011/11/16(水) 14:28:24.89ID:???0545nobodyさん
2011/11/16(水) 14:30:38.25ID:???0546nobodyさん
2011/11/16(水) 14:33:58.74ID:???0547nobodyさん
2011/11/16(水) 14:35:53.11ID:???0548nobodyさん
2011/11/16(水) 14:44:33.54ID:???(取得できないように設定しているサーバというものがある)
自分しか使わない、自分の環境が分かってる人間には問題ない。まして動いているなら。
彼が言ってるのは、環境なんか知る必要はないってことだな。
初心者への助言とはいえる。
0549nobodyさん
2011/11/16(水) 14:52:46.53ID:???でその助言で相手を混乱させてると・・・
しかも理由を聞かれても答えない素敵な助言
0551nobodyさん
2011/11/16(水) 15:11:03.11ID:???0552nobodyさん
2011/11/16(水) 16:59:38.93ID:???FirefoxやChromeはデコードされた文字列をロケーションバーに表示してくれる
全体をコピーしたら元のURIがコピーされるけど、一部分のコピーだとデコード後の文字列がコピーされる
0554nobodyさん
2011/11/16(水) 19:54:15.47ID:eLkUclYQPHPでのワイルドカードの使い方についてです。
まず、現在は
if($_POST['enter_1']){ echo $_POST['name_1'];}
if($_POST['enter_2']){ echo $_POST['name_2'];}
if($_POST['enter_3']){ echo $_POST['name_3'];}
<input type="text" name="name_1"><input type="submit" name="enter_1" value="送信">
<input type="text" name="name_2"><input type="submit" name="enter_2" value="送信">
<input type="text" name="name_3"><input type="submit" name="enter_3" value="送信">
となっています。
実際にはechoではなくMySQL文があるのですが、今回はわかりやすぐechoにさせていただきました。
送信ボタンを押すと、それに対応したテキストボックスに入力した文章が表示されるのがわかると思います。
本題です。
IF文の中が$_POST['enter_○'] となっていて、TRUEのときは○の中身が使用されます。
○以外は全て同じなので、ワイルドカードを使ってIF文をひとつにできないかと思いましたが・・・。
正規表現や配列等を考えてみて、やってみたのですがうまくいきませんでした。
IF文をひとつにする方法はありませんでしょうか?
よろしくお願いします。
0556nobodyさん
2011/11/16(水) 20:14:59.77ID:???foreach( $items as $var=>$val)
if ($_POST[$var])echo $_POST[$val];
---------------------------------------------
for($i=1;$i<=3;$i++)
if ($_POST["enter_$i"])echo $_POST["name_$i"];
(セキュリティについてはサンプルってことで書かないけど、
こういうのが ネットにこう書いてあったって使われちゃったり)
0557nobodyさん
2011/11/16(水) 21:12:17.78ID:???普通h同じセッションになるので不可能だと思いますが何か方法があれな教えて下さい。
0560553
2011/11/16(水) 22:11:49.03ID:eLkUclYQ最近勉強し始めたので、セキュリティはあまりわかっていません…。
サニタイジングはもちろんします。今回は長くなるので省略しましたが…。
0561nobodyさん
2011/11/16(水) 22:44:23.46ID:???var_dumpの結果をechoで出そうと思い、以下のスクリプトを作成しました。
~$ cat hoge.php
#!/home/php/bin/php
<?php
$data = 'aaa';
$result = var_dump($data);
echo "result=$result\n";
?>
ところがこのスクリプトを実行すると、結果が以下のようになってしまいます。
~$ ./hoge.php
string(3) "aaa"
result=
おそらく、var_dumpの結果がresultに入ってないと思うのですが、
そうするためにはどうしたらいいでしょうか?
0562nobodyさん
2011/11/16(水) 22:51:04.72ID:+5IKw5hh0563nobodyさん
2011/11/16(水) 23:01:58.01ID:???http://php.net/manual/ja/function.var-dump.php
マニュアルを読もう
答えがそのまんま書いてある
0564nobodyさん
2011/11/16(水) 23:08:04.54ID:???0566nobodyさん
2011/11/16(水) 23:13:03.42ID:???var_exportね
0567nobodyさん
2011/11/16(水) 23:24:57.87ID:???ワイルドカードなんてものはないのでループなり自分で調べるしかない
普通は配列で扱う
<?php
foreach ($_POST['enter'] as $id) { echo $_POST['name'][$id]; }
for($i = 1; $i <= 3; $i++) {
printf('<input type="text" name="name[%s]"><input type="submit" name="enter[%s]" value="送信">', $i, $i);
}
0568nobodyさん
2011/11/16(水) 23:40:12.68ID:???0569>>561
2011/11/17(木) 00:36:00.90ID:P0oL6Kj5マニュアルをみたのですが、var_exportの説明は以下のようになっています。
説明:”変数の文字列表現を出力または返す”
そして、var_dumpの説明は以下のようになっています。
説明:”変数に関する情報をダンプする”
以下の3つの具体的な意味についてご教授ください。
「ダンプする」
「出力する」
「返す」
0570nobodyさん
2011/11/17(木) 01:07:37.67ID:???0571553
2011/11/17(木) 01:37:36.08ID:70iwFN0Dありがとうございます。
Linuxにあるので、あるものだと思っていました…。
それを参考に書いてみようと思います。
0572nobodyさん
2011/11/17(木) 02:09:20.00ID:???>>564はなぜスルーされたのか。。
>>571
Linuxにあるんじゃなく、シェルにある。
phpでなら正規表現を使えばいいよ
0573nobodyさん
2011/11/17(木) 03:41:11.72ID:???0574nobodyさん
2011/11/17(木) 11:44:23.47ID:???http://www.lancers.jp/work/detail/27050
0575nobodyさん
2011/11/17(木) 13:59:57.52ID:izk/KJxq0576nobodyさん
2011/11/17(木) 17:29:14.46ID:0Ntos03Vif (isset($date'day'])) {
echo 1;
} else {
echo 0;
}
とした場合、配列でもないのに1が表示されます。
「$dateが配列で、連想配列のdayが存在する場合」
という条件式はどう書けばいいのでしょうか?
0577nobodyさん
2011/11/17(木) 17:30:10.36ID:???if (isset($date['day'])) {
0578nobodyさん
2011/11/17(木) 17:40:40.09ID:???0579nobodyさん
2011/11/17(木) 17:48:00.34ID:???if (isset($date['day'])) {
こんな感じですか。でも、これって$date自体がなかったらエラーになりませんか?
0580nobodyさん
2011/11/17(木) 18:16:28.76ID:???$date = null;
var_dump(isset($date,$date['day'])); // false
$date = array();
var_dump(isset($date,$date['day'])); // false
$date = array('day'=>null);
var_dump(isset($date,$date['day'])); // false
$date = array('day'=>'');
var_dump(isset($date,$date['day'])); // true
$date = null;
var_dump(isset($date) && is_array($date)); // false
$date = array();
var_dump(isset($date) && is_array($date)); // true
$date = array('day'=>null);
var_dump(isset($date) && is_array($date) && isset($date['day'])); // false
$date = array('day'=>'');
var_dump(isset($date) && is_array($date) && isset($date['day'])); // true
これぐらいは自分で試せ
0581nobodyさん
2011/11/17(木) 19:06:01.97ID:???すこし話はずれるけど、そもそもの事象について説明しとく。
isset($date['day']) が真になる理由だけど、
$dateが配列ではなく文字列のため、添え字演算子は文字列インデックス(整数)を要求することになる。
んで、'day'を整数評価した値は0になるため、
isset($date['day'])はisset($date[0])となり、$date[0]は1文字目、つまり'2'が設定されているため、真になる。
なのでこうする。
isset($date) && is_array($date) && isset($date['day'])
array_key_existsとの違いにも気をつけること。
>>580
関係ないことずらずら書いててワロタ
0583nobodyさん
2011/11/17(木) 19:38:01.70ID:0Ntos03Vありがとうございます。大変勉強になりました!
0584nobodyさん
2011/11/17(木) 23:51:19.67ID:???<form 〜
<input type="hidden"〜
<a href="javascript:document.form.submit()">〜
</form>
の順で出力させてるのに、
ソースコード見たら
<form 〜 ></form>
<input type="hidden"〜
<a href="javascript:document.form.submit()">〜
の順で出力されてる…怖い…
0586nobodyさん
2011/11/18(金) 00:09:05.38ID:???あとテーブル使ってますが絶対に記述してない<tbody>が出力されてます
ajaxで書き換えた後のソース部分なんですが…
0588nobodyさん
2011/11/18(金) 00:14:48.11ID:???0589nobodyさん
2011/11/18(金) 00:26:14.18ID:???firebugは入れてないです
別のPCのfirefoxだとソース部分ではちゃんと順番に出力されてますがそのリンク自体が表示されなくなりました…
0590nobodyさん
2011/11/18(金) 00:45:57.86ID:???0591nobodyさん
2011/11/18(金) 00:49:20.18ID:???ajaxで書き換えるソースコードが書かれているphpファイルに
ヘッダタグ等の必要な情報を一切書いていなかったのが原因でした。
大変失礼しました…
0593nobodyさん
2011/11/18(金) 13:07:57.29ID:0E07J79Yリンク先のページの全体像みたいのが画像で表示されますが
HTMLを画像にするようなことができるのでしょうか?
何か関数やヒントになるキーワードがあれば教えてください
0595593
2011/11/18(金) 13:23:38.38ID:0E07J79Yありがとうございます!
0596nobodyさん
2011/11/18(金) 16:34:31.24ID:CLCMBLd4ファイル名に日本語を使いたいのですが、文字コードの指定が分かりません。
まず、windowsのファイル名の文字コードはUTF-8との事ですが
UTF-8のphpから
error_log("test",3,"ログファイル.txt");
と書いて"ログファイル.txt"というファイル名のファイルを作ったつもりでも、作成されたファイルをエクスプローラで見ると文字化けしてしまいます。
mb_convert_encoding($file,"SJIS-win","UTF-8");とファイル名の文字コードを変換すれば正常なファイル名が作成されるのですが
UTF-8のはずのwinodowsで何故sjisへの変換作業が必要なのでしょうか
これが解決出来れば、ファイル名は全てutf-8で統一されてファイル名の文字コードに気を使う事が無いのですが。
0597nobodyさん
2011/11/18(金) 16:59:21.29ID:???0598nobodyさん
2011/11/18(金) 17:08:53.82ID:???0599nobodyさん
2011/11/18(金) 17:27:57.11ID:jAJu9/rrsort系のGETを入れたいと思っています。
hoge.com?page=1&type=1… 様々な GET… &sort=asc
hoge.com?page=1&type=1… 様々な GET... &sort=desc
これにより、様々な条件下で抽出されたリストから
並びかえができるようになってるのですが、
"様々な条件下で、生成されたGET要素入りURL"
は、どうやって取得したらよろしいでしょうか。
0600nobodyさん
2011/11/18(金) 17:56:56.87ID:???$url = explode("?",$url);
print $url[1];
かもしれない。
0603nobodyさん
2011/11/18(金) 18:52:56.78ID:???様々な条件下で、生成されたGET要素入りURLってのが、アクセスしてきたアドレスとは
限らないじゃないかというオチャラケだよ。
本人が違うって書いてくれればいろいろ分かるのに。
>>602
ユニコードで取得する方法はあるから、PHPが対応してないってこと。
0604nobodyさん
2011/11/18(金) 22:23:23.54ID:???>>601は落ちつくべき。
0605nobodyさん
2011/11/18(金) 23:04:14.52ID:???0606600
2011/11/18(金) 23:05:20.43ID:???0607nobodyさん
2011/11/18(金) 23:25:01.53ID:tf7WOWeBどのようなものがあるのでしょうか?
0608nobodyさん
2011/11/18(金) 23:26:24.08ID:???0610nobodyさん
2011/11/18(金) 23:41:33.43ID:???0611nobodyさん
2011/11/18(金) 23:46:36.76ID:tf7WOWeBすみません
ただ単純に、画像を取得して例えばブラウザに表示させたいと思いまして
自分はcURLを使って全体を取得してテキスト文はDOM使って表示させたのですが、
画像の表示のさせ方が分からなかったもので
■ このスレッドは過去ログ倉庫に格納されています