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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2009/02/18(水) 21:09:16ID:xNLzAD7T
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

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

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0897nobodyさん2009/03/05(木) 19:46:42ID:???
>>882
substr() は mbstring.func_overload に影響を受ける
http://www.php.net/manual/ja/mbstring.overload.php

オフセット参照は変数の型に影響を受ける
http://www.php.net/manual/ja/language.types.string.php#language.types.string.substr
08988822009/03/05(木) 19:55:19ID:???
>>883
ここでは$varは配列ではなく文字列です。
>>884
なるほど、$varが文字列以外の場合、substr() だと$varが自動的に文字列に変換されるわけですね。
参考になります。ありがとうございました。
>>885
おこるぐらいならもっとましなコード書いてください。
0899nobodyさん2009/03/05(木) 19:57:58ID:???
>>898
だったら、!is_string($var) ならexit()とか入れとけ。
ソースにないもんをエスパーできるかよw

にしたって、strposを使うケースだけどな。$var[0]とか狂ってる。
0900nobodyさん2009/03/05(木) 20:23:31ID:???
>>899
いや、そこはstrncmpだろ
0901nobodyさん2009/03/05(木) 20:29:27ID:???
いや、そこはstrpbrkだろ
0902nobodyさん2009/03/05(木) 20:33:26ID:???
>>899
>>897を理解してる上で使う分には間違っちゃいない
$a = array(); $a[] = 1; は許すのに $a = ''; $a[1] = 'a'; は許さないとか
シンタックスシュガーを利用するしないはコーディング規約で決めるものだ

それにstrpos()は最悪文字列全体を見るまで処理を打ち切らないし
882をバカにできる奴が選ぶ手段じゃない
0903nobodyさん2009/03/05(木) 20:41:00ID:???
>>901
strpbrkはないわw
0904nobodyさん2009/03/05(木) 20:41:26ID:???
substrは文字列にしか使えない。
$str[0]は配列にも使える。
従って文字列へのアクセスならば、substrのほうが分かりやすい。
スレが軽く荒れたところを見ても、角括弧が混乱を招きやすい表記だという事は分かるだろ。
ちょっとコードの見た目がスッキリするとか、何ナノ秒処理が早くなるだとか、そんなメリットと引き換えにしていいレベルじゃない。
0905nobodyさん2009/03/05(木) 21:11:52ID:???
マヌアルのどっかでstrposはメモリの使用量も小さくオヌヌメなんて書いてあったよな
んなもん、strposが最適解だと思うだろjk
オライリの詳説正規表現の効率云々みたいに解説本でも欲しいところだなw
0906nobodyさん2009/03/05(木) 21:20:58ID:???
>>905
何文字目とか分かってるなら、substrかstrncmpだろ
0907nobodyさん2009/03/05(木) 21:24:16ID:???
なんだかんだで、substrが正解ってことだよな。
先輩乙
0908nobodyさん2009/03/05(木) 21:27:44ID:Zs/6GWof
皆さんは運用環境にxdebug入れておきますか?
それともあくまでデバッグのみに使用しますか?
0909nobodyさん2009/03/05(木) 21:28:33ID:???
別に入れといたっていいだろ。設定でOFFにするだけなんだし
0910nobodyさん2009/03/05(木) 21:43:17ID:l6IOt6/c
非常に下らない質問かもしれませんが、ご存知の方がいらっしゃったらお教えください。

