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

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

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

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

本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/

過去スレは>>2
0220nobodyさん2006/02/09(木) 11:16:56ID:???
>>214
PHPの呼び出し元HTMLでtargetを指定してやるか、Locationで飛ばした先のHTMLを
target解除してさらに別ページに飛ばすJavaScriptのページにして連続遷移。
0221nobodyさん2006/02/09(木) 11:16:57ID:???
>>214
ちょっと前にも同じ質問があったぞ…
フレームはHTMLの仕様であり、PHPから直接いじることは無理。
どうしてもやりたければ、PHPのheaderで飛ばすのではなく、
PHPでJavaScriptを生成してwindowオブジェクトを操作すべし。
0222nobodyさん2006/02/09(木) 11:20:30ID:???
>>219

サーバー側の処理を考えればそんな所にはいきつかん。

<!-- ここに書かれた文字列 -->を表示しないと言うのはブラウザ側の機能。

サーバー側はあくまで取得してきたファイルを処理し、整形されたHTMLをクライアントへ投げるだけだ。
0223nobodyさん2006/02/09(木) 11:22:06ID:???
えtっと、すみません、最後に・・
例えば、a.phpからb.phpの自作関数を呼ぶ場合って
b.phpでは関数のみを作成し本体には何も書かないのがいいんですか?
0224nobodyさん2006/02/09(木) 11:24:27ID:???
>>223
本体って何を指してんだよw
ていうか、関数郡、実際稼動ファイルと分けておいた方が後で自分でも見やすいだろ?

お前次第だよそれはw
0225nobodyさん2006/02/09(木) 11:26:50ID:???
>>223
どっちでもいいよ。好きにしれ
0226nobodyさん2006/02/09(木) 11:32:10ID:???
>>223
言ってる意味が分からんがな。
本体=a.php 、 関数のみ=b.php という意味なら、
>>224が言うように見やすくなり管理し易くなる。
その関数を他のファイルで使いたい場合も、b.phpをincludeするだけでよくなる。
0227nobodyさん2006/02/09(木) 11:37:17ID:???
>>224
そそ、それそれ、ってやっぱ自分次第なんですよね。
>>226
ですね、<?phpでかこめば関数を作らなくても記述できる点がCとは異なるので
ちょっとアレだったんですよ
02282142006/02/09(木) 11:46:33ID:???
>>220-221
ありがとうございました。
0229nobodyさん2006/02/09(木) 11:55:47ID:???
>>227
Cと異なるってのはどういうこと?
メイン関数を作らなくてもいいってこと?

関数呼び出しに関してはいたってCと同じ構造だと思うぞ。

0230nobodyさん2006/02/09(木) 11:56:23ID:???
よく掲示板などの入力があるようなスクリプトを見ると、
extract($_GET);
extract($_POST);
extract($_COOKIE);
extract($_SERVER);
っていうのがあるんですが、これはどういう意味があるんですか?
0231nobodyさん2006/02/09(木) 11:58:19ID:???
>>230
ttp://php.s3.to/man/function.extract.html
ttp://php.s3.to/man/language.variables.predefined.html
0232nobodyさん2006/02/09(木) 11:59:04ID:???
>>230

ttp://php.net/extract

これを見て分からないなら諦めろ
0233nobodyさん2006/02/09(木) 11:59:35ID:???
>>231とかぶったww
0234nobodyさん2006/02/09(木) 12:10:28ID:???
>>230
脆弱性を作ってる
0235nobodyさん2006/02/09(木) 12:11:02ID:???
extract 超便利で大好きです。
ちゃんとサニタイズしてね。
0236nobodyさん2006/02/09(木) 12:25:04ID:???
>>234
確かにww
0237nobodyさん2006/02/09(木) 14:01:39ID:???
サニタイズ言うなキャンペーン
0238nobodyさん2006/02/09(木) 14:54:57ID:???
>>229
いやCは必ず関数が存在するけどphpて関数いらんっしょ
例えば、
<?php
なんか
この部分とか

