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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2005/11/25(金) 21:16:56ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
0877nobodyさん2005/12/15(木) 21:10:22ID:???
MIDIってFlashのことなのか?????
0878nobodyさん2005/12/15(木) 21:19:41ID:???
>>875
さすがエスパー伊達じゃないぜ
0879nobodyさん2005/12/15(木) 21:21:06ID:???
エスパー伊東に見えた
0880nobodyさん2005/12/16(金) 00:44:30ID:???
$dateが23か0じゃなかった場合にaaaを出力して、それ以外の場合はbbbを出力します。

if (($date !== 23)or($date !== 0)){
echo "aaa";
}else{
echo "bbb";
}

これだと$dateが23の場合でもaaaが出力されてしまうのですが、どこが間違っているのでしょうか。
0881nobodyさん2005/12/16(金) 00:56:20ID:???
ANDじゃろ
0882nobodyさん2005/12/16(金) 01:01:37ID:???
>>880
$date が 23 の時

$date !== 23 は false
$date !== 0 は true

false or true = true

∴どんな数字を入れても成り立つ。

基本中の基本、というかこんな事で悩むなら作るの向いてないんじゃないか・・?
0883nobodyさん2005/12/16(金) 01:07:43ID:???
>>881-882
ありがとうございました解決しました。
前にも向いてないって言われました…。でも好きなんです。
0884nobodyさん2005/12/16(金) 01:10:23ID:???
>>883
わからないことを他人に頼るってのを直さないと何時までたっても上達しないよ
0885nobodyさん2005/12/16(金) 01:19:40ID:???
まぁ、生暖かく見守ってやるからガンガレ

煮詰まった時は、コーヒーでも飲んで小休止すると、悩んでたのが馬鹿みたいにあっさり解けたりするぞ
0886nobodyさん2005/12/16(金) 01:27:10ID:???
>>882
どーでもいいことだがPHPでは普通の論理は通用しないぞ

反例:

null == 0 は true
null == array() は true
しかし
0 == array() は false
0887nobodyさん2005/12/16(金) 02:00:39ID:???
!== だからいいんちゃう?
0888nobodyさん2005/12/16(金) 02:17:13ID:???
型チェックとかじゃなくて論理的な推移性の話だお
0889nobodyさん2005/12/16(金) 02:49:47ID:???
マニュアル読めよ
0890nobodyさん2005/12/16(金) 03:08:29ID:???
>>888
だから?
0891nobodyさん2005/12/16(金) 03:20:18ID:???
まったくしょうがねえなこいつらw
0892nobodyさん2005/12/16(金) 05:29:21ID:Tb6x4DJs
>>876
ああそれは正常な動作ですな
0893nobodyさん2005/12/16(金) 06:26:17ID:???
$dateが23または0 -> $date == 23 or $date ==0
!($dateが23または0) -> !($date == 23 or $date == 0)
                ↓ ド・モルガ〜ンッ!!
               $date !== 23 and $date !==0
0894nobodyさん2005/12/16(金) 09:17:47ID:???
>>876
デリミタを <{ , }> とかに変えればいいんじゃないかな?
ってか、なんのエラー出るのか確かめてないが。
0895nobodyさん2005/12/16(金) 11:20:26ID:FlVjXK6k
<input type='file' name='hoge'>でファイルをアップすることまではできたのですが、
ファイルが指定されてなかった場合という分岐を作りたいのですが、
そのやり方が分かりません。

if(empty($_FILES['hoge']['name'])){
  print("エラー")
}
とやってみましたが、どうもファイルが指定してない場合は
$_FILES['hoge']['name']は1を返してしまうようです・・・涙