配列についてなんですが、
$arr = $this -> fncName($aa);
foreach($arr as $key => $val){
$appArr[$key] = $this -> fncName2($val);
}
return $appArr;
で値を返し、ajaxでページに表示させると、何も表示されないのに、
$arr = $this -> fncName($aa);
$appArr['配列名'] = '';
foreach($arr as $key => $val){
$appArr[$key] = $this -> fncName2($val);
}
return $appArr;
と、$arr['配列名'] = '';のように初期化した値だけページに反映されるって状況の場合、
一体何が問題なのでしょうか?
当方PHP5.2.9をapache2.2.11を使用しております。
よろしくお願いいたします。
0911nobodyさん2009/03/05(木) 21:44:03ID:???
>>908
maana
0912nobodyさん2009/03/05(木) 21:54:28ID:???
>>910
他人に非常に分かりにくい文章です
できればもう一度整理して質問し直して下さい
0913nobodyさん2009/03/05(木) 22:03:45ID:???
>>912
sine tinpo yarou
0914nobodyさん2009/03/05(木) 22:23:07ID:???
>>910
配列初期化してないってこと?
$appArr = array(); の方がいいとは思うけど。
0915nobodyさん2009/03/05(木) 22:42:02ID:l6IOt6/c
>>914
それしても、入力されません。
具体的に配列のkeyを直接入力しなければ入らないのです。
また、$arr['key']には、htmlの要素がいっぱい入っています
(<span>や<div><form>など)
それが入っていない場合は、普通に表示されます。
なぜなんでしょ?
0916nobodyさん2009/03/05(木) 22:54:40ID:???
$arr = $this -> fncName($aa);
$appArr = array();
foreach($arr as $key => $val){
$appArr[$key] = $this -> fncName2($val);
}
return $appArr;

↑でダメならvar_dumpかprint_rしながら
$appArrに求めてる値が入ってるか確認してみた方がいいかも。
0917nobodyさん2009/03/05(木) 22:57:16ID:???
>>910
$arrが空っぽ または $this->fncName2($val)が値を返さない

というか後者は $this->fncName2($key) じゃなくていいの?
0918nobodyさん2009/03/05(木) 23:26:53ID:???
おれさ、人と話してないんだよね
このスレだけが俺の生きがいだからかそらないでくれたまえ
0919nobodyさん2009/03/05(木) 23:28:36ID:???
じゃあかなりPHPの実力ついてるんじゃないか?
解説サイトとかつくって人呼べばいいじゃん^^
0920nobodyさん2009/03/05(木) 23:35:44ID:???
そういやぁ、俺も人と話してないやw
0921nobodyさん2009/03/06(金) 02:07:01ID:???
phpの欠点を挙げてるサイトで、「文字列操作系の関数で、似たようなことをするのに引数の順番がバラバラ」みたいなことを書いてるサイトを探してるのですが、知りませんか?
もしくは、どの関数のことを言ってるのか想像つきますか?
0922nobodyさん2009/03/06(金) 02:11:16ID:???
>>921
in_arrayとstrposとかかな
0923nobodyさん2009/03/06(金) 02:32:04ID:cF17z8wj
HTML側
<img src="img.php">

PHP側
header("Content-type: image/jpeg");

とだけしました。しかし、IE6で見ると×が表示されて
画像として読み込めていないようです。
これはどうしてでしょうか?
0924nobodyさん2009/03/06(金) 02:36:58ID:???
中身が何もないからでは?
0925nobodyさん2009/03/06(金) 02:42:04ID:cF17z8wj
中身は表示させたくなくて、PHPの処理がしたいので
>>923のようにしているのですが、
やはりimgタグの方にwidth="1" height="1"と指定するか、
readfileで透明な1ピクセルのファイルを読み込む方法しかないのでしょうか?
0926nobodyさん2009/03/06(金) 02:45:51ID:???
>>921
Ruby作者だろw
0927nobodyさん2009/03/06(金) 03:08:35ID:???
Rubyの良さはJavaとPHPの欠点を挙げないと見えてこないからなw
0928nobodyさん2009/03/06(金) 03:08:41ID:???
そんな細かいことをあげつらうんだよなぁPHPディス者ってのは
0929nobodyさん2009/03/06(金) 03:11:50ID:???
JavaからRubyへって本読んだけど精神的にマイナス思考に追い込んで
自分たちの領域に引き込む宗教本みたいだったぜ
どんだけJavaの生産性が低いかの説明ばっかり
0930nobodyさん2009/03/06(金) 03:45:28ID:???
>>922
ぐぐったらまさにそれっぽいんですが、関数の中身(文字列の結合、分解)とかにまで触れてた記事は無かったでしょうか?
0931nobodyさん2009/03/06(金) 04:01:35ID:???
>>929
宗教本っていうか、
rubyの作者自体がモルモン教徒だから。

