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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/12/18(日) 10:10:12ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
過去スレは>>2
0002nobodyさん2005/12/18(日) 10:10:46ID:???
・過去スレ
【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/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
0003nobodyさん2005/12/18(日) 10:12:55ID:???
1乙
0004nobodyさん2005/12/18(日) 10:13:22ID:???
超絶タイミングでの次スレ立て乙!>>1
0005nobodyさん2005/12/18(日) 10:14:18ID:???
以下のサイトのように、
Webページのキャプチャ画像をPHPで生成することはできますか?

http://webscan.jp/
0006nobodyさん2005/12/18(日) 10:21:50ID:???
できるかと言えばできる。
でも多分お前には無理。
0007nobodyさん2005/12/18(日) 10:27:16ID:???
>>5
PHPだけでできない事は無いが、かなり難しい。
PHPでブラウザ(htmlを解析・レンダリグ)を作成するような物だと思ってくれ。

実際にはそんな事はやってられないので、既存のブラウザが画面に描画したものを
キャプチャするという仕組みが使われる事が多い。
そのwebscanってのもそうじゃないかな?
キャプチャの方法は OS・ブラウザのapiに依存するのでPHPのスレの範疇じゃないな。
適切な板やスレで聞くとよい。
0008nobodyさん2005/12/18(日) 10:36:39ID:???
>>5
http://fula.jp/blog/index.php?no=r701
これもPHPやね
0009nobodyさん2005/12/18(日) 11:44:54ID:???
Warning: Invalid argument supplied for foreach() in /home1/○○○.ne.jp/WWW/sendmail.php on line 132

Fatal error: Call to undefined function: mb_convert_encoding() in /home1/○○○.ne.jp/WWW/sendmail.php on line 141

