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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/06/21(木) 19:37:07.93ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0110nobodyさん2012/06/26(火) 00:43:49.89ID:2etFBhgC
if ($_SERVER["REQUEST_METHOD"]=="POST"){
foreach{_$POST as $k => $v{
$v=htmlspecialchars($v)
$$k=$v
0111nobodyさん2012/06/26(火) 00:53:31.34ID:???
>>110
ヘンテコ関数の代表格、htmlspecialchars
0112nobodyさん2012/06/26(火) 00:59:03.20ID:???
>>108
正規表現式として意味のある記号はエスケープする必要がある

mb_ereg_replace('{\\$fujisan}', '富士山', '{$fujisan}さん');
0113nobodyさん2012/06/26(火) 01:01:39.42ID:???
えっちてーえむえるすぺしやるちやーづ
0114nobodyさん2012/06/26(火) 01:17:49.02ID:???
utf-8の文字。例えば"Pokémon"(eの上にアクセント)等を
shift-jisに変換すると"Pok?mon"(半角のクエスチョンマーク)となってしまいますが
なるべく近い文字、この場合ですと"Pokemon"に変換するにはどうしたらいいのでしょうか

変換テーブルを自作する必要があるのかな…
0115nobodyさん2012/06/26(火) 01:32:15.02ID:???
phpにできないことはない
01161142012/06/26(火) 01:39:01.21ID:???
すみません、自己解決しました。
0117nobodyさん2012/06/26(火) 02:07:48.64ID:???
>>116
すみません。それ教えてください。
フランス語を表示しようとしてなんかうまくいかない
0118nobodyさん2012/06/26(火) 02:12:55.94ID:???
なるほど、こう切り返せばいいのか
0119nobodyさん2012/06/26(火) 02:24:07.88ID:???
スレタイを100万回読んだあと理解できたら質問をしなおせ
理解できなかったら自己解決しろ
0120nobodyさん2012/06/26(火) 04:57:19.00ID:???
iconv
0121nobodyさん2012/06/26(火) 09:28:21.80ID:???
>>120
ありがとうございます。
0122nobodyさん2012/06/26(火) 09:30:34.10ID:???
屑回答者荒すな
0123nobodyさん2012/06/26(火) 09:42:08.00ID:???
>>122
もうしわけありませんでしたm(__)m
0124nobodyさん2012/06/26(火) 12:00:34.23ID:WMfeevkP
-- test1.php --
class Test1
{
}

-- test2.php --
class Test2 extends Test1
{
}

-- index.php --
require_once 'test2.php';
require_once 'test1.php';

【index.phpの出力結果】
Fatal error: Class 'Test1' not found

クラス継承を行う場合は、先にその元クラスをインクルードする必要があるのでしょうか。
またはphp.iniでその設定があるのでしょうか。
(ローカルサーバだとエラーにはならないが、別のサーバだとエラーになります。)
0125nobodyさん2012/06/26(火) 13:22:57.60ID:???
PHP で zip ファイルを作る時
圧縮ファイルと、非圧縮ファイルを混在させることは出来ますか?
0126nobodyさん2012/06/26(火) 13:46:50.76ID:???
>>124
エラーとなるのが正常
オートローダーでも使ってない?
0127nobodyさん2012/06/26(火) 14:04:23.19ID:???
>>125
できんわけないだろ
0128nobodyさん2012/06/26(火) 15:31:46.84ID:???
できますん
0129nobodyさん2012/06/26(火) 19:04:35.58ID:???
zipの仕組みを勉強しろ
数バイトのファイルとかJPEGを圧縮しても小さくならないから無圧縮で格納するだろ
0130nobodyさん2012/06/26(火) 19:30:41.62ID:CA9sgAti
phpファイルにcgiファイルをincludeすることはできないのだろうか?
0131nobodyさん2012/06/26(火) 19:33:56.37ID:???
CGIって知ってる?
たいていの言語で書けるんだよCGIは
0132nobodyさん2012/06/26(火) 19:36:16.86ID:CA9sgAti
今、perl cgiをphpから呼び出せないか試してるんだけど、上手くいかない。
これまではshtmlファイルとしてincludeしてたんだけど、これをphpでやりたい。
できないかな?
0133nobodyさん2012/06/26(火) 19:38:22.92ID:???
口調が気に食わない
0134nobodyさん2012/06/26(火) 19:41:55.52ID:???
cgiにhttpでアクセスして間接的に実行する
0135nobodyさん2012/06/26(火) 19:44:18.18ID:???
ダサい
0136nobodyさん2012/06/26(火) 20:02:39.81ID:CA9sgAti
うーん、上手くいかない・・・
(phpファイルにて)include()でプログラム結果だけを表示するは無理。echo()で<!--#include virtual="PERL CGIファイル名" -->を表示は当然無理。
0137nobodyさん2012/06/26(火) 20:14:56.85ID:???
お前には無理

はい、次の方どうぞ
0138nobodyさん2012/06/26(火) 20:18:51.21ID:???
>>136
http://php.net/manual/ja/function.virtual.php
これは試した?
0139nobodyさん2012/06/26(火) 20:28:55.54ID:zj9cDHda
POSTとGET、どちらを優先すべきか迷っています
どちらが推奨されているんでしょうか?
0140nobodyさん2012/06/26(火) 20:32:09.67ID:CA9sgAti
>>138
一瞬、これは上手くいくのではと思ったんですが、今のところはちょっと・・・
もう少しいろいろやってみます。情報ありがとう!御礼です。^^
0141nobodyさん2012/06/26(火) 20:32:30.83ID:???
なんで悩むの?
0142nobodyさん2012/06/26(火) 20:41:32.60ID:???
URIに含める必要のある情報はGET、でなけりゃPOST 優先とかない
0143nobodyさん2012/06/26(火) 20:42:16.57ID:???
GETには長さの上限がある

POSTはキャッシュを短くすると 戻る ボタンで戻れないサイトになる
再読み込みすると再POSTしてしまうことにも注意

このくらい自分で調べなさい
調べなくても書けるが
0144nobodyさん2012/06/26(火) 21:01:34.95ID:zj9cDHda
>>141-143
ありがとうございます
0145642012/06/26(火) 22:08:03.04ID:1ceHQTZw
お願いします。

ファイルをアップロードする時
サーバー上にファイルをアップロードして、 置かないと
ファイルのサイズの取得はできないのでしょうか?

0146nobodyさん2012/06/26(火) 22:09:04.17ID:???
phpにできないことはない
0147nobodyさん2012/06/26(火) 23:12:39.93ID:zj9cDHda
>>145
php ファイルサイズ取得
でぐぐると出てくると思うが・・・

アップロード前なら
JS ファイルサイズ取得
ででてくるサンプルでもいいし
0148nobodyさん2012/06/26(火) 23:18:01.52ID:???
phpにできないことはない
0149nobodyさん2012/06/26(火) 23:30:59.75ID:???
PHPerは馬鹿しかいないな

アップロード前にサイズを取得できるもんなら具体例を示せクズが
0150nobodyさん2012/06/26(火) 23:35:44.66ID:???
なにキレてんの
0151nobodyさん2012/06/26(火) 23:36:58.87ID:???
早く示せよクズ
0152nobodyさん2012/06/26(火) 23:40:31.74ID:???
なにキレてんの
0153uy2012/06/26(火) 23:42:42.83ID:???
俺はゴミカスだがエリートゴミカスだ
お前らのような下級ゴミカスとは格が違う
0154nobodyさん2012/06/26(火) 23:49:27.11ID:???
phpにできないことはない
0155nobodyさん2012/06/26(火) 23:53:02.26ID:???
uyでもいいぞ
お前はゴミカスだから無理だろうが
0156nobodyさん2012/06/27(水) 00:02:18.56ID:???
なにキレてんの
0157nobodyさん2012/06/27(水) 00:08:42.03ID:???
phpにできないことはない
0158nobodyさん2012/06/27(水) 00:09:40.53ID:7rvgH06x
シングルコーテーションは「 ' 」か「 ` 」のどちらを使えばいいんでしょうか
0159nobodyさん2012/06/27(水) 00:11:13.97ID:???
 '△` マンドクセ
0160nobodyさん2012/06/27(水) 00:53:33.21ID:LsnLOJeW
メール送信する時のエンコードってどうしてますか?
 ・Gmail, yahooメール, live.jp, auなどはsjis(テスト確認済み)
 ・docomoはsjis(未確認)
 ・ソフトバンクだけutf-8(未確認)
…とすれば良いのかなと思ってるんですがそれで間違いないんでしょうか?

いろんなサイトを見てると
「ドコモとAUはSJISで、ソフトバンクはUTF8で、PCはISO-2022-JP」という意見があるみたいなんですが
ISO-2022-JPで送るとわかる限りで以下の問題があります
 ・Gmail :送信者名が化ける(本文、件名は大丈夫)
 ・yahooメール, live.jp :送信者名、件名が化ける

また、プロバイダメールやdocomo, softbankについては端末を持っていないので確認できません
他にもいろいろと環境依存(zendFWのzend_mail利用、smtpはGmailなど)があるかもしれませんが
それはともかく、メール送信時のエンコードはどうしたら良いか、ご意見いただけると嬉しいです
よろしくお願いします
0161nobodyさん2012/06/27(水) 01:34:28.10ID:???
携帯での文字コードはどうあるかの前に、

送信者名や件名が ISO-2022-JPで化けるのは、送り方が間違ってる。
何で送ってるか知らないけど、エンコードしなくちゃいけないのにしてないだろ。

意味が分からないのであれば、分かるまでは
メールを送信すべきではないと思う。

嘘やイツノジダイノハナシダヨみたいなゾンビサイトが山ほどあるから気をつけてね。
0162nobodyさん2012/06/27(水) 02:44:34.24ID:LsnLOJeW
>>161
ありがとうございます!
ヘッダの日本語部分、よくよく見返すとmb_encode_mimeheader();でなくmb_convert_encoding()してました!

残りの本文の文字コードですが、こちらから絵文字を送る予定はないので本文もISO-2022-JPでいいんでしょうか
古い端末だと無理かもしれないから
docomo/au:SJIS、Softbank:utf-8 にすべきなんでしょうか

人から送られてきたメールのヘッダを見ると、docomo/auはiso-2022-jp、softbankはISO-2022-JPに
なっていますが…
全然PHPと関係なくなってすみません
0163nobodyさん2012/06/27(水) 05:15:17.47ID:???
絵文字と、iso-2022-jpでは表現できない文字、な

あとは概ねいい
0164nobodyさん2012/06/27(水) 21:21:58.61ID:???
でた!!!

mb_encode_mimeheader
0165nobodyさん2012/06/27(水) 21:53:21.52ID:???
>>129

java だとこのファイルは圧縮して、このファイルは圧縮しないとか指定して
一つの zip に包めるので。
ちなみに linux のコマンドとかでも同じように圧縮、非圧縮を指定して一つに包めるんだけど
軽くしか調べてないけど PHP だと圧縮しないで zip に入れる方法がよくわからなかったので。

小さいから無圧縮だとか言われても、大きいファイルを圧縮しないで包めないなら
PHP でやるのはやめておきます。

0166nobodyさん2012/06/27(水) 22:13:11.92ID:???
>>165

23. Javaの話をすると回答者が不機嫌になるんだけど・・・
 → 他言語について言及しないこと。ここの回答者はPHPしかわかりません。
0167nobodyさん2012/06/27(水) 23:16:26.46ID:???
http://akatukisiden.wordpress.com/2011/07/08/make_epub/
0168nobodyさん2012/06/28(木) 01:55:07.79ID:VxuqYUaq
やや高度なphpのサンプル置いてあるwebサイト教えてください
0169nobodyさん2012/06/28(木) 02:02:26.51ID:???
適当なオープンソースでも読んだら
0170nobodyさん2012/06/28(木) 10:30:40.06ID:BhBY6vnH
json文字列をdecodeしたあとのようなオブジェクトから
stdClassを全部arrayにしたいのですが単にarrayにキャストするだけでは
トップレベルのstdClassがarrayになるだけで中身はなりませんでした
$json->hoge[0]->fuga[0]->moge;

$json["hoge"][0]->fuga[0]->moge;

これを全部配列
$json["hoge"][0]["fuga"][0]["moge"];
のようにするにはforeachなんかで自分で作るしかないのでしょうか?
0171nobodyさん2012/06/28(木) 10:52:10.73ID:???
自分で作ってください。

function object2array($o) {
if (is_object($o) || is_array($o))
foreach ($o as $k => $v)
$array[$k] = object2array($v);
else $array = $o;
return $array;
}
01721702012/06/28(木) 11:06:05.83ID:BhBY6vnH
>>171
ご丁寧に関数までありがとうございます
ありがたく使わせていただきます
0173nobodyさん2012/06/28(木) 12:39:50.82ID:kzinoyu5
てすと
0174nobodyさん2012/06/28(木) 12:42:11.50ID:kzinoyu5
↑すいません。規制きつかったのでテストさせてもらいました。

質問いいでしょうか。

$変数 = $変数 -> SendMail(ユーザー定義関数)


の様な構文があるのですが、"->"この記号の意味が
ぐぐっても分かりません。
どういう操作をしているのでしょうか。
宜しくお願いします。
0175nobodyさん2012/06/28(木) 12:44:13.17ID:kzinoyu5
テンプレで済んでました……
自分でもう一度考えてみます
0176nobodyさん2012/06/28(木) 14:29:06.38ID:???
クラスを学べ
0177nobodyさん2012/06/28(木) 16:56:52.38ID:???
htmlspecialcharsのデコード版はhtmlspecialchars_decode
htmlentitiesのデコード版はhtml_entity_decode
命名方法おかしいだろ
0178nobodyさん2012/06/28(木) 17:28:22.00ID:???
すいません
0179nobodyさん2012/06/28(木) 18:27:10.70ID:IOgu8Gzq
ぷろぱち
0180nobodyさん2012/06/28(木) 18:42:25.55ID:???
大島優子ってきもいよな
すれちでごめ
0181nobodyさん2012/06/28(木) 18:48:07.03ID:???
>>177
ゴミカスが命名したものだからな
uyと同じゴミカス
0182nobodyさん2012/06/28(木) 20:53:53.84ID:???
>>180
時間差でワロタwww
0183nobodyさん2012/06/28(木) 21:23:38.85ID:???
>>177
あとで命名やっちゃった系はエイリアス作ってそっちに移行したあと
元あったほうをエイリアスってことにすればいい
がそれをやらないのはhtmlentitiesなんて誰も使わないからじゃね
0184nobodyさん2012/06/29(金) 23:55:27.72ID:???
汚い関数、さらすな!
0185nobodyさん2012/06/30(土) 05:48:26.87ID:???
htmlspecialchars
0186nobodyさん2012/06/30(土) 12:04:30.01ID:2iskweOi
【OS名】Windows VISTA
【PHPのバージョン】PHP 5.3.8 / MySQL 5.5.16 / phpMyAdmin 3.4.5
【連携ソフトウェア】XAMPP1.7.7
【質問内容】

$link = mysql_connect("localhost", "ユーザーネーム", "パスワード");
if(!$link) {
die("データベースに接続できません:" . mysql_error());
}
$sdb = mysql_select_db(データベース名'', $link);
echo $sdb; // 1
mysql_query("INSERT INTO 'Person' (FirstName, LastName, Age) VALUES ('Peter', 'Griffin', '35')");

MYSQLに繋いでテーブルを作る操作について勉強中なのですが
これを実行してphpMyAdminでデータベースを確認しても、テーブルがありませんと表示されます
dieの文章も表示されず、mysql_select_dbの戻り値も1と表示されDBに接続・選択については問題ないように思うのですが・・・
どうか御指南お願いします
0187nobodyさん2012/06/30(土) 12:11:03.39ID:???
テーブルが無いって言われてるじゃない
0188nobodyさん2012/06/30(土) 12:14:31.34ID:???
CREATEでテーブルを作成してINSERTでテーブルにレコードを挿入する
0189nobodyさん2012/06/30(土) 14:20:34.20ID:???
Java版のPHPの質問もこちらでよろしいですか?
0190nobodyさん2012/06/30(土) 16:42:01.14ID:???
どっちよりの質問か考えてPHPよりならどうぞ
0191nobodyさん2012/06/30(土) 17:19:46.84ID:???
>>187-188
返信ありがとうございます
テキストを見返した所、phpMyAdminからテーブルを生成した後に実行するコードのようでした
失礼しました
0192nobodyさん2012/07/02(月) 00:35:49.92ID:TLLyppBD
PHPの関数popenについての質問です。

【OS】Win XP SP3
【Apache】httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
【PHP】5.2.17(VC6)

PHPのpopenを使って非同期処理をしようとしているのですがうまくいきません。
a.phpを実行するとb.phpで受け取った引数をファイルに書き込むだけのプログラムです。

a.php
---------------
$fp = popen("start php C:\www\www.localhost\html\dmm\save.php 1", "r");
pclose($fp);


b.php
---------------
$fp = fopen('data.log', 'a+');
fwrite($fp, $argv[1] . "\n");
fclose($fp);

現在起きている現象としてはa.phpを実行すると「ボン」というようなシステム音がなって、いつまでまっても処理が終わりません。
タスクマネージャーのプロセスを確認するとcmd.exeというプロセスが立ち上がっていてずっと実行中のような感じになっています。
実行した分だけcmd.exeが立ち上がりexecution time を過ぎても終わらず、手動でプロセスをKILLしない限りいつまでも実行して続けているようです。

b.phpが実行されていないようなのですが、何が問題なのか原因がわかりません。
わかる方いましたらご教示お願いします。
0193nobodyさん2012/07/02(月) 01:31:12.23ID:???
save.phpって?
01941922012/07/02(月) 01:35:42.13ID:???
すみません。save.php は b.php のことです。
なので、

a.php
---------------
$fp = popen("start php C:\www\www.localhost\html\dmm\b.php 1", "r");
pclose($fp);

が正しいです
0195nobodyさん2012/07/02(月) 09:49:45.18ID:???
startはcmdのコマンドだし、別のcmd起動して実行する命令だからな。
/bオプションつけるとか、php直接実行できないの?
0196nobodyさん2012/07/02(月) 17:48:29.91ID:SZK4fFLw
postがある時の処理をいつも
if($_POST['foo']){
 do something;
}
って書いてるんだけど、現場のプロはどう書くんだい?
0197nobodyさん2012/07/02(月) 18:21:17.25ID:???
function get_post($key) {
return isset($_POST[$key]) ? $_POST[$key] : '';
}
ポストされないとエラー出るからこんなの用意するのが普通
後はフレームワークにお任せとか
0198nobodyさん2012/07/02(月) 19:23:08.23ID:???
issetで確かめる方法が一般的ではあるが
undefined indexはif-elseである時ない時で処理してるなら
問題にはならないしエラーきってスルーしてもいいと個人的に思う
0199nobodyさん2012/07/02(月) 21:19:09.18ID:???
if (isset($_POST)) {
 foreach ($_POST as $key => $value) {
  $$key = $value;
 }
}
0200 忍法帖【Lv=2,xxxP】 2012/07/02(月) 23:55:55.70ID:???
a
02011922012/07/03(火) 00:32:17.90ID:???
>>195
回答ありがとうございます。
↑のコードにこだわってるのは以前は動作していたからです。
他の書き方でもいいのですが、動かない原因が分からないままは気持ち悪くて。。。
ちなみに、実行すると「ボン」というような鳴るといいましたが調べたら、
windowsのシステムエラーのときに出るシステム音でした。
どうもPHPとは関係なさそうな問題みたいだがどこで聞けばいいのやら
02021922012/07/03(火) 00:43:50.03ID:???
windowsのシスログみるとどうもポートがバッティングしてるみたいなので
そっちから原因を追いかけてみまることにします。
ありがとうございました。
0203nobodyさん2012/07/03(火) 10:36:33.75ID:zEl9Hy22
やっぱissetだよなぁ・・・。
ところで、直接$_POST[$key]を使わないのって何故なんだい?
0204nobodyさん2012/07/03(火) 10:50:11.57ID:???
エラー出るからって言ってんだろうが

他の言語じゃindexがなければnullになるだけでエラー出ない事もあるし
そういう人らにはこの処理が無駄に思えるだろう
だからエラー制御して別につけたくなきゃつけなくていいよ
0205nobodyさん2012/07/03(火) 12:59:03.40ID:???
@$_POST[@$key]
0206nobodyさん2012/07/03(火) 15:42:30.70ID:???
error_reporting
0207nobodyさん2012/07/03(火) 15:54:04.65ID:???
$post = array_merge($default, $_POST);
0208nobodyさん2012/07/03(火) 15:58:34.34ID:???
>>207
やるじゃん
merge重そうなイメージあるけど
0209nobodyさん2012/07/04(水) 11:18:40.20ID:UNFbEgiX
JpGraphを使用して、グラフの値を動的に変化させて表示させたい。

マニュアルに「GETやPOSTなどのHTTPパラメータを使用して、引数を画像スクリプトに手渡すことも
可能です。」
ってなってるけど、<img src="showgraph.php?a=1&b=2">
で「?a=1&B=2」のデータの受け取りかたが分からない。
■ このスレッドは過去ログ倉庫に格納されています