(1)rubyをやらせる
     ↓
(2)モルモンに入信させる
     ↓
(3)ニュースキン、ニューウェイズをやらせる

こういうビジネスモデルだから。
0932nobodyさん2009/03/06(金) 05:36:30ID:???
豆知識

<?php
echo exec('notepad.exe');
?>

これを実行するとメモ帳が起動する。
0933nobodyさん2009/03/06(金) 05:40:42ID:6cUsAerc
and とかでいつも悩むんですが
2ch かつ php かどうかを比較するにはこのようにしていいのでしょうか?

if ( $a == '2ch' && $sub != ''php'){
  print "2chだけどphpスレではない";
}
0934nobodyさん2009/03/06(金) 05:56:30ID:???
>>933
うん
あと、それだったら === を使った方がいいよ
0935nobodyさん2009/03/06(金) 08:52:00ID:???
>927
>929
釣れませんね
0936nobodyさん2009/03/06(金) 08:58:45ID:???
どう見ても釣れてるようにしか見えない
というか事実だから釣りでも何でもないだろうけど
0937nobodyさん2009/03/06(金) 09:03:29ID:???
935みたいのがRuby信者か
0938nobodyさん2009/03/06(金) 09:05:57ID:???
酷そうな本だなこれw
http://d.hatena.ne.jp/higayasuo/20080311/1205228639
0939nobodyさん2009/03/06(金) 11:17:48ID:???
C言語からPHP移ったら違和感を感じた
0940nobodyさん2009/03/06(金) 11:23:57ID:???
古来より適応力のない生物は絶滅する運命

それより、移るってどういうことよ。
おれはCだろうがPHPだろうが、適材適所で使い分けてるけど、
移ったらってことは、Cを捨てるのか、いや捨てられたのか。あ、そか。
きっとPHPも君を捨てるだろう。
0941nobodyさん2009/03/06(金) 11:48:17ID:???
ruby真理教必至だな
0942nobodyさん2009/03/06(金) 11:57:16ID:???
違和感ってどんなとこに?
0943nobodyさん2009/03/06(金) 12:02:29ID:???
C言語からRubyだと違和感どころじゃ済まないけどな
0944nobodyさん2009/03/06(金) 12:04:02ID:???
ちょっと前にある会社面接行ったら
面接官が言葉の端々で最近はRubyしか使わないを連呼してたので断ったわ
RoRで作っても後に痛い目に遭うのは確実だし
あんなメモリ食いまくる仕組みがなんで流行ってるのか理解に苦しむ
0945nobodyさん2009/03/06(金) 14:03:24ID:???
ircで部屋たてたから誰かきてー
24時間つなぐぜ

http://irc.2ch.net/
#WEB制作板
0946nobodyさん2009/03/06(金) 14:17:45ID:???
何を語るんだ
0947nobodyさん2009/03/06(金) 15:22:09ID:k96rJD9y
PHP5.2.8です

class keisan {
function tasizan($a,$b) {return $a+$b;}
function hikizan($a,$b) {return $a-$b;}
function kakezan($a,$b) {return $a*$b;}
function warizan($a,$b) {return $a/$b;}
}

$obj=new keisan;
$tasizan_kekka = $obj->tasizan(10+5);
$obj->kakezan($tasizan_kekka,20);