function aa( )
{
}
?>
0239nobodyさん2006/02/09(木) 15:00:22ID:???
>>229がなにをいいたいのかさっぱり分からない
0240nobodyさん2006/02/09(木) 15:09:41ID:???
----a.php----
<?php
include ("b.php");
func();
?>
----b.php----
<?php
echo "test message";
function func() { echo "hello world.\n"; }
?>
----終了----
Cなら echo "test message";はエラー返される、とか
言い方が分からないけど、グローバルな部分で関数を呼び出したりifやwhileが使えないって事かな。
0241nobodyさん2006/02/09(木) 15:10:16ID:???
ちなみに>>240である俺は>>229では無いのであしからず。
02422292006/02/09(木) 15:25:09ID:???
223で聞いてる、関数分けをして呼ぶのに必要なのは、関数群を記述したファイルを
インクルードするだけって点ではCと同じじゃないかと書いたのですが、
どうやら私の方が227の文面を読み違えていたようでしつれしました。
0243nobodyさん2006/02/09(木) 15:25:14ID:???
>>235
この場合は変数の初期化を適切に行えばいい話しだ。
なんでもかんでもサニタイズ言うのは病気。
0244nobodyさん2006/02/09(木) 15:56:49ID:eu00qYyi
質問させて下さい。

ttp://www.xxxx.com/zzz/hello.php
のアドレスに
ttp://www.xxxx.com/zzz/hello
だけで行くのは出来ますか?

お願いします。

0245nobodyさん2006/02/09(木) 16:00:41ID:???
>>244
出来ます
0246nobodyさん2006/02/09(木) 16:05:12ID:???
<a href= 'http://www.yahoo.co.jp/'>;Yahoo!</a>
↑の文を

<form action="aaa.php" method="post">
<input type="hidden" name="name" value="write">
<textarea name="text" cols="20" rows="5" wrap="soft"></textarea>
<input type="sub" value="送信">
</form>
↑で送信して

if ($_POST['name']=='write'){
print $_POST['text'];
}
↑みたいな感じでで受け取ると、

<a href= \'http://www.yahoo.co.jp/\'>Yahoo!</a>
↑みたいに変化してしまいます。回避策あったら教えてください。
0247nobodyさん2006/02/09(木) 16:14:13ID:???
>>240
単にPHPの場合は各ファイルにmain()関数を置けるってだけだな。
Cとの最大の違いは「main()関数の中身を複数ファイルにバラバラに配置できる」ってとこか。
0248nobodyさん2006/02/09(木) 16:17:16ID:???
>>246
マジッククオート機能がONになってる可能性が高いからOFFにしれ
0249nobodyさん2006/02/09(木) 16:43:16ID:???
>>244
前スレの後半あたりで、その話題あった気がする。
0250nobodyさん2006/02/09(木) 16:58:06ID:???
>>244
Apacheのコンテントネゴシエーションが有効ならそのまま拡張子無しでアクセスできるかも
あとはmod_rewriteを使う
どっちにしてもPHP関係ねー
0251nobodyさん2006/02/09(木) 16:58:23ID:???
>>248
解決できました!!ありがとうございました!!
0252nobodyさん2006/02/09(木) 16:59:16ID:???
>>244
PHPの範疇ではない。.htaccessを使う。

Options +MultiViews
0253nobodyさん2006/02/09(木) 18:12:07ID:???
決まった時間に記事を投稿するというPHPで書かれたブログがあるんですが、
cronも使わないで決まった時間に…なんて出来るのですか?
0254nobodyさん2006/02/09(木) 18:22:31ID:???
自分のブログに投稿するんだったら、日時の操作は自由でしょ?
表示する時に指定の時間を過ぎてたら、指定時間に投稿したような記事を書き込めばいいんじゃないかな?
0255nobodyさん2006/02/09(木) 18:52:25ID:???
$sort_key = フィールド名;
$sort_dir = ソート方向
$sort_type = 比較方法
$list = 処理対象フールド

こんな風な変数を作っておいてから
array_multisort($sort_key, $sort_dir, $sort_type, $list);
って具合に引数に変数で渡すと、

Warning: array_multisort(): Argument #2 is expected to be an array or a sort flag in〜
または Argument #3〜ってエラーになります。

$sort_dirのとこは
SORT_ASC(昇順にソート)
SORT_DESC(降順にソート)

$sort_typeのとこは
SORT_REGULAR(普通に比較)
SORT_NUMERIC(数値的に比較)
SORT_STRING(文字列として比較)