本スレ529でご質問したところくだらないってっ却下されましたので
こちらでお尋ねいたします・・・
このメッセージが出てきます。テストサイトではちゃんと実行できるの
ですが。はじめてのphp初心者です。
0010nobodyさん2005/12/18(日) 11:55:34ID:???
>>9
訳すとこんな感じか。つーかなんで俺が訳さにゃならんのだっ!ビタン(AA略

警告 : foreachに渡された引数が正しくない 132行目
致命的エラー : 定義されていないmb_convert_encoding()という関数が呼び出されている

上は、foreachに渡した引数がおかしいと言われているので、その引数を確認してみればよい。
下は、mb_*系の関数は拡張モジュール(標準ではない)なので、
その鯖の管理者さんが不要だと思った場合はインストールされない。
mb_*の一部の関数は、jcode.phpというphpのみで書かれたライブラリを
配布してくれている人がいるのでそれを使うのも一つの手かと。
0011nobodyさん2005/12/18(日) 12:01:11ID:???
エラーメッセージでググれ
0012nobodyさん2005/12/18(日) 12:22:16ID:???
>>9
foreachの直前に回したい変数をvar_dumpしてみれ
0013nobodyさん2005/12/18(日) 12:33:03ID:???
もうこれテンプレに入れといた方がいいんじゃね?

※サーバで利用可能なモジュール及び関数リストの取得方法
<?php
foreach (get_loaded_extensions() as $module)
{
echo "<b>[". $module ."]</b><br>";
foreach (get_extension_funcs($module) as $func)
{
echo $func ."<br>";
}
}
?>

[standard]以下はPHPの標準関数。それ以外はオプションな。
このリストに欲しい関数がない場合はサーバ管理者にいってオプションを
組み込んでもらわないといけない訳。分かった?>>9
0014nobodyさん2005/12/18(日) 12:55:52ID:???
>>13
テンプレに入れたって、ここで質問する人でそれ使って
ちゃんと確認できる人はいないでしょ。意味ねぇ。
0015nobodyさん2005/12/18(日) 12:58:07ID:???
なんでエラーが出てるのにそのまま質問するのか理解できん
0016nobodyさん2005/12/18(日) 12:58:43ID:???
>>9
sendmail.phpの132行目にあるforeachの変数が配列じゃないらしい。
プログラムの設定か何かをミスってる可能性あり。
あと、使ってるサーバーではmb_convert_encoding()がインストールされてないので
管理者に頼んで入れてもらわない限り動作しない。
0017nobodyさん2005/12/18(日) 12:59:58ID:???
>>15
同じPHPスクリプトがサーバーによって挙動が変わるというのが
理解できないからでしょ。
0018nobodyさん2005/12/18(日) 13:05:28ID:???
丸投げすれば誰かが解決してくれるだろうという発想なんだろうけど
こいつ自身が最大のバグだな
0019nobodyさん2005/12/18(日) 13:07:29ID:???
>>13
本スレのテンプレになら意味あるんじゃね?提案してみれば?
0020nobodyさん2005/12/18(日) 13:12:38ID:???
PHPのフリーなコンパイラーは存在しないのでしょうか?
有料ばっかりで・・・
0021nobodyさん2005/12/18(日) 13:19:07ID:???
そのコンパイラーとやらは何ができるの?
0022nobodyさん2005/12/18(日) 13:19:24ID:lBRzm0WN
>>20
有料なのを教えて
0023nobodyさん2005/12/18(日) 13:21:26ID:???
>>21
配布ソースのコード隠蔽じゃないの?
他にPHPコンパイラやPerlコンパイラの用途って無いと俺は思ってたけど。
0024nobodyさん2005/12/18(日) 13:32:29ID:???
>>22
20じゃないけど俺が知ってるのはこの辺。
ttp://www.zend.com/store/products/zend-encoder.php
0025nobodyさん2005/12/18(日) 13:35:28ID:???
peclにbcompilerがあるよβだけど
つかフリーソフトでコード隠蔽する必然性がないんだからさあ
クローズドで儲けたい人はそういう人同士だけでやればいいじゃん
0026nobodyさん2005/12/18(日) 13:56:54ID:???
コンパイルしたほうが実行速度早くなるとかないの?
0027nobodyさん2005/12/18(日) 14:01:37ID:???
大して変わらないか、むしろ遅くなりそうな…
速くするためならオプティマイザかコードキャッシュでしょう。
0028nobodyさん2005/12/18(日) 14:01:55ID:???
inst('A');を使いまわそうとするとループ?に入るのかエラーで処理が中断してしまいいます。
class内でも使えるようにするにはどうしたら良いのでしょうか?。
$this使えというのは無しでお願いします(^^;。

function inst($n){
static $inst;
if (!isset($inst[$n])) $inst[$n] =& new $n;
return $inst[$n];
}

inst('A');
inst('A'); // 既にインスタンスがあるのでA::A()は実行されない


class A{
function A(){
inst('A'); // ← A::A()を実行してループに入ってる??
echo 1;
}
}
0029nobodyさん2005/12/18(日) 14:08:04ID:???
('A`)マンドクセ
0030nobodyさん2005/12/18(日) 14:12:12ID:???
ひょっとして前スレのグローバルなインスタンスの人か?なんだこりゃ。
0031nobodyさん2005/12/18(日) 14:27:00ID:???
>>28
そもそも意図が分からない。
なんでクラスAの中でさらにクラスAを生成する必要があんの?これ。
ループというのは正確じゃなく、クラスAの中で生成するクラスAがさらにクラスAを必要とするから
無限に子供のクラスAを作り続けようとする感じだろ。
(同じトコの実行を繰り返すわけじゃないからループとはちょっと違う)

とりあえずすぐ思いつくのはこんなとこ。
function inst($n){
static $inst;
if (!isset($inst[$n])) { $inst[$n] = 1; $inst[$n] =& new $n; }
return $inst[$n];
}
0032nobodyさん2005/12/18(日) 14:28:37ID:???
>>31
リファレンスは静的に保持できませんよ
0033312005/12/18(日) 14:31:21ID:???
あ、駄目か。これじゃクラスAが生成されない。
というか、全てのクラスAが子供のクラスAを必要とするんだから、
原理的にこれは無限実行にならなきゃいけない設計なんだな。
この階層構造を見直さない限り、ロジックを見直そうと思っても無駄だわ。
0034nobodyさん2005/12/18(日) 14:41:52ID:jwrRezTg
http://***/example.php/1/
のような「/」を使用した変数を受け取るにはどうしたらいいのでしょうか?
0035nobodyさん2005/12/18(日) 14:47:26ID:???
$_SERVER["PATH_INFO"]
0036nobodyさん2005/12/18(日) 14:48:17ID:???
やはり孫classが一杯出来てしまうのですね。
最初は1つのclass内で全てを作っていたのですが、だんだん大きくなって来たので
分割しようと考えた次第です。その際にスマートに書き直したかったのであれこれと
変更を加えていたら嵌ってしまいました(^^;。

階層構造を見直さないとだめですよね。お騒がせしました。

>>30
同じ人です(^^;。

>>31
私も試してみましたがclassAの中では空になりますね。

>>34
ttp://***/example.php/1/?a=1 って事かな?
それかRewriteEngineを調べると良いかも
0037nobodyさん2005/12/18(日) 14:56:49ID:???
よっぽどグローバス変数の方が美しいコードに見える
0038nobodyさん2005/12/18(日) 15:03:23ID:???
>>37
グローバスとは何ぞや?
0039nobodyさん2005/12/18(日) 15:16:34ID:???
そういえば$GLOBALS変数は使った事無いなぁ
みなさんは$GLOBALSを使って書いてるのですか?
0040nobodyさん2005/12/18(日) 15:21:14ID:???
俺は$GLOBALS使ってるな。
稀にglobal宣言も使うけど、極めて例外的。
0041nobodyさん2005/12/18(日) 17:28:30ID:???
質問です。
$file = preg_replace ('<!--([^-]*)-->(.*?)<!--([^-]*)-->', '', $file);
print \1;
とすると
Unexpected character in input: '\' (ASCII=92) state=1
とでちゃうのですが、Perlの
print $1;
のようにマッチした文字を取り出すにはどうすればいいのでしょうか?
0042nobodyさん2005/12/18(日) 17:32:06ID:???
マニュアル読んだ?
0043nobodyさん2005/12/18(日) 18:01:43ID:???
2005年度くだ質大賞ベストテンに入る
間違いない
0044nobodyさん2005/12/18(日) 18:17:52ID:???
>>41
preg_replaceの中でしか使えない。
0045nobodyさん2005/12/18(日) 18:22:28ID:???
eオプション
0046nobodyさん2005/12/18(日) 18:47:53ID:???
>>41
preg_match()使え
0047nobodyさん2005/12/18(日) 20:42:40ID:???
phpMyAdmin のコード見ると $GLOBALS 使いまくってるが
あまりスマートではないな
0048nobodyさん2005/12/18(日) 21:04:49ID:???
>>44ー46
そんなことより変数名の頭は(ry
0049412005/12/18(日) 21:07:18ID:???
なんか遊ばれてるみたいなので、
PerlではできるけどPHPではできないってことにしておきます。
0050nobodyさん2005/12/18(日) 21:15:50ID:???
>>5 >>8

仕組みを誰か詳しく説明してください
0051nobodyさん2005/12/18(日) 21:16:46ID:???
Fatal error: Cannot redeclare vlogiew() (previously declared ...
というエラーが出て回避する方法がわからないのですが何方かご存知ありませんか?。
vlogiew()をlogprint()としてもダメでした。
0052nobodyさん2005/12/18(日) 21:26:52ID:???
>>51
自己レスーー;
vlogiew()を複数回読み込んでた
0053nobodyさん2005/12/18(日) 22:30:48ID:???
>>49
前スレの最後の辺りで同じような話が出てたよ
0054nobodyさん2005/12/18(日) 22:33:08ID:???
>>50
仕組み
1.IEのエンジンを使ってブラウザの表示を画像に落とすツールをWindowsアプリで作ります
2.それをWeb上のPHPから呼び出します
3.完了
0055nobodyさん2005/12/18(日) 23:13:24ID:???
>>49
とりあえず一言。
せめてマニュアルくらいは読もうな!な!
0056nobodyさん2005/12/19(月) 00:11:51ID:???
>>54
Javaの製品もある。
でもまあ世の中にはWindowsのIEでしか
レイアウトが再現できないサイトも沢山あるからねぇ。
0057562005/12/19(月) 00:17:06ID:???
あとASPで提供してるキャプチャサービスもある。
昔はデモで指定したサイトのサムネール生成が出来て、
それをゴニョゴニョして利用出来たんだけど…
0058nobodyさん2005/12/19(月) 00:21:27ID:???
あんま関係ないけど前スレ970はsscanfのほうが適してると思う
0059nobodyさん2005/12/19(月) 00:42:52ID:???
>>57
ASPで提供してるのはフロントエンドの部分だけじゃないの?
結局、中身はWinIEかJavaか〜って感じかとオモウが
0060nobodyさん2005/12/19(月) 00:48:48ID:???
mojavi2でサイトを作っていて、ユーザ登録処理を作りたいです。

emailとパスワードを入力させて、送信するとユーザにメールが送られて、URLを
クリックするとユーザ登録されるというよくあるものを作りたいのですが、よくあるコード
だと思います。
そういうコードどこかにありませんか?

PEARとZendで探しましたが、見つかりませんでした。
XOOPSのは、再利用しづらいです。

探し方だけでもよいので、よろしくお願いします。
0061nobodyさん2005/12/19(月) 00:57:44ID:???
>>58
その辺は好みかな。
元C言語プログラマとしてはsscanfの挙動は信用したくない…。
(入力内容がイレギュラーだった場合に変な挙動をすることがあるので)
速度を優先するならsubstrを、同時にフォーマットチェックも兼ねるなら
preg_replaceを、俺なら選択するな。
0062nobodyさん2005/12/19(月) 01:09:49ID:???
結局>>49の回答を導けない住人
SUGEEEEEEE!!111
0063nobodyさん2005/12/19(月) 01:16:17ID:???
>>62
はぁ?
とっくに答えは出ている。
49は理解する気も無いようだが。
0064nobodyさん2005/12/19(月) 01:20:56ID:???
そのまんまコピペで動くコードを書かなきゃいかんのかね?
0065nobodyさん2005/12/19(月) 01:40:35ID:???
型にはめないと使えないPHPってある意味すごいな。
0066nobodyさん2005/12/19(月) 08:11:53ID:???
>>65
自分の事しか考えていない65も負けてないよ
0067nobodyさん2005/12/19(月) 09:16:57ID:???
test
0068nobodyさん2005/12/19(月) 09:19:37ID:???
guest guest
0069nobodyさん2005/12/19(月) 10:26:05ID:???
オススメのエディタ、IDEはないですか?
0070nobodyさん2005/12/19(月) 10:28:52ID:???
>>69
最強のPHPエディタはなに?@WebProg
http://pc8.2ch.net/test/read.cgi/php/1133785416/l50
PHPエディタって、どうよ?@WebProg
http://pc8.2ch.net/test/read.cgi/php/1079460638/l50
PHP統合開発環境スレ@WebProg
http://pc8.2ch.net/test/read.cgi/php/1123912762/l50
0071nobodyさん2005/12/19(月) 12:39:54ID:l+7IklxT
PHP4.3.11です。XML_RSSもXML_Treeもインストールして、
/usr/local/lib/php/XML以下にそれらが入っている事も確認しましたが

Warning: main(XML/Parser.php): failed to open stream: No such file or directory in /usr/local/lib/php/XML/RSS.php on line 23

Fatal error: main(): Failed opening required 'XML/Parser.php' (include_path='.:/usr/local/lib/php') in /usr/local/lib/php/XML/RSS.php on line 23

の様なエラーが発生してスクリプトが動きません。
原因分かる方居ますか?
0072nobodyさん2005/12/19(月) 12:43:39ID:???
原因は書かれている通りだと思うが・・・
なんか変に曲解しなければならん状況なの?
0073nobodyさん2005/12/19(月) 12:44:02ID:???
>>71
原因と言われても「/usr/local/lib/php/XML/RSS.php」がないってエラーだしねー。
0074nobodyさん2005/12/19(月) 12:53:26ID:???
>>71
XML_Parserが入って無いんジャマイカ?
0075nobodyさん2005/12/19(月) 13:24:38ID:pcyIPGNx
メールの送信について質問なのですが、
$header = "Content-Type: text/plain; charset=iso-2022-jp\nFrom:送信者\<[email protected]\>";
mb_language("Japanese");
if(mb_send_mail($mail,$subject,$message,$header)){
var_dump($header);
}
でのvar_dumpの結果で、Content-Type: text/plain; charset=iso-2022-jp From:送信者\
というふうに、<[email protected]\>の部分が消えてしまい正しく送信されません。
どこを修正すればよいのでしょうか。
0076nobodyさん2005/12/19(月) 13:40:36ID:???
とりあえず突っ込みどころが多すぎる点は置いておいて・・・

ブラウザで「<〜>」がタグとして解釈されて表示上消えているだけ
という単純な問題である悪寒
0077nobodyさん2005/12/19(月) 13:44:14ID:iBVZGmYt
localhostから
hoge.comにあるDB接続用のfunctionで
hoge.com内にあるDBにアクセスし
結果だけをreturnでlocalhostに返したかったので
hoge.comのfunctionをlocalhostのPHPでinclude_onceしました
その後でDB接続用のfunctionを実行したところ
Call to undefined functionといわれてしまいました
(DB接続用のfunctionには問題はありませんでした)

以上のことからfunctionはlocal内に無いと動かないという事でしょうか?
もしくはPHPiniなどに設定が必要なのでしょうか??
0078nobodyさん2005/12/19(月) 13:46:22ID:iBVZGmYt
訂正
誤 hoge.comのfunctionをlocalhostのPHPでinclude_onceしました
正 hoge.comのfunctionが書かれたPHPファイルをlocalhostのPHPでinclude_onceしました
0079nobodyさん2005/12/19(月) 13:48:05ID:???
>>77
localのどこにあるファイルをincludeしようとしてるんだ?
それ次第だろ。ちゃんと、エラー表示するようにしてみたら?
0080nobodyさん2005/12/19(月) 13:58:24ID:???
hoge.comにあるスクリプトをincludeしようとしているんじゃないか?

>>77
hoge.comがphpをパースしていたら、渡されるのは当然実行結果だけなので
hoge.comにある関数は実行できません。
たとえphpをパースしなくても(スクリプトそのままを渡してくるなら)
localhost内で実行されるので意に沿う結果にはならないと思われ。
どっちにしてもhoge.com内のスクリプトにある関数をlocalhostで実行するのは
無理があると思うけど。
0081nobodyさん2005/12/19(月) 14:09:55ID:???
include_once('外部URL'); つーことなら、次のような動作になる。
1. include_onceで外部URLのファイルを取得しにいく (URL fopen wrapper)
2. hoge.comのweb鯖が処理をする。
 拡張子phpならhoge.comのPHPが処理して、実行後の結果(出力)をテキストとして返す。
 実行結果をファイルにして、それをlocalhostでincludeした時と同じ様に考えるとよい。
  ・phpファイルの内容がfunctionだったら関数定義だけなので、何も返さない。
  ・実行の結果が<?php 〜 ?> ってな内容(文字列)だったら、
   そのような内容のファイルをlocalhostでncludeした事と同じになる。(localhostのPHPが処理する)
3. 残りの処理を続行。
0082752005/12/19(月) 14:28:53ID:pcyIPGNx
>>76
その通りでした・・・。ありがとうございます。

なんとか送信まではできたのですが文字化けしてしまいます。

mb_language()
mb_send_mail($mail,$subject,$message,$header)

mb_language()
mb_send_mail($mail,mb_encode_mimeheader($subject,"ISO-2022-JP"),mb_encode_mimeheader($message,"ISO-2022-JP"),$header)

mb_language()
mb_send_mail($mail,mb_convert_encoding($subject,"SJIS"),mb_convert_encoding($message,"SJIS"),$header)

どれも文字化けしてしまいました。
マニュアル見ると1番最初のでいいような気がするのですが、よくわかりません。
どこが問題なのでしょうか。
■ このスレッドは過去ログ倉庫に格納されています