tasizan関数で足し算の結果をkakezan関数の$aに使いたいのですが
このような書き方でよろしいでしょうか?
もっと効率的・スマートな書き方がございましたらご教示お願いいたします。
0948nobodyさん2009/03/06(金) 15:23:34ID:???
echo keisan::kakezan(keisan::tasizan(10,5),20));
0949nobodyさん2009/03/06(金) 16:07:43ID:???
>>947
計算結果を内部に持っても良いのなら、以下のようなのはどう?

class keisan {
private $result;
function __construct($a) {
$result = $a;
}
function tasizan($b) {
$this->result += $b;
retun $this;
}
function hikizan($b) {
$this->result -= $b;
return $this;
}
function kakezan($b) {
$this->result *= $b;
return $this;
}
function warizan($a,$b) {
$this->result /= $b;
return $this;
}
function kekka {
retun $this->result;
}
}

$obj=new keisan;
$kekka = $obj->tasizan(5)->kakezan(20)->kekka();
0950nobodyさん2009/03/06(金) 16:10:52ID:???
>>949ちょっと違ってた。
$obj=new keisan(10);
$kekka = $obj->tasizan(5)->kakezan(20)->kekka();
0951nobodyさん2009/03/06(金) 16:21:58ID:ox3YTIPG
モジュールで動作していてセーフモードで動いてるサーバではPHPでディレクトリを作成することができないので
FTPでいつも手動でディレクトリを作成してます
一つのディレクトリの中に10000ファイルためる場合、処理が遅くなりますか?
0952nobodyさん2009/03/06(金) 16:23:10ID:???
質問もアレだが、答えもアレだな。
メソッドチェーン覚えました〜〜って香ばしい匂いが
0953nobodyさん2009/03/06(金) 16:24:03ID:???
>>951
1ディレクトリに10000ファイルも溜めたら、apacheだって重くなるよ。
0954nobodyさん2009/03/06(金) 16:24:37ID:???
>>949のが一番すごいだろ
0955nobodyさん2009/03/06(金) 16:25:07ID:ox3YTIPG
>>953
ありがとうございます
手動で定期的にファイルを移動させます
0956nobodyさん2009/03/06(金) 17:26:24ID:???
apacheだFTPだじゃなくてファイルシステムがどうかだな
ext3とかなら確実にアウトだ
0957nobodyさん2009/03/06(金) 17:32:06ID:???
だよな
いまどきlinuxでext3を教えてる教本があるから困る
いまはFATだろが
0958nobodyさん2009/03/06(金) 18:17:51ID:???
まさか面白いと思って書いてないよね
0959nobodyさん2009/03/06(金) 20:49:00ID:???
>>944
まぁフレームワークに固執する時点で技術レベルわかるけどな
0960nobodyさん2009/03/06(金) 23:38:33ID:???
>947
>もっと効率的・スマートな書き方

$tasizan_kekka = 10+5;
$tasizan_kekka * 20;

もっと格好いい書き方
ttp://pastie.org/409335
参考文献
ttp://d.hatena.ne.jp/masayang/20081211/1229033163
0961nobodyさん2009/03/06(金) 23:51:00ID:???
>>960

