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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/10/11(木) 17:55:41ID:uObe69hr
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 55
http://pc11.2ch.net/test/read.cgi/php/1191058556/

◆質問する時の注意
・ sage進行(メール欄にsageと記入すること)「sage進行」とはスレを目立つ上部に上げないことによって、荒らしが発見できないようにすることです
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・ 書き込むときには、「公式マニュアル、リファレンス本は読みました」と明記すること
(でないと、公式マニュアル読めと煽られます)

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0166nobodyさん2007/10/14(日) 12:56:42ID:???
本当にくだらねぇ質問だなw
0167nobodyさん2007/10/14(日) 13:20:04ID:???
>>165
スクリプト探しは他所で〜
難しくないから自分で作れ
0168nobodyさん2007/10/14(日) 13:26:30ID:???
俺作ったよ。
2ちゃんねるに書き込むスクリプト。
0169nobodyさん2007/10/14(日) 13:52:38ID:???
どうやって?
0170nobodyさん2007/10/14(日) 13:56:37ID:???
秀丸で
0171nobodyさん2007/10/14(日) 14:11:23ID:???
うそだ
0172nobodyさん2007/10/14(日) 15:02:40ID:???
言うのはタダだからw

しかしカウンタでDB使っている日とってそんなにいるのか・・・
カウントするだけなのによ
0173nobodyさん2007/10/14(日) 15:03:30ID:???
まぁまぁ、そう暑くならずに自分のおならの臭いを嗅いでエクスタシー感じようよ。
0174nobodyさん2007/10/14(日) 15:22:09ID:???
PHPでuse strictみたいなのってないの?
0175nobodyさん2007/10/14(日) 15:42:30ID:???
あるよ
0176nobodyさん2007/10/14(日) 16:42:04ID:???
>>174
E_STRICTですかね
0177nobodyさん2007/10/14(日) 17:41:50ID:???
>>172
個人で純粋にTOPのPVだけ取りたい人はテキストベースの方が多いんじゃない?
仕事で組む場合100%DBに頼ってる
0178nobodyさん2007/10/14(日) 17:45:07ID:???
>>177
それは、独自のロジックを組んで問題になったら、責任が自分の所にくるけど、
DBでやってトラブったら、Oracleの営業を呼んで扱き下ろしてやれば良いという姑息な打算から???
0179nobodyさん2007/10/14(日) 17:47:11ID:???
>>178
ごめんPostgresなんだw Oracleやりたいぜorz
0180nobodyさん2007/10/14(日) 18:05:50ID:???
たまにはこういうゲームやろうぜ
http://game13.2ch.net/test/read.cgi/mmo/1191276517/
0181nobodyさん2007/10/14(日) 18:56:39ID:???
画期的なPHPゲームでも何かないかね
0182nobodyさん2007/10/14(日) 19:07:44ID:???
>>181
つ 脳内メーカー
0183nobodyさん2007/10/14(日) 20:07:50ID:???
>>178
アクセスログをDBに放り込んで、解析結果のひとつとして
トップページのアクセスカウントとか得てるからじゃないの。
0184nobodyさん2007/10/14(日) 20:21:43ID:???
PHP 5.1.6で以下を参考に、mcrypt_genericで暗号化復号化をしているのですが、
ttp://weblog.riok.net/2006/09/mcrypt.php

復号化した際、データの最後にゴミが残ってしまいます。
このゴミを取り除く方法はありますでしょうか?
0185nobodyさん2007/10/14(日) 20:37:28ID:???
とりあえず5.1系からバージョンうpしろよ
0186nobodyさん2007/10/14(日) 22:25:46ID:T+RuNK/v
PHP4.4です。
30個ほどある$_POST{"***"}をfunctionに入れて各スクリプトより使いたいんですが

function ($_POST){
$a = $_POST{"a"};
$b = $_POST{"b"};
$c = nl2br($_POST{"c"});
$d = round($_POST["d"});
 〜
return true;
}

こういう風に書いたんですけど、returnで返って来ません。
return $a,$b,$c…っていう風に書くとエラー出ますし
return array($a,$b,$c…)って風に配列に入れる以外方法無いんでしょうか?
0187nobodyさん2007/10/14(日) 22:31:27ID:???
関数の外で
$a〜$dを初期化しといて

