【PHP】質問スレッド Part7
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/02/06 05:56ID:???http://www.php.net/
■ 日本 PHP ユーザ会
http://www.php.gr.jp/
■ PHP マニュアル
http://www.php.net/manual/ja/
■ PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ及び注意事項等は、>>2-10あたりに
0611nobodyさん
03/03/18 15:52ID:???>perlはいろいろ使い道がある
>phpはWebプログラムにしかつかえん・・・
そしてここはWebProg板。
いろいろって言ってもちょっと高機能なシェルスクリプト位だからなぁ・・・。
別にルビーでもパイソンでも良いわけで。
0613nobodyさん
03/03/18 15:56ID:???今やるのならPHPって言ってたんですけど
どっちがいいんでしょうか?
0614nobodyさん
03/03/18 15:58ID:???これからはPHPの時代Perlはもう終わりバイバイ2
http://pc2.2ch.net/test/read.cgi/php/1046194468/l50
最近マジでPerlに魅力を感じなくなってきたよ
http://pc2.2ch.net/test/read.cgi/php/1041489691/l50
0615nobodyさん
03/03/18 18:36ID:???Perlに比べてPHPのが書きやすいからお勧めっていったらお勧め。
時代は関係ない。
そういやCGI版としてPHPを入れたらコンソールでも扱えるんだっけか。
0616ページの有効期限切れ
03/03/18 18:47ID:frl1VUIPFORMでブラウザの『戻る』するとFORMの内容が消えち
ゃいます。
んで、『進む』すると「警告 : ページの有効期限切れ」
が表示されてしまう。
同じスクリプトでPHPの4.2.1だとそんな問題は起こらないので
PHPの設定でこうなっていると思うんだけど?
わかる方いますか?
0618nobodyさん
03/03/18 19:02ID:???0620616
03/03/18 19:07ID:???session.cache_limiterをprivateにすれば直るんですね。
お騒がせすますた。
0621nobodyさん
03/03/18 19:09ID:???0624nobodyさん
03/03/18 20:40ID:Jzir57v50625nobodyさん
03/03/18 20:59ID:???PHPの通常使用はapacheのモジュールとして動作するから
通常使用がCGI経由で動作するPerlより、PHPは高速なんだって。
0628nobodyさん
03/03/18 22:05ID:???PHPは通常のCGIとしても使用できますが、PHPモジュールをApache
サーバに組み込むことにより、Perl/CGIと比較して処理速度の高速化、
サーバ負荷の低減を実現することができます
0629nobodyさん
03/03/18 22:12ID:???プログラムと各種情報をやりとりするためのインターフェース規約とスクリプト言語
0630nobodyさん
03/03/19 00:26ID:???│モジュール. │ CGI │
──┼─────┼─────┤
Perl │ mod_perl │ Perl/CGI .|
──┼─────┼─────┤
PHP. | mod_php .| PHP/CGI │
──┴─────┴─────┘
0631nobodyさん
03/03/19 00:50ID:???会員登録のときに、いたずらを避けるために
仮登録(メアド、名前くらい)して、そのメアドに本登録するときに必要なパスワードをメッセージに書いて送りたいんだけど、もし無効なアドレスであれば
マニュアル読んだらmail()関数の5番目のパラメータで
additional_parameter は、MTA のコマンドラ インパラメータです。sendmailを使用する場合に正しいReturn-Pathを設 定する場合に便利です。
成功時にTRUE、その他の場合 FALSEを返します。
っていうのがあるんだけど、これってReturn-Pathに設定したアドレスに
TRUEとかFALSEって書いたメールが届くってことなのか?
なんか違うきがするんだけど、知ってたらおせーて。
0632nobodyさん
03/03/19 00:53ID:???まさに今最も注目されいるのがこれ。
mod_perl
実はmod_phpよりも速いのだが、セーフモードみたいのがないから
実用的じゃないらしい。
Perl/CGI
かつての王者。数年後には死んでいるのが見えます。
PHP/CGI
使うアフォはいないだろう。
試せばわかると思うが、
普通にリレー先からエラーメッセージが帰ってくる。
0636nobodyさん
03/03/19 02:11ID:???サンクス
ためしてみぃよーっと^^
0638nobodyさん
03/03/19 03:32ID:???PHPユーザーは他の言語叩くのがお得意ですね。
0639nobodyさん
03/03/19 06:27ID:???有料サーバじゃないと無理だよね?
0640nobodyさん
03/03/19 06:28ID:???0641nobodyさん
03/03/19 09:10ID:???同等の動作環境ならperlの方が一般に早い。
PHPのメリットは、デザイナにぶつを投げられる点だと思う。
perlだとどうしてもデザイナとこちとらでファイルがぐるぐる回りになる。
(IISだと何かあるらしいが、使ったことがない)
0643nobodyさん
03/03/19 09:42ID:???PHPでもPerlでもどっちで作っても同じようなもんですよね?
PHPはHTMLの中にちょこっと記述することが出来て結構気に入ってるんですが
0644nobodyさん
03/03/19 09:59ID:???そういうならPHPと同等以上に分離可能なperlのmodule名を挙げてみろよ。
おれはもともとperlのほうがありがたい。
0645gn355my0
03/03/19 10:32ID:???お客さんにもよるけど HTML::Template とかはいかがでつか。
逆にPHPで HTML::Template 並に分離可能で軽いライブラリを教えて欲すぃ。
Smarty はちょっと重いと思う。
0646nobodyさん
03/03/19 10:40ID:???0647nobodyさん
03/03/19 11:06ID:???HTML::Templateを使ったことあるなら、あれをGoliveやDreamweaverで
デザイナにいじらせるのは無理だということはわかってるはず。
あんたのレスはただのまぜっかえしにしかみえない。
0648nobodyさん
03/03/19 11:09ID:CrnUAM4AHTML::Template も Smarty も使ってるけど、Smarty が重いとは思えないけどな。
0649nobodyさん
03/03/19 11:16ID:???今更ですが別の解決策。
print "変数aの値は$a です。";
変数名の後に半角スペースを付けると解決できる罠。
但し表示にもスペースが反映されるのが問題だが。
考えたの俺じゃないけどね。
0651nobodyさん
03/03/19 12:26ID:???ttp://sl.edge.jp/authors.html
0652651
03/03/19 12:28ID:???ttp://sl.edge.jp/
スレ違いでスマソ
0653nobodyさん
03/03/19 12:51ID:8OO+f4X+いや、普通にできるよ。${a}
>>645
簡単なテンプレを自作しる。
これで十分なんじゃないか?
$templateファイルに記述されている%_変数名_%がその変数名の値に
置き換わってグログロと出力メモリも苦ワン。
$TPL = fopen($template,'r');
while(!feof($TPL)){
$line = fgets($TPL);
$line = preg_replace("/%_(\w+)_%/e","$$1",$line);
print $line;
}
fclose($TPL);
0654nobodyさん
03/03/19 13:41ID:???そうだよなぁ 何で半角スペース入れたり .で連結したりとか
言ってるのもいるしよくわからんな・・
$a = 10;
echo "変数aの値は${a}です。";
printf ("変数のaの値は%dです",$a);
特に問題ないのだが PHPのバージョンによって
動作が違うのか?
0656nobodyさん
03/03/19 16:55ID:D5YXXQfRPerlでは
while($text =~ /($mail_regex)/go){
push(@data,$1);
}
とすると@dataに$mail_regexにマッチするデーターが一括して入りますがこれと同じことをPHPでしたいのです。
0657nobodyさん
03/03/19 17:23ID:???パソコンの知識はギリギリ2ちゃんねるに来れたぐらいです。
0658nobodyさん
03/03/19 17:29ID:D5YXXQfR0659nobodyさん
03/03/19 17:29ID:D5YXXQfR0661nobodyさん
03/03/19 20:04ID:???ギリギリってどんな状態だ(w
0663nobodyさん
03/03/19 22:40ID:???0665nobodyさん
03/03/20 20:26ID:4HfAvm7S例えば、www.hoge.com/curl.php にアクセスして以下のスクリプトを実行させると
<?php
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "http://www.google.co.jp/");
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_exec ($ch);
curl_close ($ch);
?>
画像が相対指定の場合表示されなくなるんだけど
相対指定の場合でも、うまく表示させる方法ってありますか?
0666nobodyさん
03/03/20 22:29ID:I/iiqEJgもちろん人によると思うけど、平均的に。
0667nobodyさん
03/03/20 22:31ID:???0670nobodyさん
03/03/20 23:53ID:???私は元々Perlが出来たので、
1日程度で掲示板ぐらいは作れるようになりました。
DBはまだ勉強中だけど。
www.hoge.com/curl.php?url=http://www.example.jp
みたいにアクセスすると想定して言うけど。
読み込んだHTMLを解析してimgとかで貼られてる画像を
<img src="./ayaya.png">
↓
<img src="http://www.example.jp/curl.php?url=http://www.example.jp/ayaya.jpg">
みたいに置き換える仕組みを作るしか無いかと。
でないと、絶対パス(じゃないか。http://から始まってるフルパス)で
書かれている時は見えていても直接アクセスしてしまっている罠。
(それでいいならいいんですが)
ところで、curlが必要な理由ってなんでしょう?
>666
どの程度のスキルを「覚えた」と言うかによる。
あと、他の言語(C言語とか)を少しでもさわってるなら
それこそ一週間くらいで結構使えるようになると思われ。
0672nobodyさん
03/03/21 01:27ID:WHiz79q/でファイルの読み込みをしているのですが、ファイル名をブラウザから任意に
選択可能にしたいと考えています。
ブラウザからパスをポストして、$hogehogeに格納して、
file_get_contents($hogehoge);
としてもうまくいきません。
file_get_contentsの使い方を調べてみたのですが、
file_get_contents(string filename [, int use_include_path])の
int以下の記述の仕方がよくわかりません。
素人な質問で恐縮ですが、アドバイスなどいただけますと幸いです。
0673nobodyさん
03/03/21 02:00ID:???何が「どうもうまく」いかないのか書けよ。
ちなみにこの関数はPHP4.3.0以降でないと使えんよ。
use_include_path は 1にすると、include pathも検索するようになる。
0675nobodyさん
03/03/21 13:31ID:sQQisTRy---
$query = "select * from tb_bibliography where \'$search_c\' like \'$search_t\'";
$result = mysql_query($query);
$num = mysql_num_rows($result);
----
次のような、エラーが出てしまいます。
Warning: mysql_num_rows(): supplied argument is not a valid MySQL
おそらく、$queryの書き方がまずいと思うのですが、どのように
修正すればいいのでしょうか?また、「%」をつかった場合は
どのように記述すればいいのでしょうか?
質問ばかりで恐縮ですが、よろしくお願いいたします。
なんか微妙に勘違いしてるっぽい…。
$query = "select * from tablename where fieldname like '%search%'";
こんな感じかと。
テーブルやフィールドの名前がmysqlの予約語に含まれてるなら
`tablename`
みたいにする。
0677nobodyさん
03/03/21 13:59ID:???( ´∀`)/<先生!こんなのがありました!
_ / / / \___________
\⊂ノ ̄ ̄ ̄ ̄\
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
http://saitama.gasuki.com/hiroyuki/
0678nobodyさん
03/03/21 14:04ID:???$str = str_replace(" ", " ",$str);
に変換すると同じように
ダブルクォーテーションを文字コードに変換したいのですが、
$str = str_replace(""", "?",$str);
だとエラーが出ます。どう記述したらいいのでしょうか?
0679nobodyさん
03/03/21 14:11ID:sQQisTRy$query = "select * from tablename where $fieldname like '%$search%'";
fieldnameとsearchを変数にして試せあせていただいたのですが、やはりエラーがでます。
まだ、どこか間違っているのでしょうか?
0682nobodyさん
03/03/21 15:00ID:sQQisTRy$query = "select * from tablename where $fieldname like '%$search%'";
やはり、これでもだめなんでしょうか。。
0683nobodyさん
03/03/21 15:17ID:???ぱっと見期待できそうだ。でも次の仕事にゃ間に合わないなあ。
匿名で情報の交換ができるという意味では
ここはなかなかいい場所だと思うんだが、
いかんせんおれにはノイズがきつすぎる。
撤退することにするよ。
0685nobodyさん
03/03/21 15:48ID:???返答次第では私が開発した全30種類の「ポニーちゃんの大冒険ライブラリ」すべてのスレッドを立てる所存です。
あー、フォローサンクス。
実行部分気にしてなかった(苦笑
あらかじめmysql_select_dbしていれば指定いらないんだっけ?
最近の小発見。
PHP4.3.0で
var_dump(parse_url("http://example.jp?hoge=ayaya"));
としたら
["host"] => "example.jp?hoge=ayaya"
だったのがcvs版だとちゃんと
["host"] => "example.jp"
["query"] => "hoge=ayaya"
になってた。
この違い(バグ?)に気がつかず、かなり長時間はまっちゃったよ…。
0687nobodyさん
03/03/21 15:54ID:???VBから入ってくるとそうなる。>"""
この間ASP(VBS)で作る羽目になったが、細かい部分の違いの方が気になって
ちょっと体質に合わんな。JScriptだとそうでもないかも知れんが。
件の部分はエスケープは「¥」ということだけだが、
678は他でもポカすると思われるので、マニュアルをちゃんと読むこと。
0688nobodyさん
03/03/21 16:01ID:???>あらかじめmysql_select_dbしていれば指定いらないんだっけ?
>>687
VBから入ってくるとそうなる。>"""
ふたつまとめて
へ ー そ ー な ん だ ! (^^;
しかし、"""してなんともおもわないのなら、諦めた方がいいと思うよ。
で、'"'もありだよ。
0691メンテのし易さ
03/03/21 17:27ID:pOguTMzcPHPでやろうか検討中です。
処理速度や言語の学習時間は気にしません。
また、PHPでもDB接続やアプリケーションセッションの管理、表示処理と
ビジネスロジックの分離はできるものと思っています(違うかな?)
開発工数の短縮と出来上がったコードのメンテのし易さ(スクリプト
の可読性)を主眼に、PerlとPHPの良し悪しを教えてください。
0692682
03/03/21 17:56ID:sQQisTRy本題とは関係のない私のミスでした。おかげさまで、動くようになりました。
0694PHP長所新車
03/03/21 18:34ID:F7U+UqHWフォームにTESTという文字を入力して決定ボタンを押したら、
内容がTESTと書いてあるnantoka.txtというtxtファイルを
作成するPHPはどのように作ればいいのでしょうか?
説明めちゃくちゃ下手糞でごめんなさい。
要はフォームに「なんじゃこりゃ」と入力したら
nantoka.txtが作られ、それを開くと「なんじゃこりゃ」
と書いてあるようにしたいんです。
まじでだれか教えてください。
なんかわけのわからない質問ですいません。
0695nobodyさん
03/03/21 18:53ID:???どこまで作ってどこで詰まったのか書くよろし。
1. フォームデータ受け取り
2. ファイルオープン
3. ファイル書き込み
4. ファイルクローズ
5. 画面表示
0696nobodyさん
03/03/21 18:54ID:???意味はわかるがそれくらい自分で勉強できないでプログラムを趣味や仕事にするのは危険だと思われ。
安易に答えを提示する「初心者つぶし」からの回答でも待ってください。
0697PHP長所新車
03/03/21 19:03ID:F7U+UqHW正直言うと、694自身も今作成中のスクリプトの一部で
これに関してはまったく作ってないです。
3が特に分からないです。
PHPをかいてるのが今日が初めてなんで、
695さん696さんが思っている以上にかなりの知識のなさです。
コンピュータ関係のバイトで、あるスクリプトを作って
くるように言われてて、試行錯誤いろいろ調べ、本も見たのですが、
上記の部分は現時点ではどうすればいいのか結局
わからなかったので、ここに書かせていただきました。
0698デブおた山崎渉
03/03/21 19:05ID:???( ´;^;ё;^;)<これからも僕を殺して下さいね( ´;^;ё;^;)。
=〔~∪ ̄ ̄〕
= ◎――◎ デブおた山崎渉
0699PHP長所新車
03/03/21 19:19ID:F7U+UqHW0701nobodyさん
03/03/21 19:25ID:???マニュアル ( http://www.php.net/manual/ja/ )
のファイルシステム関数あたりを読んで下さい
それで分からなかったら諦めて下さい
0702nobodyさん
03/03/21 19:25ID:???最初にこの辺を参考に、htmlのformからphpスクリプトへの
入力データの受け渡し方法の基本を学び、
http://www.php.net/manual/ja/tutorial.forms.php
次に、fopen()で生成したnantoka.txtというファイルに対して
http://www.php.net/manual/ja/function.fopen.php
fputs()でformから受け取った入力データの実際に書き込む。
http://www.php.net/manual/ja/function.fputs.php
あとはスクリプトが終了すると、自動的にクローズされるのだが
fclose()でファイルポインタを明示的に閉じるのが筋であろう。
基本的なことなのでgoogleでPHPと検索語を組み合わせると
丁寧なチュートリアルが多分どっかに転がってると思います。
0703702
03/03/21 19:29ID:???>694自身も今作成中のスクリプトの一部で
その書き方だとニヤッとする香具師が折り以外にも多数いると思う(笑
まあ、さっきの関数の使い方を調べて見れ
0705PHP長所新車
03/03/21 19:32ID:F7U+UqHWなるほど。丁寧にありがとうございます。
おっしゃもうひとふん張りするか。
本当にどうもでした!!
>>703
なんででしょ?
0706nobodyさん
03/03/21 19:41ID:5jNBqUYZ0708nobodyさん
03/03/21 20:39ID:wEEgu7v2Perlではこんな風にやってたんだけど、PHPではどないにするんだ?
$tmpl =~m[<loop>(.*?)</loop>]si;
$head = $`;
$loop = $1;
$foot = $';
0709nobodyさん
03/03/21 21:00ID:???http://www.php.net/manual/ja/function.preg-match.php
0710初心者
03/03/21 23:26ID:???加工する事ってできる?
$msg = "結果:test1";
$msg = mb_ereg_replace(':test[^<>[:space:]]+[[:alnum:]]{0,2}',"<a href=\"\\0\">\\0</a>",$msg);
print($msg);
結果<a href=":test1">:test1</a>
本当は以下の様にしたい。
結果<a href="1">:test1</a>
■ このスレッドは過去ログ倉庫に格納されています