などのフラグの文字列そのものを直接、引数のとこに書き込まないとダメなんでしょうか?
フラグの文字列(SORT_DESCとかSORT_NUMERIC)を直接入れるとうまくいきます。
なにかウマい方法がありましたら教えてください。
0256nobodyさん2006/02/09(木) 18:55:51ID:???
変数をダンプしてみることをお勧めします
0257nobodyさん2006/02/09(木) 19:02:45ID:9NTQCcyh
>>196
>>200を参考にして
nl2br(htmlspecialchars($_POST['textarea']))
0258682006/02/09(木) 19:04:50ID:???
>>255
変数毎に
switch〜case
でわけるか
if
でわければ良いだけでは?
0259nobodyさん2006/02/09(木) 19:26:56ID:???
>>256
dump?ちょっと調べてみます
>>258
もちろん、それでもよい訳ですが、関数に与える引数に変数が使えなかったというのが初めての経験なので、とりあえず、なんとかしちゃう方法というのも後学の為に知っておきたいと思った次第です。
0260nobodyさん2006/02/09(木) 20:31:57ID:???
>>255
$sort_dir = SORT_ASC;
$sort_type = SORT_REGULAR;

と、書けばいいのではないでしょうか?
直接引数のとこに書く必要はないでしょう。

# 意味取り違えてたらスマン
0261nobodyさん2006/02/09(木) 21:18:52ID:???
>>255
きっと>>260が言うように

$sort_dir = 'SORT_ASC';
$sort_type = 'SORT_REGULAR';

って ' や " でくくってないか?
0262nobodyさん2006/02/09(木) 21:31:40ID:???
>>259
問題なく変数経由でパラメータは渡せる。
$sort_dirに格納してるフラグdefineの綴りでも間違ってるんじゃない?
存在しないdefineを渡すとPHPはそのまんまその文字列を格納して、提示されたエラーメッセージが出る。
02631782006/02/09(木) 21:51:59ID:???
178ですが誰もわかんないみたいですね^^;
初心者しかいないようなら去りますw
0264nobodyさん2006/02/09(木) 21:53:25ID:???
さようなら^^;
0265nobodyさん2006/02/09(木) 21:54:24ID:MhSFpTrN
うむ^^;
02662442006/02/09(木) 23:31:56ID:???
>>245
>>252
ありがとうございます。
試してみます。
02672592006/02/09(木) 23:33:17ID:???
>>260-261
引用符でくくってますた・・・まさか引用符とは。
いやー、勉強になりますた。ありがとうございました。
02682592006/02/09(木) 23:36:21ID:???
>>262
これは定数なんではないかとはうすうす考え始めていたんですが。
なるほど。確かに文字列じゃなくて、これは定数を変数に入れて、引数として渡すってことだったんですね。
0269nobodyさん2006/02/10(金) 00:22:11ID:???
>>267
なんで変数を経由するときと直接指定するときとで書き方変えてんのさ。
02702592006/02/10(金) 01:22:52ID:???
>>269
いや、最初は定数なんて考えもおよばず、とにかく、文字は引用符でくくるとかたくなに信じる初心者なのです。
0271nobodyさん2006/02/10(金) 01:52:50ID:???
php4.2.3をマニュアルどおりにmakeして、make installしたのですが、
/etc/apache2/modules/にlibphp4.soが見つかりません。

コンパイルの仕方がおかしいのでしょうか?オプションもマニュアル
どおりに指定したのですが・・・

超初心者の質問ですみません。
0272nobodyさん2006/02/10(金) 02:16:21ID:???
>>271
ん〜、configureはちゃんと間違いなく指定した?
0273nobodyさん2006/02/10(金) 03:05:49ID:???
locateなりfindなりで、buildしたものの中辺り探せばあるんじゃないかな。
それを指定する場所に置くなり、シンボリックリンク貼ってあげれば。
02742712006/02/10(金) 07:18:50ID:???
>272

  http://nx.eth.jp/hiki.cgi?PHP-i18n-Compile

に書いてあることにしたがって、
--enable-zend-multibyte --enable-mbstring --enable-mbstr-enc-trans
を指定しました。

>273
仕事に出かけますので、帰宅したら探してみます。
0275nobodyさん2006/02/10(金) 08:10:19ID:???
>>274