>>947のような単純なものならそれがスマートなのは同意するが
質問の意図をとらえてない
0962nobodyさん2009/03/07(土) 00:16:31ID:???
>>949
$result = $a;
は
$this->result = a;
だな
0963nobodyさん2009/03/07(土) 00:21:07ID:???
>>947
まったく問題ない。まちがっても>>949みたいなキモいコードは書かないように。
0964nobodyさん2009/03/07(土) 11:57:49ID:???
一回しか取引が無いような相手に納品するとき
虎の子のライブラリとかどうしてる?暗号化する?
0965nobodyさん2009/03/07(土) 12:02:37ID:???
そんなご立派なライブラリをお持ちで?
0966nobodyさん2009/03/07(土) 12:18:42ID:???
ライセンスだけ自分にしておけば別に隠す必要ないだろ
0967nobodyさん2009/03/07(土) 12:26:47ID:???
以前ここで
「ライセンスで規制されてても二次利用は当たり前、パクって何が悪い?」
ってドキュソがいたなwww
0968nobodyさん2009/03/07(土) 16:03:58ID:???
その程度のスクリプトが虎の子扱いなのは、御社の技術力がだな、その
0969nobodyさん2009/03/07(土) 18:45:33ID:???
日本語でおk
0970nobodyさん2009/03/07(土) 18:49:09ID:???
御社と貴社の使い方も知らないと無知もいいところだな
0971nobodyさん2009/03/07(土) 18:59:23ID:???
そんな煽り方とは無知もいいところだな
0972nobodyさん2009/03/07(土) 19:00:07ID:???
>>968=>>971
0973nobodyさん2009/03/07(土) 19:21:18ID:???
は・ず・れ
残念でしたw
0974nobodyさん2009/03/07(土) 21:49:03ID:C+oqmm8h
アクセス解析で自分のサイトからのリファラは省くようにしたいので以下のように書きました
ifで真なら「自分サイト」、偽なら「外部サイト」と表示させたいのですが
結果が逆になってしまいます
どこを直したらよろしいのでしょうか?

$myurl = "http://localhost";
$referer = "http://www.2ch.jp/";
#$referer = "http://localhost/link.php";

if (preg_match('{^https?://[^('.$myurl.'].*$}', $referer)) {
echo "自分サイト";
} else {
echo "外部サイト";
}
0975nobodyさん2009/03/07(土) 21:55:17ID:???
第一ひきすうが{}で囲ってあるけどこんなのあったっけ?
0976nobodyさん2009/03/07(土) 22:06:13ID:???
975 名前:nobodyさん[sage] 投稿日:2009/03/07(土) 21:55:17 ID:???
第一ひきすうが{}で囲ってあるけどこんなのあったっけ?
975 名前:nobodyさん[sage] 投稿日:2009/03/07(土) 21:55:17 ID:???
第一ひきすうが{}で囲ってあるけどこんなのあったっけ?
975 名前:nobodyさん[sage] 投稿日:2009/03/07(土) 21:55:17 ID:???
第一ひきすうが{}で囲ってあるけどこんなのあったっけ?
975 名前:nobodyさん[sage] 投稿日:2009/03/07(土) 21:55:17 ID:???
第一ひきすうが{}で囲ってあるけどこんなのあったっけ?
975 名前:nobodyさん[sage] 投稿日:2009/03/07(土) 21:55:17 ID:???
第一ひきすうが{}で囲ってあるけどこんなのあったっけ?
975 名前:nobodyさん[sage] 投稿日:2009/03/07(土) 21:55:17 ID:???
第一ひきすうが{}で囲ってあるけどこんなのあったっけ?
975 名前:nobodyさん[sage] 投稿日:2009/03/07(土) 21:55:17 ID:???
第一ひきすうが{}で囲ってあるけどこんなのあったっけ?
975 名前:nobodyさん[sage] 投稿日:2009/03/07(土) 21:55:17 ID:???
第一ひきすうが{}で囲ってあるけどこんなのあったっけ?
975 名前:nobodyさん[sage] 投稿日:2009/03/07(土) 21:55:17 ID:???
第一ひきすうが{}で囲ってあるけどこんなのあったっけ?
0977nobodyさん2009/03/07(土) 22:07:53ID:???
>>975
ttp://www.akatsukinishisu.net/itazuragaki/perl/regex_delimiter_escaping.html
0978nobodyさん2009/03/07(土) 22:08:30ID:???
>>975
フイタw
0979nobodyさん2009/03/07(土) 22:28:21ID:???
>>977
ほー{}も対応してたのか
/でしか使ったことなかったから初めて知った、thx
0980nobodyさん2009/03/07(土) 22:34:36ID:???
/意外だと気持ち悪い
#とか
0981nobodyさん2009/03/07(土) 22:37:12ID:???
思ったけど、myurlの値違うくね?