function hoge() {
global $a;
〜
global $d;
  (処理)
return;
}

とすればいいんじゃないか?
ちなみに$_POSTは引数として与えなくてもスーパーグローバルだから。
0188nobodyさん2007/10/14(日) 22:33:01ID:???
>>187
関数の中では無理って事ですね。了解
0189nobodyさん2007/10/14(日) 22:34:06ID:???
>>188
ならクラスを使いなさい
0190nobodyさん2007/10/14(日) 22:35:42ID:???
そこでグローバル変数かよw
0191nobodyさん2007/10/14(日) 22:36:09ID:???
>>189
調べてみます
Javascriptだとreturn[a,b,c,d]が効いたのに
なかなかPHPは難しいすねー
0192nobodyさん2007/10/14(日) 22:37:34ID:???
return array($a, $b, $c, $d);
すりゃいいじゃん
0193nobodyさん2007/10/14(日) 22:38:39ID:???
3ヵ月後に自分でソース見直して後悔するのは>>186だしw
最初から$arr['a']〜$arr['b']とかしといた方がまだマシだろうけどねw
0194nobodyさん2007/10/14(日) 22:43:19ID:???
思い付いたんだが
return $a;
return $b;
return $c;
って書けば完璧じゃね?
0195nobodyさん2007/10/14(日) 22:43:35ID:???
天才現る
0196nobodyさん2007/10/14(日) 22:43:36ID:rdw+jS+b
hoge($a,$b,c);
function hoge(&$a,&$b,&$c) {
$a=$_POST["a"];
$b=$_POST["b"];
$c=$_POST["c];
}

参照だろ
0197nobodyさん2007/10/14(日) 22:44:49ID:???
引数30個も書かせる気かよw
0198nobodyさん2007/10/14(日) 22:46:14ID:???
何が何だか分からなくなってきた
0199nobodyさん2007/10/14(日) 22:48:15ID:???
素直に連想配列でやり取りすべき。
0200nobodyさん2007/10/14(日) 22:48:56ID:???
抽象クラスでやり取りすべき。
02011862007/10/14(日) 22:49:24ID:???
>>194
と思ったんですがスマートじゃないなと
>>196
完璧っす!!これで行きます。
ありがとうございました!
0202nobodyさん2007/10/14(日) 22:50:05ID:???
PHP4.4で抽象クラス使えたっけ?
0203nobodyさん2007/10/14(日) 22:51:54ID:???
1行だけとんでもない長さの行が出来そうなやり方だな
0204nobodyさん2007/10/14(日) 22:52:34ID:???
>>203
呼び出しと関数定義の2行だ
0205nobodyさん2007/10/14(日) 23:17:05ID:???
function hoge(&$a,&$b,&$c,&$d,&$e,&$f,&$g,&$h,&$i,&$j,&$k,&$l,&$m,&$n,&$o,&$p,&$q,&$r,&$s,&$t,&$u,&$v,&$w,&$y,&$x,&$z,&$a1,&$a2,&$a3,&$a4) {
$a = $_POST["a"];
$b = $_POST["b"];
$c = $_POST["c"];
$d = $_POST["d"];
$e = $_POST["e"];
$f = $_POST["f"];
$g = $_POST["g"];
$h = $_POST["h"];
$i = $_POST["i"];
$j = $_POST["j"];
$k = $_POST["k"];
$l = $_POST["l"];
$m = $_POST["m"];
$n = $_POST["n"];
$o = $_POST["o"];
$p = $_POST["p"];
$q = $_POST["q"];
$r = $_POST["r"];
$s = $_POST["s"];
$t = $_POST["t"];
$u = $_POST["u"];
$v = $_POST["v"];
$w = $_POST["w"];
$x = $_POST["y"];
$y = $_POST["x"];
$z = $_POST["z"];
$a1 = $_POST["a1"];
$a2 = $_POST["a2"];
$a3 = $_POST["a3"];
$a4 = $_POST["a4"];
return true; }}   # 30個の例。どう考えてもおかしいだろ。(行多すぎてここにしかコメント書けんw)
0206nobodyさん2007/10/14(日) 23:18:20ID:???
これでも変数名2文字までなんだぜ?
02071842007/10/14(日) 23:20:28ID:???
>>185
アップしてきます
ありがとうございました。