--with-apxs
0276nobodyさん2006/02/10(金) 09:00:53ID:???
>>275
|/etc/apache2/modules/にlibphp4.soが見つかりません。
らしいので「--with-apxs2」とまで導いてやった方が良いかと。
# でもmakeのエラーで生成してないだけの予感。
0277nobodyさん2006/02/10(金) 16:00:51ID:???
x
0278nobodyさん2006/02/10(金) 16:21:56ID:???
ここは初心者しかいませんよ
0279nobodyさん2006/02/10(金) 16:32:15ID:???
>>278
同意。

3日前から覗き始めたが
質問の内容が調べれば速攻出てくるようなものばかりでつまらんな。

ここで質問する奴は検索エンジンって物を知らないんだろうか^^;
0280nobodyさん2006/02/10(金) 16:43:56ID:???
ここが検索エンジンなんだろう
0281nobodyさん2006/02/10(金) 16:51:30ID:???
通りがかりでちょっとさかのぼってみたけど、
>>278 == >>178 なのか?
答えもらって捨て台詞はいて、また戻ってきたのか
0282nobodyさん2006/02/10(金) 17:07:22ID:???
最先端の人工知能を搭載した検索エンジン“にちゃんねる”
0283nobodyさん2006/02/10(金) 17:24:23ID:???
最先端の人工無能
0284nobodyさん2006/02/10(金) 17:39:24ID:???
満足な回答が返ってくるのが当たり前だと思っている小学生が多いですね(苦笑)
0285nobodyさん2006/02/10(金) 18:12:09ID:???
>>281
荒れるのでいちいち蒸し返さなくていいって
所詮ここはくだ質なんだし
02862712006/02/10(金) 18:25:49ID:???
有難うございます。解決しました。
--with-apxs2を使って、configureすると、libphp4.soが出来上がりました。


最初、--with-apxs2=/use/local/apache2/bin/apxs2として、configureすると、
エラーが出たので、--with-apxs2を使わずにconfigureしたのが間違いでした。

ちなみに、私の環境(Vine 3.1 + apache2 : apache2はapt-get installしたもの)
では、apxsが/usr/binにあったので、ここにたどり着くまでに、ちょっと苦労しました。

初心者の質問で、済みませんでした。
0287nobodyさん2006/02/10(金) 19:11:32ID:???
>>279
ここはくだ質なんだからむしろそういう即効で分かるような質問をしないとw
0288nobodyさん2006/02/10(金) 20:39:32ID:???
phpっでファイルにアクセスする場合
文字列でしか読み込み書き込みできないんですか?

C言語で言う

fread( &hoge, sizeof( hoge ), 1, fp);

見たいなのがやりたいんですが
0289nobodyさん2006/02/10(金) 20:49:07ID:???
>>288
$hoge = fread($fp, 100); とかでいいじゃん。どっから文字列でしかダメなんて聞いてきたのよ。
0290nobodyさん2006/02/10(金) 20:57:41ID:???
質問の仕方がアレだな。
PHPにうらみでも持ってるのかと思った。