よろしくお願いします。
0896nobodyさん2005/12/16(金) 11:31:15ID:S7k/7Vdp
move_uploaded_file()かis_uploaded_file()を使え
0897nobodyさん2005/12/16(金) 11:32:08ID:???
>>895
switch ($_FILES['hoge']['error']) {
case UPLOAD_ERR_OK: echo "うp成功"; break;
case UPLOAD_ERR_INI_SIZE: echo "over upload_max_filesize"; break;
case UPLOAD_ERR_FORM_SIZE: echo "over MAX_FILE_SIZE "; break;
case UPLOAD_ERR_PARTIAL: echo "うp失敗"; break;
case UPLOAD_ERR_NO_FILE: echo "ファイルがありません"; break;
case UPLOAD_ERR_NO_TMP_DIR: echo "テンポラリフォルダがないよ"; break;
case UPLOAD_ERR_CANT_WRITE: echo "ディスクにかけない"; break;
default: echo "未定義エラー";
}
0898nobodyさん2005/12/16(金) 13:56:04ID:QT9mtH4K
htaccessになにか簡単に文字を追加すると任意のイメージファイル名
例:sample.jpg
を読み込んだときに任意のイメージ群
例:sample1.jpg , sample2.jpg , sample3.jpg
からランダムに生成してくれるようのがあったの思うのですが
思い出せません。誘導お願いします。

たしかなんかphpかなんかで記述したファイルの拡張子を.jpgに
サーバー上で変えたような記憶があります。よろしくおねがいします。
0899nobodyさん2005/12/16(金) 14:05:58ID:???
なんか分からない。
記憶を辿ってググるかなんか、エスパー降臨なんかを待つしかないな。
09008982005/12/16(金) 14:10:14ID:???
すいません。sample.***をphpかなんかで書いて、サーバー上で拡張子を
jpgに戻したってわけです。そいでもって、読み込むときsample.jpgと呼び出すと
>例:sample1.jpg , sample2.jpg , sample3.jpg
から適当に読み込んでくれるって感じです。
0901nobodyさん2005/12/16(金) 14:10:48ID:???
ランダムな画像を返すコードをhoge.jpgとかに書いて
スクリプトとして実行させたいってことでしょ。
09028982005/12/16(金) 14:14:33ID:???
記憶が不確かですが、.htaccessにはsample.jpgをsample.phpと認識するように
指示する記述をしたようなしなかったような気がします。
0903nobodyさん2005/12/16(金) 14:17:16ID:???
pathinfoで拡張子消すときによくやるやつね
0904nobodyさん2005/12/16(金) 14:21:45ID:???
>>902
mod_rewrite
で
RewriteEngine On
RewriteRule sample\.jpg sample.php
0905nobodyさん2005/12/16(金) 14:35:00ID:???
ついでにsample.phpだ
<?php
$files = array("sample1.jpg", "sample2.jpg", "sample3.jpg");
$file = $files[array_rand($files)];
header("Content-Type: image/jpeg");
header("Content-Length: ".filesize($file));
readfile($file);
exit;
?>
09068982005/12/16(金) 14:53:33ID:???
無事できました!ありがとうございます。
すばやいレス助かりました。(n‘∀‘)η
0907nobodyさん2005/12/16(金) 15:52:47ID:IKuokGUw
URLを取得するときにgetの内容も一緒に取得する方法ってありますか?

たとえば、
「http://map.yahoo.co.jp/pl?nl=35.39.52.635&el=139.42.44.010&la=1&sc=3&CE.x=466&CE.y=278」
のように"?"以降の文字列も取得したいのですが。
0908nobodyさん2005/12/16(金) 16:12:17ID:???
>>907
つ$_SERVER["REQUEST_URI"]
0909nobodyさん2005/12/16(金) 16:15:26ID:IKuokGUw
>>970
�dクス
助かりました。
0910nobodyさん2005/12/16(金) 16:38:43ID:???
>>909
?以降のみがほしければ
$_SERVER['QUERY_STRING']
0911nobodyさん2005/12/16(金) 18:06:13ID:???
一言掲示板を作ったのですが
ブラウザの更新をすると直前に書いた内容がそのまま渡されてるっぽくて
二重登録になってしまいます。
これって、ボタンを押されたか更新されたかを区別する方法を教えてください
0912nobodyさん2005/12/16(金) 18:06:43ID:???
>>911
つセッション
0913nobodyさん2005/12/16(金) 18:30:44ID:???
>>911
ここみたいに書き込み後にRefreshやLocationで表示しなおす
0914nobodyさん2005/12/16(金) 18:50:54ID:???
>>912-913
詳しく
0915軟式PHP2005/12/16(金) 18:58:04ID:???
>>914
頭悪いやつはこれだから。他の板と同じノリでレスすんな。
913なんか十分に詳しいじゃないかwww
0916nobodyさん2005/12/16(金) 19:00:02ID:???
>>915
禿同
これでダメなら、丸投げスレいけ
0917nobodyさん2005/12/16(金) 19:17:56ID:???
>>915-916
その程度のレスなら俺にもできるんだって馬鹿。
知らないならレスしないで荒れるから
0918nobodyさん2005/12/16(金) 19:26:36ID:???
二重投稿防止のためだけにセッション使うのは大げさじゃね
0919nobodyさん2005/12/16(金) 19:36:17ID:???
携帯の1568万色表示って、正確には何色でしょうか?
16777216ではないですよね?
0920nobodyさん2005/12/16(金) 19:41:24ID:???
hogemoehage
という文字列中のmoeを取得したいのですが(moeは文字数不特定、hogeとhageは固定)
どうやって取得するのか教えて下さい。
09219192005/12/16(金) 19:44:55ID:???
$str = "hogemoehage";
$hoge = explode("hoge", $str);
$hage = explode("hage", $hoge[1]);
$result = $hage[0];
echo $result;
0922nobodyさん2005/12/16(金) 19:45:57ID:???
hogeとhageを削除すればmoeが残るべ。