ちなみにテンプレsage進行になってるんだけど、
やっぱりあげるべきだった?
0208nobodyさん2007/10/14(日) 23:21:23ID:???
そのとおりです
0209nobodyさん2007/10/14(日) 23:58:32ID:???
よく考えたらreturn array($a, 〜)も30個並べるんだよなw
return array($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l,$m,$n,$o,$p,$q,$r,$s,$t,$u,$v,$w,$y,$x,$z,$a1,$a2,$a3,$a4);

これ↓はダメなの?(エラー?)
function hoge(){
$hash["a"] = $_POST["a"];
$hash["b"] = $_POST["b"];
(中略)
$hash["a4"] = $_POST["a4"];
return $hash;
}

0210nobodyさん2007/10/15(月) 00:19:40ID:???
大人しくクラス使えよ。
馬鹿じゃねえのおまえら。
0211nobodyさん2007/10/15(月) 00:36:06ID:???
extract関数使えばいいじゃん。
0212nobodyさん2007/10/15(月) 00:37:32ID:???
>>209
だったら最初から$_POSTのままでアクセスすりゃいいのでは…
どうしてもグローバル変数に入れたいってなら
function hoge() {
 foreach($_POST as $k => $v) {
  $GLOBALS[$k] = $_POST[$v];
 }
}
とか。
つーかこれ、ぶっちゃけextract()でいいじゃん。
ま、上の関数ならちょっといじればキーに制限とかも加えられるけど。
0213nobodyさん2007/10/15(月) 00:51:10ID:???
レベルひき〜。。
0214nobodyさん2007/10/15(月) 00:52:21ID:???
>>213
>>スレタイ
0215nobodyさん2007/10/15(月) 00:53:44ID:pvBXefed
会社で(といってもIT系じゃなくて普通の会社)で、web担当をしています。

こんど新しいサービスを始めるってことで、会員登録ができるように
システムの変更を任されたのですが、ユーザーIDを漢字でも平仮名でも
いける様にしろと役員からの命令で作っているのですが、
こんな仕様で支障はないですか?

ユーザーIDに漢字を使った記憶が私自身無いので、違和感が多少あります。
普通にはあまりないけど、特に問題ないってことであれば良いとは思うんですが。
0216nobodyさん2007/10/15(月) 01:21:30ID:???
漢字OKにする=漢字で本名入力する=ログインの都度ネットに本名が流れる
気持ちがいいとは思えないが、まぁいいんじゃない
それでいいなら
0217nobodyさん2007/10/15(月) 01:22:02ID:???
きちんとエスケープ忘れなければ大丈夫だろ
0218nobodyさん2007/10/15(月) 01:24:27ID:???
嫌なら役員の顔にうんこ塗ってやめる。
多分技術知らん役員が、指示してるんだから、言葉通りじゃなく意味を察してやればいい。
おそらく、IDっていうかニックネームくらいの意味合いでしょ。
実際のIDは別に数字で作っておけば仕様変更に耐えて拡張できるじゃない。
0219nobodyさん2007/10/15(月) 01:37:38ID:???
>嫌なら役員の顔にうんこ塗ってやめる。

鬼子乙
0220nobodyさん2007/10/15(月) 01:46:20ID:???
もういまから5.2系でかけるようになったほうがいいぜ
0221nobodyさん2007/10/15(月) 02:22:54ID:???
今日はネタ的な質問ばかりだなw
0222nobodyさん2007/10/15(月) 02:44:11ID:???
レスポンスヘッダーに下記がついてしまうが、
これを
---------------------------------------
Date: Sun, 14 Oct 2007 17:40:56 GMT
Server: ***
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 4486
Connection: close
Content-Type: text/html; charset=utf-8

200 OK
---------------------------------------

下記のようにしたい。

---------------------------------------
Date: Sun, 14 Oct 2007 17:36:23 GMT
Server: ***
Etag: f55e173eaf6d08418edc18ac4df2752d
Content-Type: text/html; charset=utf-8

200 OK
---------------------------------------

session_start();
するとついてしまうものですか?
0223nobodyさん2007/10/15(月) 02:47:04ID:???
どう考えても動作上必須
0224nobodyさん2007/10/15(月) 02:50:55ID:???
HTTPから勉強しろw
0225nobodyさん2007/10/15(月) 03:17:06ID:???
>>223-224
ネタ乙。
0226nobodyさん2007/10/15(月) 05:41:13ID:tolXaTNQ
$array = array("あああ","いいい","ううう");