できないんですか?
なんなんですかあんた。
みたいなね。
ニュー速+に入り浸りすぎだな。
0291nobodyさん2006/02/10(金) 21:47:30ID:???
>>C言語で言う
0292nobodyさん2006/02/11(土) 14:26:21ID:???
なぁ、apxsってさ、ググっても今一これだ!っていうの見つかりにくくないか?
俺もPHPのconfigure指定するときマジで悩んだ('A`)
0293nobodyさん2006/02/11(土) 14:30:05ID:???
apxs - APache eXtenSion tool
ttp://httpd.apache.org/docs/2.0/ja/programs/apxs.html
0294nobodyさん2006/02/11(土) 16:42:47ID:???
この間あがってたPHPのアイコンを会社のパソコンで試してみたんだけど
良いね!
今ちょっとしたアイコンブームが起こってるw
0295nobodyさん2006/02/11(土) 21:02:38ID:???
GeoShellで使えるアイコン作ってくれると嬉しいな。
0296nobodyさん2006/02/11(土) 23:01:44ID:???
アイコンの再うpお願いできますか〜
0297nobodyさん2006/02/11(土) 23:57:56ID:???
ttp://www.uploda.org/uporg310382.zip.html

今回はオマケ付だぜ
0298nobodyさん2006/02/12(日) 00:12:14ID:???
>>297
ダウンロードパスを教えてくれ。
0299nobodyさん2006/02/12(日) 00:44:28ID:???
あ、ごめん
0300nobodyさん2006/02/12(日) 15:43:56ID:???
PHPをある程度習得しているのですが、SQLの知識がありません。
LAMP/LAPPで掲示板等を作成するにあたり、
SQL、およびSQLとPHPの連携について学べるサイトなどはないでしょうか。

あまりPHPと関係のない質問で、すみません。
0301nobodyさん2006/02/12(日) 16:20:49ID:???
>>300
つ【google】
0302nobodyさん2006/02/12(日) 17:42:22ID:???
>>300
DB系のスレで聞きなよ
0303nobodyさん2006/02/12(日) 17:43:22ID:???
>>300
ちなみにPHPだからSQLの知識は固有の部分だけでいいってことは全然ないそ
ちゃんと頭から一通りやるべし
0304nobodyさん2006/02/12(日) 18:53:47ID:???
>>300
DBのこと何も知らないのに、
いきなりPHPで組もうとか無理がありすぎ。
03053002006/02/12(日) 21:22:03ID:???
わ、わかった。(´・ω・`)
0306nobodyさん2006/02/12(日) 21:58:54ID:???
入力された文字列が16進数であるかを確かめるスクリプトを組みたいのですが、
文字列の中にひらがな、カタカナなどの16進数で使われる文字以外の文字が含まれているか、
或いは16進数のフォーマット(0-9とA-Fのみ)になっているかどうかを調べることはできますか?
説明が分かり難ければその旨を仰って下さい。
0307nobodyさん2006/02/12(日) 22:04:32ID:???
>>306
正規表現
0308nobodyさん2006/02/12(日) 22:05:03ID:???
>>306
preg_match('/^[0-9a-f]$/i', $str)
03093062006/02/12(日) 22:21:50ID:???
早々のご返答どうもありがとうございます。
ものすごく下らないことでしたね・・・
わざわざコーディングまでしていただいてすみません。
0310nobodyさん2006/02/13(月) 00:37:45ID:???
10秒でかいた一行のコードでそこまでいわれるとは。
0311nobodyさん2006/02/13(月) 08:55:26ID:???
なら俺は>308をオカヅに10秒で掻く
0312nobodyさん2006/02/13(月) 09:56:37ID:???
正規表現は書いて書いて書き倒すと、あとで役に立つ
0313nobodyさん2006/02/13(月) 09:59:46ID:???
自分で書かないと覚えられないよね。
0314nobodyさん2006/02/13(月) 10:29:56ID:???
連想配列をソートしたいのですが
ソートする項目がキーではなくて2つ目の項目とかの場合どうすればよいのでしょうか?
↓でいうbの項目でソート
array([1]=>array([a]=>hoge,[b]=>test),[2]=>array([a]=>hoge2,[b]=>test2))
0315nobodyさん2006/02/13(月) 10:35:01ID:???
つusort()
03163142006/02/13(月) 11:48:29ID:???
>>315
ありがとうございました。
0317nobodyさん2006/02/13(月) 13:20:11ID:???
文字列の左右に.がある場合は.を削除、
ということをしたいのですが、適した関数はないでしょうか?

思いついたのが手間がかかる方法で・・・
1.1文字目を調べて.なら削除
2.文字列反転させて1文字目を調べて.なら削除
3.もう一回文字列を反転
0318nobodyさん2006/02/13(月) 13:25:50ID:???
imapの新着フラグ(recent)をもう一回立てたくて、下記のように書いたのですがflagが立ってくれないとです・・
boolean 1 とも返ってきているのでflag立てには成功しているって事ですよね?
指定したメールをまた新着状態に出来れば何でもいいのですが・・
--------------------------------------------------
$mbox = imap_open("{example.jp/imap}INBOX", "mail@example.jp", "user");

$fclear = imap_search($mbox,'SUBJECT "hogehoge"', SE_UID);

foreach($fclear as $num)
{
$status = imap_setflag_full($mbox, $num, "\\Recent", ST_UID);
print gettype($status)."\n";
print $status."\n";
}
--------------------------------------------------
どなたかよろしくお願い致します。
0319nobodyさん2006/02/13(月) 13:35:59ID:???
>>317
$rest = substr("abcdef", -1); // "f" を返します
ってのはどうだろう

あとはマニュアルなりを見て
http://php.s3.to/man/function.substr.html

っていうか出来てるんならその処理でもいいんじゃないかとは思う
■ このスレッドは過去ログ倉庫に格納されています