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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/04/09(日) 01:31:18ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/

【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/

過去スレは>>2-3あたり
0756nobodyさん2006/04/22(土) 20:43:17ID:???
>>753
@より前も含んでるんでしょ?
07577532006/04/22(土) 20:55:44ID:???
画面が真っ白になっちゃうんです。
記載ミスによるものかと何度も見ましたが違うようです。

あきらめて寝ます。おやすみなさい。
07587532006/04/22(土) 21:37:57ID:???
やっぱり思いっきり記載ミスでした。
一人でバカ騒ぎしてもうしわけないです。
07597522006/04/22(土) 22:02:27ID:1mp5s2wD
>>755
じゃあ例えば、変数$strに $_POST["data"]の値を代入。
エンドユーザはそれぞれ「Shift_JIS」、「EUC-JP」、「UTF-8」といった文字コードを選択し、エンコードすることが出来ます。

出力結果はこれらの文字コードによって違います↓
Shift_JIS → %82%a0%82%a2%82%a4%82%a6%82%a8
EUC-JP → %a4%a2%a4%a4%a4%a6%a4%a8%a4%aa
UTF-8 → %e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a

mb_convert_encoding()で$_POST["data"]をエンコードするのかなー…?orz
何か良い方法を知っていたら教えてください。
07607522006/04/22(土) 22:08:05ID:1mp5s2wD
良い例が見つかりました。

これです http://www.tagindex.com/tool/url.html
このように文字コードを選択リストから選択できるようになっているのですが、一体どのような仕組みなんでしょうか?
0761nobodyさん2006/04/22(土) 23:16:50ID:???
>>760

1.ます普通にPOSTやらなんやらで入力されてデータを受け取る(このときに文字コードは何でエンコードするかも!)
2.で受け取った値をエンコードする
3.エンコードしたデータを表示する

こうじゃない?
07627522006/04/22(土) 23:40:44ID:1mp5s2wD
>>761
…うーん、(1)で文字コードを変換するための関数は一応調べはみたんだけど
mb_convert_encoding()でいいのかなぁ?
でもなんかちょっと違う気ガス。
0763nobodyさん2006/04/23(日) 00:43:41ID:???
>>762
死ね
07647612006/04/23(日) 02:17:22ID:???
>>762
何で違うと思ったんだ?理由があるのか?
そもそもお前自分で俺の出した提案でコーディングしてみたのか?
答えだけ教えてもらおうと思うな馬鹿

ちなみにmb_convert_encoding()でOKだクソ野郎
デフォルトでは使えないようになってるけどな
そこまで教えられんよググレカレー
07657522006/04/23(日) 07:13:43ID:B54Vaitl
すみません、実はこの質問をする前にmb_convert_encoding()でコーディングしてみたのですが、