という配列があったとして、配列の指定番号を
別の文字列に置き換えるには、どうしたらいいのでしょうか?
0227nobodyさん2007/10/15(月) 05:57:15ID:rCD/KqUy
朝っぱらから申し訳ありませんが質問させてください

<br>&copy;
これを
%3Cbr%3E%26copy%3B
このようにcookieに保存させたい場合どのようにしたらいいですか?
02282272007/10/15(月) 06:04:35ID:rCD/KqUy
質問間違えました。
cookieに%3Cbr%3E%26copy%3Bを保存したのですがhtmlに表示するにはどうしたらいいですか?
htmlspecialcharsをやってみたのですが<br>だけ表示され、&copy;が表示されません。
02292272007/10/15(月) 06:09:03ID:rCD/KqUy
解決しました。
ありがとうございました☆
02302272007/10/15(月) 06:23:10ID:rCD/KqUy
解決してませんでした!
また別の問題でした><シクシク
0231nobodyさん2007/10/15(月) 06:23:13ID:???
>>226
まずはマニュアル見なよ
>>1のマニュアルで「配列」あたりで探してみな。

右上の検索窓で array で検索するのもいいかもね。
0232nobodyさん2007/10/15(月) 06:34:03ID:???
>>227
とりあえずもちつこう。
で、結局何が質問で何が解決した部分なんだ?
02332272007/10/15(月) 06:51:00ID:rCD/KqUy
>>232
ありがとう!
配列で検索したら解決しました☆
0234nobodyさん2007/10/15(月) 08:29:23ID:rCD/KqUy
また質問が・・・
02354352007/10/15(月) 09:12:11ID:???
>>226
$array = array("別のkey1" => "あああ", "別のkey2" => "いいい", "別のkey3" => "ううう");
0236nobodyさん2007/10/15(月) 09:40:03ID:???
PHP4.3xですが
$valueに日本語が含まれていない場合の処理はどの様に書くんでしょうか?
ググってもMTのコメントスパムモジュールみたいな物しか載ってなくて…。