str_replace( )
09239192005/12/16(金) 19:47:46ID:???
>>922
…かしこいっすね。
0924nobodyさん2005/12/16(金) 19:55:13ID:VdLHldFd
array_mapは二次元配列には使えないの?
09259192005/12/16(金) 19:55:43ID:???
>>919は完全にスレ違いなので放置でお願いしますorz

>>920
>>921より↓の方が速そうですorz
moeの部分にhogeやhageが入る可能性があるなら正規表現使った方がいいんだろうけどわかりません。

$str = "hogemoehage";
$str = str_replace("hoge", "", $str);
$str = str_replace("hage", "", $str);
echo $str;
0926nobodyさん2005/12/16(金) 20:40:58ID:???
>>925
$str = "hogemoehage";
$str = preg_replace("/~hoge/", "", $str);
$str = preg_replace("/hage$/", "", $str);
0927nobodyさん2005/12/16(金) 20:41:55ID:???
>>925
926はちょっとタイポ。

$str = "hogemoehage";
$str = preg_replace("/^hoge/", "", $str);
$str = preg_replace("/hage$/", "", $str);
0928nobodyさん2005/12/16(金) 21:26:16ID:???
$str = "hogemoehage";
$str = preg_replace("/^hoge(.*)hage$/", "$1", $str);
09299202005/12/16(金) 22:03:48ID:???
大変申し訳御座いません。
後付け氏ねと言われそうですがhogeとhageの前後には文字があります。

このような文字列です。値が固定なのはhogeとhageのみです。
hdfjhhogemoehagejkfkj
上記についてご回答宜しくお願いします。
09309192005/12/16(金) 22:14:28ID:???
>>929
じゃあ>>919でどうぞ。
0931nobodyさん2005/12/16(金) 22:15:15ID:???
違った、>>921ですorz
0932nobodyさん2005/12/16(金) 23:11:41ID:???
>>929
hogeとhageはその場所以外にでてこないの?
それでいいなら、

$str = "hogemoehage";
$str = preg_replace("/.+hoge(.*)hage.+/", "$1", $str);
0933nobodyさん2005/12/17(土) 01:04:26ID:???
preg_match('/hoge(.*)hage/', $str, $pattern);
$result = $pattern[1];
0934nobodyさん2005/12/17(土) 02:19:09ID:???
>>933
…match?
0935nobodyさん2005/12/17(土) 02:30:36ID:???
>>934
なんか変か?
0936nobodyさん2005/12/17(土) 02:31:56ID:???
>>934
?
0937nobodyさん2005/12/17(土) 02:34:34ID:???
>>935
934じゃないけど、変じゃない。