(rawurlencode(mb_convert_encoding($_POST["data"], "Shift_JIS"))
とやっても「あいうえお」が「%3F%3F%3F%81%91%3F%3F%3F%3F%3F%81N」のようになってしまいます(「???¢?????¨」に文字化けする)

mb_convert_encoding()の使い方が間違ってるんだろうか
0766nobodyさん2006/04/23(日) 07:35:05ID:???
>>765
>「あいうえお」が「%3F%3F%3F%81%91%3F%3F%3F%3F%3F%81N」のようになってしまいます(「???¢?????¨」に文字化けする)

よく分からん。どっちになってるんだ?
0767nobodyさん2006/04/23(日) 07:44:52ID:???
>>765
まるごと書いてやるから、よく読めよ。
(サンプルなのでセキュリティは全く意識していないので注意)
<?php
header('Content-type: text/html; charset=Shift_JIS');
$encList = array('sjis', 'euc-jp', 'utf-8');
if ($_POST) {
 $data = @$_POST['data']; // sjisで書いてあると想定
 $enc = (int) @$_POST['enc'];
 if (!isset($encList[$enc])) throw "(・∀・)";
 echo rawurlencode(mb_convert_encoding($data, $encList[$enc], 'sjis'));
 die();
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<textarea name="data"></textarea>
<select name="enc">
<?php foreach ($encList as $enc => $encName) { ?>
<option value="<?php echo $enc ?>"><?php echo $encName ?>
<?php } ?>
</select>
</form>
07687672006/04/23(日) 07:50:14ID:???
submitわすれてた
<input type="submit" />
0769nobodyさん2006/04/23(日) 07:51:00ID:???
お前の優しさに乾杯
0770nobodyさん2006/04/23(日) 07:51:46ID:???
ただ・・・ただ俺なら変数名には大文字は使わないぜ(・∀・)
07717672006/04/23(日) 07:54:35ID:???
>>770
スマソ。不慣れだったので間違えた。
$enc_listとか$enc_nameって名前にするほうがpear標準だったっけ
0772nobodyさん2006/04/23(日) 07:58:24ID:???
いや、変数名には基本的に大文字は使わないものじゃないか?
知らない奴も居るだろうからまとめてみよう。勘違いがあったら教えてちょうだい

変数名:全て小文字。単語の区切りは「_」 例[ hoge_hoge ]
定数名:全て大文字 例[ HOGE ]
関数名:基本的に小文字だが、単語の区切りは大文字 例[ hogeHoge ]
0773nobodyさん2006/04/23(日) 08:21:12ID:???
Javaのコーディング規約では変数名も関数名(というかメソッド名)と同じで単語の区切りは大文字だから、その癖でそのままやってしまった。
pearのコーディング標準では変数名の単語の区切り方に関しては触れてないっぽいね。それ以外は>>772の通りだけど。
pearの他にもphpのコーディング規約みたいなのあったっけ?
0774nobodyさん2006/04/23(日) 08:38:39ID:???
932:仕様書無しさん :2006/04/22(土) 23:07:48 [sage]
クライスラージャパン中古車検索結果
http://www.chrysler.co.jp/servlet/chrysler.UCarSearchServlet?SV_ACTION=PAGE_CHANGE&PAGENO=1&SQL=WHERE@CLASSID@in@(@'PT'@)@AND@DELFLAG@=@'0'@&ORDER=3


WHERE CLASSID in ('PT') AND DELFLAG = '0'& ORDER = 3
(^ω^;)・・・
0775nobodyさん2006/04/23(日) 08:55:52ID:???
コーディング規約って言うか、プログラマとしてのデファクトスタンダードじゃね?>>772が
0776nobodyさん2006/04/23(日) 09:25:42ID:???
>>775
そうなの?ソースキボンヌ。
ちなみに「プログラマとしての」と名打つならJavaの反例出すけど、この変数名の規約はどうとらえられてるの?デファクトスタンダード的には。
http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html#367

CとかRubyとか関数名/メソッド名はアンダースコアで区切ることのほうが多いようだけど。
C++みたいにSTLの命名に従うかJava風にするかどっちつかずなのもあるし。
PHPの場合は標準関数の命名が割と無茶苦茶な前提の上だからどうしても規約みたいなのは必要でしょ。
一応公式に公開されてるのがpear標準くらいしかないから、それに従っておくのが妥当ってのはよく聞くけど。
0777nobodyさん2006/04/23(日) 10:14:08ID:???
>>774
ヤバいって それ…
0778nobodyさん2006/04/23(日) 12:10:28ID:???
>>774
ちゃんとSELECTしかできない権限とかにしてあるのかなぁ
これかなりヤバイ香りが漂ってるが。

おい>>774、七氏だろ お前SQLインジェクションやってみて報告しる!
0779nobodyさん2006/04/23(日) 14:06:26ID:???
隠しテーブルとか出てきそうw
07807522006/04/23(日) 14:56:53ID:B54Vaitl
>>767
とってもありがとう。
書き方とか参考にします。
0781nobodyさん2006/04/23(日) 15:05:20ID:???
最近PHPに取り組み始めた超初心者です。理解できない演算子があるので教えてください
“->”なんですけど
これって
$A=1+2
$B=$A
この場合
$B=$A->1+2
こんな感じ?
0782nobodyさん2006/04/23(日) 15:10:14ID:???
>>781
-> はクラスを使った時に、クラスの変数や関数を使うためのもの。
クラスって何?って場合は、マニュアルを参照のこと。
0783nobodyさん2006/04/23(日) 15:39:22ID:???
>>782
ありがとうございます。
->なんですけど、これはPHP5〜から使えるのでしょうか?
それともPHP4の最新バージョンでも標準で使えるのでしょうか?
0784nobodyさん2006/04/23(日) 16:22:55ID:???
4でも使える
$this->testとかね
0785nobodyさん2006/04/23(日) 16:36:04ID:???
>>784
ありがとうございました。

精進します。
0786nobodyさん2006/04/23(日) 17:30:05ID:???
赤マンモスで勉強してんだけど、宴会サーバーの所が読みにくいので、
さっさと読むだけにして、青マンモスに進んでも良いでしょうか?
0787nobodyさん2006/04/23(日) 17:44:42ID:???
こういうのって出来るのでしょうか?
特定のディレクトリ/hogeから画像(.jpg)の名称を取得して、指定サイズで
一覧表示するという。

登録しているファイル名を出力するのはわかるのですが、画像のファイル名自体を
取得して〜というのは可能なのか?っと疑問に思いまして。(単に出来ないのですが・・・
0788nobodyさん2006/04/23(日) 17:46:37ID:???
glob('*.jpg')
0789nobodyさん2006/04/23(日) 18:12:30ID:???
文字コード、日本に限っていえば
Shift_JIS(sjis-win)
EUC-JP(eucjp-win)
iso-2022-jp(jis…だけど厳格にはすこしちがう)
utf-8
について、徹底的に学びましょう
07907872006/04/23(日) 18:18:13ID:???
>>788
凄い!!出来ました!!所持リファレンスにも載っていない関数でしたが、
以下のようなソースで思い通りに出来ました。

<?php
$img_list=glob('./photo/*.jpg');
$count=count($img_list);
for($i=0;$i<$count;$i++){
print"<img src=\"$img_list[$i]\" width=100 height=80>";
}
?>

ありがとうございました。
0791nobodyさん2006/04/23(日) 18:29:39ID:???
>>790
その場合ならforeach使っとけ
0792nobodyさん2006/04/23(日) 18:36:08ID:???
foreach最強
0793nobodyさん2006/04/23(日) 18:37:13ID:T/zlG2dE
http://から始まる画像ファイルのサイズを取得したいのですがどうやったらいいですか?
0794nobodyさん2006/04/23(日) 18:46:06ID:m0Rs4MP5
strlen(file_get_contents('URI'));
0795nobodyさん2006/04/23(日) 18:50:57ID:???
ありがとうございますできました
0796nobodyさん2006/04/23(日) 19:30:53ID:???
phpでお金持ちになりたいんですけどどうすればいいですか
0797nobodyさん2006/04/23(日) 19:33:58ID:???
>>794
URIって何の略??
0798nobodyさん2006/04/23(日) 19:35:00ID:???
>>796
ヒント:for
0799nobodyさん2006/04/23(日) 19:45:34ID:???
>>797
http://www.kanzaki.com/docs/html/htminfo-uri.html#uri
0800nobodyさん2006/04/23(日) 20:01:24ID:???
レッツPHPにあったあぷろだを
以下のアドレスに示した自鯖においたのですが
http://no2.no-ip.info/up/upload.php
Undefined variable: 変数名
などがでまくってしまいます
http://no2.no-ip.info/up/1.txt
設置したあぷろだのソース
http://no2.no-ip.info/phpinfo.php
鯖のPHPの情報

エラーで検索したら
http://wonder.bms.ms/tower/bin/sugoiuploader/upload.php
気にせず使っている方もいるようです
翻訳したら未定義の変数だそうですが
$act=="envset"これはダメってことですか?
どうすれば動くようになるでしょうか
0801nobodyさん2006/04/23(日) 20:06:08ID:???
$actって変数がどこにも定義されてもないし、スーパグローバル変数でもないから
そんな変数ありませんよって言われてるだけじゃないの?
ってか、値が無いのに何で比較してるんだろ?
0802nobodyさん2006/04/23(日) 20:14:46ID:???
$act = "envset";
0803nobodyさん2006/04/23(日) 20:25:14ID:???
>>800
レッツPHPは過去の遺物だ。
今は参考にするべきではない
0804nobodyさん2006/04/23(日) 20:25:22ID:???
レッツのスクリプトは$_GET['hoge']を使わずにextract($_GET)して$hogeとして使う方向だから
該当個所は多そう。
0805nobodyさん2006/04/23(日) 20:38:32ID:???
perlのガン細胞 KENT
PHPのガン細胞 レッツ
0806nobodyさん2006/04/23(日) 20:55:44ID:???
extractの使い方がいまいち分からない俺は負け組み
0807nobodyさん2006/04/23(日) 21:48:10ID:???
>>772
変数名は間違い。
区切りに_は使わない。

例: anApple

定数名の区切りは「_」

詳しくはPearコーディングルール見ろ

あと関数名の最初は大文字
08088072006/04/23(日) 21:50:22ID:???
http://peardoc.xole.net/standards.naming.html
変数名はコーディングルールになかったみたいだ
すまそ
0809nobodyさん2006/04/23(日) 22:43:05ID:WZpCLvOA
new DOMDocument("1.0","EUC_JP");
したオブジェクトに要素をappendし、
saveXML
しても、何も取得できません。
DOMDocumentでは
euc-jpを使えないのでしょうか?
0810nobodyさん2006/04/23(日) 23:54:16ID:???
メールを受信したら、
受信メールの取得と、こちらで用意したメッセージをそのアドレス宛に送信
これを自動化するのを実現したいのですが
ROMっていたら、同じような例が載っていたので読んでいましたが
その際にサーバの負荷は高くなってしまうのでしょうか?
CRONで一定時間で起動させる方法も良いかとは思いますが
スクリプトだけで実行するのは出来ないものでしょうか?

また、受信したメールアドレスをエンコードして
送信メールの本文にURLとして、hoge.com/test%40fuga.jpのように載せてみたいのですが
mb_encode_mimeheader()を使って良いしょうか。
良い方法をご存知の方、ご教授お願いします
0811nobodyさん2006/04/24(月) 00:10:51ID:???
>>810
環境によって方法はさまざまなわけで、
自分の環境さらさなきゃ明快な回答は得られまい。

mb_encode_mimeheader()はmimeheaderをencodeするのだ。判るかな?
08128102006/04/24(月) 00:12:18ID:???
>>811
もうちょっとわかりやすく説明してください。
0813nobodyさん2006/04/24(月) 00:15:40ID:???
>812
勝手に人を名乗って書き込みするな
0814nobodyさん2006/04/24(月) 00:18:23ID:MxIb/Ds6
使い始めて二日目厨です(;´д`)
MySQL + PHP つかってます。
商品マスタと商品データの2つのテーブルがあって、双方にレコードを追加します。
$sql1='insert into 商品マスタ......';
mysql_query($sql1);
$sql2='insert into 商品データ....';
mysql_query($sql1);
としたいのですが、商品データに、追加したばかりの商品マスタのpkyをセットしたいのですが、
どうすればいいでしょう??双方のテーブルのpkyはauto increment です。
追加したばかりのレコードを取得して変数に入れるようなものや、
pkyだけ先に知るとか…そんなんあれば良いんですが
アドバイスもらえるとありがたいです。

0815nobodyさん2006/04/24(月) 00:23:55ID:???
二日目でgoogleも使わずここか
0816nobodyさん2006/04/24(月) 00:26:02ID:???
>>813
煽られるのが嫌なら適当なトリップを付けるか、メール欄を空白にしてIDを表示して
書き込むようにしなさい。
0817nobodyさん2006/04/24(月) 00:27:48ID:???
>>814
mysql_insert_id
0818nobodyさん2006/04/24(月) 00:33:46ID:MxIb/Ds6
>>817
助かったよ、ありがとう〜(;´д`)
0819nobodyさん2006/04/24(月) 00:41:53ID:???
>>814
お前は
http://pc8.2ch.net/test/read.cgi/db/1140154701/601
じゃ無いんだよな?無いんだよな?ん?無いよな?
0820nobodyさん2006/04/24(月) 00:46:40ID:MxIb/Ds6
ちがいますが…orz

とりあえずBカップです
0821nobodyさん2006/04/24(月) 01:03:19ID:???
Bカップ??
0822nobodyさん2006/04/24(月) 01:23:12ID:???
池沼だろ
0823nobodyさん2006/04/24(月) 02:14:46ID:???
すっげぇ下らない質問なんだけど

質問1.
Windows上(apache)でPHP動かしたい場合は
あるいはプロバイダの鯖上でPHPを埋め込みたい場合、
Windows Binariesってのをダウソすればいいんですかね?

質問2.
Perlのが優れてる点って何?
0824nobodyさん2006/04/24(月) 04:10:24ID:???
>>823
質問1
・Windows上(apache)でPHP動かしたい場合
・プロバイダの鯖上でPHPを埋め込みたい場合
この2つを並列にしている時点で意味が分からない。帰れ。

質問2
Perl VS PHP
http://pc8.2ch.net/test/read.cgi/php/982591467/
0825nobodyさん2006/04/24(月) 06:30:33ID:???
requireとincludeの違いって、何なのでしょうか。
マニュアルを読んだのですが何度読んでもよく理解できませんでした。
誰か分かりやすく解説してもらえませんか。
0826nobodyさん2006/04/24(月) 06:50:12ID:???
すみません、早朝から質問なのですが
AAA.php
BBB.php
というファイルがあって

AAA.phpの処理後にBBB.phpをそのまま起動させたいときは
どう命令したらいいですか?
0827nobodyさん2006/04/24(月) 07:47:25ID:???
>>825
読み込めなかったら中止にするか読み込めなくてもそのまま。
0828nobodyさん2006/04/24(月) 08:29:46ID:???
>>748
俺ならこうする
$birth = '2006年4月22日';
list($birth1,$birth2,$birth3) = sscanf($birth, "%d年%d月%d日");
0829nobodyさん2006/04/24(月) 08:39:10ID:???
>>826
include or Location
0830nobodyさん2006/04/24(月) 08:41:05ID:???
sscanf()なんてあったんだね
0831nobodyさん2006/04/24(月) 11:36:16ID:???
サーバーにPHPがインストールされているのか、
されていないのか、って
どうやって調べるんですか?
0832nobodyさん2006/04/24(月) 11:47:50ID:???
>>831
俺はコマンドラインでphp -vって叩いて確認してる。
0833nobodyさん2006/04/24(月) 11:55:33ID:???
>>831
管理者に聞く
0834nobodyさん2006/04/24(月) 14:59:43ID:???
会員式のログイン・ログアウトサイトを作っています。
SESSIONを使ってログインし、ログアウトする時はunset($_SESSION['name']);
などとしているのですが、たまにログアウトしきれない時があります。(ページが残る)

完全にセッションの内容を消去するには、どのように書けばいいのでしょうか?
0835nobodyさん2006/04/24(月) 15:02:44ID:???
>>834
ttp://jp.php.net/manual/ja/function.session-destroy.php
0836nobodyさん2006/04/24(月) 15:13:23ID:???
>>831
phpinfoを使うってのはアリじゃない?
0837nobodyさん2006/04/24(月) 15:17:53ID:???
Webページ丸ごと読込んでデータとして扱う方法ないですか?
0838nobodyさん2006/04/24(月) 16:08:50ID:???
>>837
方法あるよ
右クリック→ソースの表示→全て選択→コピー
をしてPHPの変数(引数)に代入してファイル保存してFTPアップロード。

リアルタイムにどこかのサイトを読み込み表示したいのなら
上記の作業を素早くやり続ければOK

コツとしては、全て選択は[Ctrl+A]、コピー[Ctrl+C]、貼り付け[Ctrl+V] を駆使する
0839nobodyさん2006/04/24(月) 16:50:25ID:???
バッククオートの中に変数を入れるためにはどう記述すればいいでしょうか?

例 $hoge = `ls -l $dir`;
0840nobodyさん2006/04/24(月) 17:08:20ID:???
>>839
バッククォートで括らない


ってか、何故バッククォート?
0841nobodyさん2006/04/24(月) 17:19:22ID:???
>>839
普通に出来たよー?
シェルの環境変数ってこと?

>>840
実行演算子
08428372006/04/24(月) 18:15:36ID:???
>>838
ありがとうございました!(,;:´゚;∀;゚, )
0843nobodyさん2006/04/24(月) 18:41:32ID:???
アクセスした日によって違うページに飛ばせたいと思っています。

2006/04/24にアクセスしたら
<a href="http://hogehoge.com/20060424">本日の予定</a>
2006/04/25にアクセスしたら
<a href="http://hogehoge.com/20060425">本日の予定</a>
となるようにしたいのです。

どのように記述すればいいですか?
ちなみに鯖のPHPは4.3.2で動いています。
0844nobodyさん2006/04/24(月) 18:53:53ID:???
>>843
俺だったら、date()の結果をif()で比較演算子を用いて比較し、header()でLocationを
生成して飛ばすかな。
0845nobodyさん2006/04/24(月) 18:56:52ID:???
>>843
<a href="http://example.com/<;?php echo date("Ymd") ?>">本日の予定</a>
0846nobodyさん2006/04/24(月) 18:57:45ID:???
ぬを
>>843
<a href="http://example.com/<?php echo date("Ymd") ?>">本日の予定</a>
08478442006/04/24(月) 18:58:33ID:???
飛ばすって…リンクは飛びませんけど?
それはユーザエージェントの動作を言ってるんじゃん…

それならdate()の結果をそのまま出力すればよかと。
0848nobodyさん2006/04/24(月) 19:25:42ID:???
いくつかパターンはあるものの
phpスクリプトの書き始めに<?phpで始まり?>で書き終わるものだと思っていましたが
最近見たスクリプトで、<?phpでの書き出しはあったのに
?>が無いものがありました。

私には理解ができなかったのですが、正常に動作していましたし、
以上も発見されませんでした。

これは、どういうことなのでしょうか?
必ずしも<?phpで始まったものが、?>で終わる必要はないということなのでしょうか?
0849nobodyさん2006/04/24(月) 19:26:35ID:???
いくつかパターンはあるものの
phpスクリプトの書き始めに<?phpで始まり?>で書き終わるものだと思っていましたが
最近見たスクリプトで、<?phpでの書き出しはあったのに
?>が無いものがありました。

私には理解ができなかったのですが、正常に動作していましたし、
以上も発見されませんでした。

これは、どういうことなのでしょうか?
必ずしも<?phpで始まったものが、?>で終わる必要はないということなのでしょうか?
0850nobodyさん2006/04/24(月) 19:34:21ID:???
>>849
マニュアルによると、
「ファイル終端におけるPHPブロックの終了タグはオプション(任意)です」ってことだ。
0851nobodyさん2006/04/24(月) 19:45:00ID:???
でも気持悪いな。
0852nobodyさん2006/04/24(月) 20:38:52ID:???
漏れは、

#!/usr/local/bin/php

header("Content-Type: text/html");

print <<<EOF
<!DOCTYPE 〜>
<html lang="ja">

EOF;

exit;

こう書くけどな。
0853nobodyさん2006/04/24(月) 20:45:24ID:???
>>852
それはそれでOKなんじゃないかなと思いますよ。
ただ、
<?php
〜

で終わっていて、何だかすっきりしないし
これでいいのか?!って思ったので聞いてみました。
0854nobodyさん2006/04/24(月) 20:46:55ID:???
>850
そうなんですね!
親切に調べてくれてありがとうございました。
0855nobodyさん2006/04/24(月) 23:38:00ID:UzNg/65t
ブログの静的ページを作ろうと思いPHPを勉強してるんですが、わからない事がでてきました。
PHPで出てきた結果をHTMLとして出力できないでしょうか?
例えば

<?PHP $x=100; ?>
静的ブログが<?PHP echo $x ?>回ぐらいつくりたいよ〜<br>

みたいなPHPがあって、それを実行したら
HTMLファイルにそのまま

静的ブログが100回ぐらいつくりたいよ〜<br>

と出力したいのですが、むりでしょうか?
■ このスレッドは過去ログ倉庫に格納されています