とりあえず
#半角英数字しか$valueに無い場合はエラー
if(!mb_ereg('[^0-9a-zA-Z]',$value){〜
って風に書いてますが、この場合空白文字や改行を含むと通ってしまいます。
0237nobodyさん2007/10/15(月) 10:04:25ID:YXxNHMi3
$this->hoge()
といちいちやるのがめんどうだ。。。
なんか関数や変数を参照する前にフックさせて、$this->と書かなくてもいいようにできないのかなぁ。
02382362007/10/15(月) 10:18:49ID:???
>>236の自己レス
if(preg_match("/^[!-~\r\n ]+$/",$value)){

これで行けそうな気がしましたが大丈夫かな…
0239nobodyさん2007/10/15(月) 10:19:59ID:wektbLJ2
functionの名前付けで
setは値をセット、getは値を返すようにしているけど
値を書き換えるときはどんな名前をつけたほうがいいですか?
0240nobodyさん2007/10/15(月) 10:22:15ID:???
PHP6の名前空間に無意味に期待!
0241nobodyさん2007/10/15(月) 10:29:37ID:???
>>239
setで値書き換えたらいいんじゃない?
0242nobodyさん2007/10/15(月) 10:33:16ID:wektbLJ2
>>241
サンクス
setにしてみます。

changeにしようと思ったが思いとどまってよかった・・・
0243nobodyさん2007/10/15(月) 15:59:36ID:???
プログラミングより
細かい正規表現を作れる奴の方が凄いよ
http抜出とか、人の見ても理解できないよ
ひらがな・カタカナ抽出とか
記号だけHITさせるなんて書けるやついる?
0244nobodyさん2007/10/15(月) 16:02:41ID:???
細かい正規表現より、細かい性器表現の方が凄いよ。
0245nobodyさん2007/10/15(月) 16:03:05ID:???
沢山いる
0246nobodyさん2007/10/15(月) 16:10:55ID:???
>>243
アドレスはURIの知識があれば書ける
平仮名片仮名記号は[]内に書いておけば事足りる
文字コードで範囲指定しても良いけど

正規表現で重要なのは表現したい対象を構成するデータパターンを把握する能力
アドレス抜き出しはURIの知識が無かったら書けない

パターンの最適解を求める話はしてないので念の為
0247nobodyさん2007/10/15(月) 16:41:08ID:???
>>222
ぐぐりました?
0248nobodyさん2007/10/15(月) 16:43:09ID:???
>>243
正規表現はPHPとは独立してる話だから
0249nobodyさん2007/10/15(月) 16:57:06ID:oAeMasT7
まさに正規表現なんですが
コード座標が違うOS依存文字を強調表示にする
書き方がちんぷんかんぷんです
どういった手続きが良いんでしょうか?
なんでwinとmacで(1)とかVIとか場所が違うんでしょうね…
0250nobodyさん2007/10/15(月) 17:00:25ID:???
スレ違い、専用スレいけクズ
0251nobodyさん2007/10/15(月) 17:00:30ID:???
Unicode使えば解決
0252nobodyさん2007/10/15(月) 17:25:05ID:oAeMasT7
・入稿フォーム→添付メール→MACで開く→ユニコードない→文字化けアッー

・添付する前に保存したものをブラウザで見る→ブラウザのユニコードで記号ok→イラレにコピペ→文字化けアッー

です。

もう警告表示つけて入力抑止しようかなと…
0253nobodyさん2007/10/15(月) 17:28:36ID:xzfwn/e8
function 0(){
・・・・
}
から
function 20(){
・・・・
}
0();
〜
20();
って書いて読んでるんですが何か楽な方法ないでしょうか。forがよく分からなくて・・
0254nobodyさん2007/10/15(月) 17:30:58ID:???
っていうかOS依存文字何か使ってるのがもうね(ry
0255nobodyさん2007/10/15(月) 17:33:00ID:???
>>253
えヴぁlでいいんじゃね?

>>252
機種依存文字を使う馬鹿のサポートなんてしなくていいよ。
0256nobodyさん2007/10/15(月) 17:54:25ID:???
>>253
関数名の先頭に数字は付けられないはずだが
0257nobodyさん2007/10/15(月) 18:07:58ID:xzfwn/e8
>>256
あ。レスありがとう。先頭が数字なのは例のつもりでした。
実際は
sitemap0〜sitemap50とかです。
少ないし別に並べて書いてもいいかな。。。w
0258nobodyさん2007/10/15(月) 18:12:04ID:???
>>257
可変変数でグぐれ。
可変関数でももしかしたらでるかもしれん
0259nobodyさん2007/10/15(月) 18:21:41ID:???
>>253
昨日30個の$_POSTの処理の質問出たけどそれの続き?
今度は30個の$_POSTを個別に関数で処理するとか
0260nobodyさん2007/10/15(月) 18:22:47ID:???
同じような処理で30個も関数使いわける必要がある時点で何かおかしい
0261nobodyさん2007/10/15(月) 18:30:49ID:???
PHP5&smartyで開発してるんだけど、
tplに組み込むソースをバイナリエディタで見る→おK
hoge.tplに組み込んでhoge.php表示→レイアウト崩れ
ソース見る→半角スペース入る(バイナリエディタだと文字化け)
って現象に悩まされてるんだが。
正:
<!DOCTYPE
現在:
\<!DOCTYPE
↑ここが文字化け(見た目は半角スペース)

原因不明です。誰か教えてください。
よろしくお願いします。
0262nobodyさん2007/10/15(月) 18:32:44ID:???
文字コード変換する時にゴミが混じってる悪寒
0263nobodyさん2007/10/15(月) 18:34:48ID:???
BOM
0264nobodyさん2007/10/15(月) 18:36:21ID:???
>>261
Unicodeならそれ普通
0265nobodyさん2007/10/15(月) 18:37:59ID:xzfwn/e8
みなさんレスありがとうございます。
>>258 可変関数などでぐぐってみます〜
>>259 自分じゃないですよ。サイトマップを半自動で作るようにしたいのです。
>>260 おかしいですよね・・・動的ページのサイトマップを自動で作りたいんだけど、
何か方法ないものかいろいろ試してるんですよ。

みんなどうやってサイトマップ作ってるんだろ。
■ このスレッドは過去ログ倉庫に格納されています