ってか、なんでみんな replace 系にこだわってんの?
元の質問から考えると、preg_match または preg_match_all のほうが良いのでは?
09389352005/12/17(土) 02:37:19ID:???
>>937
俺もそう思う。
0939nobodyさん2005/12/17(土) 08:39:30ID:???
変数への代入が=じゃないから、個人的にはあまり好きじゃないなぁ
0940nobodyさん2005/12/17(土) 09:48:42ID:???
>>929
丸投げ死ねよ
0941nobodyさん2005/12/17(土) 09:51:00ID:???
くだ質だからいんじゃね?
0942nobodyさん2005/12/17(土) 09:52:08ID:???
そんな論理は通用しない
0943nobodyさん2005/12/17(土) 10:07:30ID:???
まぁしたりしなかったり、だな
0944nobodyさん2005/12/17(土) 10:30:39ID:???
>>939
意味がわからん?
PHPは=で代入だよ
0945nobodyさん2005/12/17(土) 10:32:35ID:???
釣りだろ。スルーを覚えよう。
0946nobodyさん2005/12/17(土) 10:56:39ID:???
>>944
preg_matchの話だしょ
第三引数はoutパラメータ
0947nobodyさん2005/12/17(土) 11:15:30ID:???
preg_matchの返り値が検索結果ではない(返るのは合致件数)から、って事だろ
09489392005/12/17(土) 12:36:24ID:???
フォローサンクス
この変数はどこから来たんだ?と思った時、replaceの方が直感で分かるんじゃね?といいたかった
0949nobodyさん2005/12/17(土) 13:25:55ID:???
replaceとmatchのそれぞれの目的の違いが返り値の違い
replaceは置き換えが目的なので、返り値は置き換えた文字列
matchは合致するかを調べるのが目的なので、返り値は合致数
>>932は「全体を一部の文字列で置換」したパターンだな

preg_match_allがあるので、preg_matchは合致した文字列を返してもいい気はするけど。
0950nobodyさん2005/12/17(土) 14:18:39ID:???
>>948
受け取りの変数名を引数で指定してるんだから迷うようなものでは無いと思う。
よっぽど$1とかの自動生成されるシステム変数の方が不気味。
その上、replaceは元の文字列の編集も行うので処理コストが無駄に高い。
0951nobodyさん2005/12/17(土) 15:03:43ID:???
セッションを使ったサイトを作ろうとしているのですが、
ページをxhtmlで書き出すと、セッションに入れた値が表示されたりされなかったり不安定で、
htmlのhead内のtitle以外(meta等)を削除すると、なぜか正常に表示されます。
これって、どんな原因が考えられますか?
バージョンは4.3.11です。4.3.10では、正常に動作しました。
0952nobodyさん2005/12/17(土) 17:48:46ID:???
同じく、セッションの質問になりますが、
新規セッションでのページアクセスは、
値が代入されていない場合、

if($_SESSION['name'] == ""){
〜
}

で防げるのですが、うちの借りているレンタルサーバーのセッション保持時間が24分でして、この時間が切れた後の確認が
上記の記述では出来ていないようなのです。

「一度ログインして、24分経過→$_SESSIOIN['name']が空になる」

この空の状態でもアクセスする事が出来、$_SESSION['name'] は、Arrayとなっています。
セッション切れあとにアクセスすると、ログイン画面に飛ばしたいのですが、どのようにすればいいでしょうか。
宜しければ、アドバイスお願い致します。
0953nobodyさん2005/12/17(土) 18:12:46ID:???
empty()かisset()、好みの関数を使って条件式を書き直すと良いと思う。
0954nobodyさん2005/12/17(土) 18:14:33ID:???
駄目だと思う。
09557252005/12/17(土) 18:16:17ID:???
>>952
$_SESSION['name'] がArrayになってる時点で何かゴミが入ってるですよ。
だから当然アクセスできるでしょうね。
0956nobodyさん2005/12/17(土) 18:21:33ID:???
レスありがとうございます。

>>954さん
953さんのやり方だと出来ないのでしょうかね・・・。

>>955さん
ゴミですか・・・。Arrayと表示されるって事は空では無いんですね。
少し記述を見直してみます。
0957nobodyさん2005/12/17(土) 18:42:14ID:???
Arrayの中身はvar_dump()かprint_r()すれば確認できるかと
0958nobodyさん2005/12/17(土) 18:45:31ID:???
一応、名簿のtxtがあるので、
名前一覧を配列 $meibo に入れて、