それだと
http://http://localhost
になるんじゃね?
0982nobodyさん2009/03/07(土) 22:48:03ID:???
strpos('example.co.jp', $_SERVER['HTTP_REFERER'])
でいいんじゃないの?
0983nobodyさん2009/03/07(土) 22:52:31ID:???
>>974

$mydomein = 'exsample.com';
if(strpos($_SERVER['HTTP_REFERER'],$mydomein)){
 echo "自分サイト";
} else {
 echo "外部サイト";
}
0984nobodyさん2009/03/07(土) 22:53:01ID:???
それだと
http://localhost/example.co.jp.html
でもひっかかる
0985nobodyさん2009/03/07(土) 22:54:06ID:???
>>982
>>983
http://www.yahoo.xxco.jp/?url=example.com
みたいなとこから飛んできたらどうするんだよ
せめて先頭マッチくらいしろよ
0986nobodyさん2009/03/07(土) 22:55:59ID:???
別にアクセス解析で省くくらいの用途ならそれくらいでいいだろ
0987nobodyさん2009/03/07(土) 22:56:23ID:???
>>974
せめてここからはじめたほうがいいんじゃないか?

$myurl = $_SERVER['HTTP_HOST'];
$referer = "http://www.2ch.jp/";
#$referer = "http://localhost/link.php";

if (preg_match('{^https?://[^('.$myurl.'].*$}', $referer)) {
echo "自分サイト";
} else {
echo "外部サイト";
}
0988nobodyさん2009/03/07(土) 23:05:37ID:???
>>986
初心者乙
0989nobodyさん2009/03/07(土) 23:24:25ID:???
人生の初心者に言われたくないわ
0990nobodyさん2009/03/07(土) 23:36:26ID:???
>>982-983はギャグだろ
本気になるなよ
0991nobodyさん2009/03/08(日) 01:30:25ID:???
To : アクセス元の皆様
Subject : リファラ送出停止のお願いについて

お世話になっております。
私のサイトにアクセスする際は、当サイト内を相互移動する場合
リファラを送出しないようにお願い致します。
0992nobodyさん2009/03/08(日) 03:00:38ID:???
せっかくPHPなんだから
parse_url($_SERVER['HTTP_REFERER'])
とかしてからいろいろやった方がなにかと楽じゃない?
ちゃんとPHP使ってる?
0993nobodyさん2009/03/08(日) 03:17:30ID:???
おれ22才なんだがとりあえずこのスレおれより年上いないみたいだな
だから今から敬語使えや

ここで上下関係はっきりさせようや
0994nobodyさん2009/03/08(日) 03:21:31ID:???
オッサンwww仕事しろ
0995nobodyさん2009/03/08(日) 07:09:54ID:3tsEMQzx
pearのバージョンを入れ替えたところ2→3(PHPは4.3.11で変動無し)
�AのDB切断が呼び出しもとのDBインスタンスにも反映されて
�Cでエラーがでるようになったのですが、
これってpear::db仕様なんでしょうか?
回避方法あれば教えてほしいです。
<?php
require_once("DB.php"); // pear::db
class postage
{
function postage()
{
$db1 = new DBC;
$row = $db1->getRow("select * from session limit 1;");
print nl2br(print_r($row,1));// --------------�@
print "�@<br>\n";
$db1->disconnect(); // --------------�A切断
}
}
0996nobodyさん2009/03/08(日) 07:11:47ID:3tsEMQzx

class sess
{
function sess()
{
$db2 = new DBC;
$row = $db2->getRow("select * from session limit 1;");
print nl2br(print_r($row,1)); // --------------�B
print "�B<br>\n";

$postage = new postage;

$row = $db2->getRow("select * from session limit 1;");
print nl2br(print_r($row,1)); // --------------�C
print "�C<br>\n";

$db2->disconnect();
}
}
$c = new sess;
レス数が950を超えています。1000を超えると書き込みができなくなります。