if(in_array(!$_SESSION['name'],$meibo){
ログイン画面にheaderで飛ばす
}

で緊急対処してみました。
これから957さんのおっしゃっているprint_r()辺りで探りたいと思います。
ありがとうございます。
0959nobodyさん2005/12/17(土) 19:33:27ID:???
sleepで寝かせて醗酵させたい。
0960nobodyさん2005/12/17(土) 20:23:17ID:???
$a->b;ではなくa::$bみたいにclass aの変数bを直接?参照する方法はないでしょうか?。

class a{
var $b;
}

$a = new a();
echo $a->b;
0961nobodyさん2005/12/17(土) 20:32:34ID:???
>>960
あるよ。
0962nobodyさん2005/12/17(土) 23:31:38ID:???
メソッドならともかく、メンバ変数の直接呼び出しなんてできたっけ??
0963nobodyさん2005/12/17(土) 23:31:43ID:???
フレームを使ったサイトのアクセス解析をしたい。
PHPでプログラムされたアクセス解析を埋め込むとき、PHPのコードをそのまま埋め込む方法と、
JavaScriptでコードを埋め込む2つの方法があると思う。

後者のJavaScriptの場合
document.referrer
というところを
parent.document.referrer
に変更すればフレームのサイトでも正常にreferを取ることが出来るけど、
前者のphpのコードをそのまま埋める方法でreferを正常にとるにはどうしたらいい?
0964nobodyさん2005/12/17(土) 23:36:08ID:???
>>962
寝ぼけてた。

でも直接呼び出すということは、値が固定なんでしょ?
定数で良いんじゃね?
0965nobodyさん2005/12/17(土) 23:38:55ID:???
>>963
ヒント
print_r($_SERVER);

0966nobodyさん2005/12/17(土) 23:44:04ID:???
>>963
フレーム部分のHTMLをPHPにして、そこでアクセス解析する。
0967nobodyさん2005/12/17(土) 23:45:39ID:???
>>964
まー、クラス内での定義内容を知りたいんだろうけどね。
09689632005/12/17(土) 23:47:44ID:???
>>965
それだとrefer取っても自サイトのフレームが検出されちゃって意味無くない?

>>966
フレームだとどのページを読んだのか判別がつかなくなるような・・・
自分のサイトの中の複数のページを解析しているんだけどそれぞれ独立して
解析したもので・・・
0969nobodyさん2005/12/17(土) 23:55:54ID:???
>>968
どこのサイトから飛んできたのかを知りたいのなら
referer取るのはフレーム部分だけでいいんじゃないの?
「複数のページを解析」の中の1つとしてフレームも含めればいいだけのような。
各ページでまでいちいちreferer取る必要ないじゃない。

そこをあえて各ページでもフレームのrefererを取得したいと思うなら、
セッション、クッキー、各ページへの引数、などでデータをたらい回せば?
セッションやクッキーの方式ならリンク元が一緒でも別々のユーザとして特定できるから
ユーザ別の完全な行動履歴が記録できるかもね。
0970nobodyさん2005/12/18(日) 00:12:21ID:???
最近phpを勉強し始めたものですが
ereg_replaceと正規表現が良くわかりません・・・

DBに電話番号を登録させていて
取得した電話番号が9999999999(10桁)として
それを999-999-9999という風にハイフンを付加して表示させたいのですが
ereg_replace("([0-9]{3})\([0-9]{3})\([0-9]{4})","\\1-\\2-\\3",$DB[tel])
とコーディングしましたところ無変換になって困っています…
よろしければご教授ください
0971nobodyさん2005/12/18(日) 00:15:08ID:???
>>970
> ereg_replace("([0-9]{3})\([0-9]{3})\([0-9]{4})","\\1-\\2-\\3",$DB[tel])
途中の「\」が余分なだけかと。
09729702005/12/18(日) 00:23:21ID:???
>>971
おかげで解決しました
ありがとうございました 精進します
0973nobodyさん2005/12/18(日) 05:48:58ID:???
チェックボックスに入れたデータは、どのように保持すればいいですか?
0974nobodyさん2005/12/18(日) 05:54:07ID:???
<input name="変数名">で指定した名前でPHPでは
$_REQUEST["変数名"]で受け取れるから
それを使って好きなように処理すればいい
0975nobodyさん2005/12/18(日) 08:09:35ID:???
携帯ってセッション使えるの?
0976nobodyさん2005/12/18(日) 08:19:24ID:???
セッションの実装にはcookieとURL書き換えがあって、
URL書き換えの方なら携帯でも使えるべ
レス数が950を超えています。1000を超えると書き込みができなくなります。