【PHP】質問スレッドpart21【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/08/27 18:00ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
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-4
0653645
04/09/08 18:46ID:???すいません、、、多分そうです。
エラー吐き出すソース書いてました。
これ全部直して、それでもうまく行かなかったらまた1時間ほど調べて、
それでも駄目ならまた戻ってきます、色々すいませんでした。
0654nobodyさん
04/09/08 19:13ID:???でエラーを表示させないようにしたかったんですが
相変わらず普通にエラーが表示されてしまいます。
(ini_getで見ると一応変更されてるようなんですけど……)
php.iniのdisplay_errorsをoffにすればエラーは非表示になりました。
でもUPする先のはいじれないんで、どうしたら良いのでしょう。
windowsのapache2のローカル環境です。
0655nobodyさん
04/09/08 19:32ID:???0656nobodyさん
04/09/08 20:16ID:???0657nobodyさん
04/09/08 20:19ID:???釣りならよそでやれよカス
0658nobodyさん
04/09/08 20:31ID:???0661nobodyさん
04/09/08 21:42ID:???>XXVII. エラー処理およびログ記録関数
いや、本当に質問する前に何回か見たんですが。
php.iniのdisplay_errorsをoffにすれば、パースエラーとかでも
真っ白のページがでるじゃないですか? ああしたいんですよね……
もちろん、そんなエラーでないように作ってるんですけど、念のためってことで。
0662nobodyさん
04/09/08 21:46ID:???0664nobodyさん
04/09/09 00:06ID:???嘘をつくな
釣りはよそでやれ
0665nobodyさん
04/09/09 00:14ID:???0666nobodyさん
04/09/09 00:25ID:FbdWBweAよくレンタルサーバーの仕様書に
/usr/local/bin/php
って明記している場合があるのですが
これはHTML内に記述して使えないと言うことですか?
普通HTML内に<?php 〜 ?>で使うことが多いですよね?
モジュールタイプとか言う意味がわからないのです。
0667nobodyさん
04/09/09 00:30ID:???No.
>普通HTML内に<?php 〜 ?>で使うことが多いですよね?
No.
>モジュールタイプとか言う意味がわからないのです。
調べれば?
0668nobodyさん
04/09/09 00:32ID:???CGIで動かしているだけでしょ。
Perlのように先頭に書いて以後は同じ
#!/usr/local/bin/php
<html><head>....
<?php
echo "なんたら";
...
?>
</body>
</html>
0669666
04/09/09 01:04ID:aXAHUhw00671軟式PHP
04/09/09 02:46ID:???0672nobodyさん
04/09/09 06:49ID:???ヒアドキュメント内で定数を使う方法はないですか?
0673nobodyさん
04/09/09 09:25ID:???散々外出だし
0674nobodyさん
04/09/09 09:56ID:???Q.
Perl で便利だった定数や関数の埋め込み、q/qq はないの?
A.
残念ながらありません。要望を出しましょう。
0675nobodyさん
04/09/09 10:59ID:IIwWnmVEApacheモジュールならApacheを再起動してないとか。
0677nobodyさん
04/09/09 13:01ID:XV9g/9TMチェックするために
if(ereg("^http://", $_POST['url']))
と書いてみたのですが、これだと「test.http://〜〜」や
「test,http://〜〜」もスルーしてしまうみたいです。
どうやったらhttp://で始まっているかチェックできるのでしょうか?
0678nobodyさん
04/09/09 13:13ID:???うちの環境じゃ動くよ。ちゃんと確認したか?
<html>
<form>
URL : <input type="text" name="hoge" size="30"> <input type="submit" value="SEND">
</form>
</html>
<?php
$hoge = $_REQUEST[hoge];
if(ereg("^http://",$hoge)){
print "http://から始まる文字列です => \$hoge = $hoge";
}
?>
0679nobodyさん
04/09/09 13:16ID:???0681nobodyさん
04/09/09 15:49ID:???0682nobodyさん
04/09/09 16:04ID:???http://pear.php.net/package/HTML_Table は table の生成でした。
やりたいのは table を配列に変換したいのです。
0683nobodyさん
04/09/09 16:22ID:???0684nobodyさん
04/09/09 18:23ID:???0685672
04/09/09 18:33ID:???外出すみません、ありがとうございました。
>676
perlは使ったことありません。
0686nobodyさん
04/09/09 18:50ID:???$link = mysql_connect("hostname", "user", "passwd")
or die("Could not connect\n");
print ("Connected successfully\n");
mysql_close($link);
?>
上のスクリプトで、hostnameがlocalhostのとき、
○シェルからCLI版のPHPで実行するとMySQLに接続できる。
○mod_phpからHTTP経由で実行してもちゃんと動く。
hostnameがlocalhostでない別ホストのとき、
○CLI版PHPではちゃんと動く。
×mod_phpではなぜか接続できない。
なんで別ホストで動くMySQLにmod_phpから接続できないんでしょう???
CLI版とmod_phpは同じコンパイルオプションで同時に作ったもの。バージョンは4.3.6。
./configure --with-mysql=/usr/local --with-apxs2=...
CLI版では接続できているのでネットワークや受け側MySQLの問題ではないと思う。
0688nobodyさん
04/09/09 19:29ID:???実は、実行権限の違いの問題だったりして。
Apacheとコマンドラインの。
なにはともあれ 4.3.8にした方が良いと思います。
0689nobodyさん
04/09/09 19:34ID:???die( "Could not connect. ".mysql_error() );
とでもやってエラー原因を確かめるべし
0690nobodyさん
04/09/09 22:07ID:???<form action="<?php echo $PHP_SELF ?>" method="POST">
Name:<input type="text" name="name" size="16">
E-mail:<input type="text" name="mail" size="40">
<input type="submit" value="送信"></form>
<?php
if($_POST['mail'] and $_POST['name']){
mb_send_mail($_POST['mail'],$_POST['name'],本文だよ);
}
?>
という風に書いてみたところ
「Parse error: parse error, unexpected '{' in /~~~/mail.php on line 7」
と言われてしまいました。
変なところに{があるYO!ってことだと思うのですが、
どこを見ても余計な{は入っていないようにしか思えません。
どうすれば正常に動くのでしょうか…
0691nobodyさん
04/09/09 22:10ID:+Va/ZOYcVine Linux3 上のapacheでhoge.phpというファイルをアップし
ブラウザからアクセスすると、phpの中身がそのままテキストとして表示されてしまいます。
apacheのphp、php3、php4モジュールは読み込みされており
AddTypeもされています。
こういった場合どこか問題かわかる方よろしくお願いします。
0692nobodyさん
04/09/09 22:16ID:???mb_send_mail($_POST['mail'],$_POST['name'],'本文だよ');
0694nobodyさん
04/09/09 22:47ID:???--enable-versioningしてるの?それともcgiモジュールとapacheモジュールで分けてるの?
そのAddTypeは絶対間違ってない自信があるから、ここに書かないの?
>>693
Parse errorが出た時は show_source()を使うと
parserの気持ちになれてサクッと解決できることもあるよ。
0695カポコン
04/09/10 00:02ID:???AAA!CafeでのMySQL接続確認ならこの3行でOK
<?php
$link = mysql_connect("mysql?.aaacafe.ne.jp:3306","user","pass");
echo mysql_ping($link))?"MySQLと接続されています。":"MySQLと接続されていません。";
mysql_close($link);
?>
後は人に頼らず、自分でカスタ〜ムするべし。
後、MySQLでは正規表現探索が出来ますから、色々便利な部分も多いですよ。
0696nobodyさん
04/09/10 00:20ID:GObesny2そのページにあるテキストボックスの中に文字を変えたいのですが
どうすればいいのでしょうか?
あと、質問する場所がおかしいかもしれません。
申し訳ありません。
0697nobodyさん
04/09/10 00:30ID:???0698nobodyさん
04/09/10 00:41ID:GObesny2やっぱりここで聞く質問じゃないですか?
0699nobodyさん
04/09/10 00:52ID:???http://pc5.2ch.net/test/read.cgi/php/1065151808/
ここかな?
0700nobodyさん
04/09/10 00:56ID:???ご迷惑お掛けしてすみませんでした。
0701nobodyさん
04/09/10 03:33ID:???↑ここの例1をwindowsで動かしてみたんですが、
そのままだと接続した瞬間シャットダウンしてなにもできません…
試しにsocket_read のPHP_NORMAL_READをPHP_BINARY_READに変えてみたんですが、
そうすると今度は動くには動くんですが、一文字入力するたびにレスポンスがあって、
'quit'と入力することができません。
なにかまともに動かす対処法はないでしょうか
0702701
04/09/10 06:00ID:???0703nobodyさん
04/09/10 10:11ID:???一つ作るのに3日くらい試行錯誤しながら
作ることもありまつ。
できあがったとしても、マッチはするものの
それで合っているのか不安です。
助けてください
0706703
04/09/10 10:35ID:???0709nobodyさん
04/09/10 11:52ID:e5AaNUbi一朝一夕にマスターできると思うな。
0710軟式PHP
04/09/10 12:58ID:???0711703
04/09/10 13:22ID:???よく不安になるので・・・
正規表現が楽しめるようになるよう
がんばりまつ(`・ω・´)
レスありがとう。
0712nobodyさん
04/09/10 13:42ID:???とりあえずこんなスレも有るぞ
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g
http://pc5.2ch.net/test/read.cgi/php/1069245758/
0714686
04/09/10 18:22:40ID:???mysql_connect(...) or die(mysql_errno().":".mysql_error());
としてためしてみると、
2003:Can't connect to MySQL server on 'hostname' (0)
となりますです。
tcpdumpしてみると正常に接続できるときとは異なるパケットが飛んできてるようだけど、
だからといってどこを直せばわからん。
よくわからんので、MySQLのクライアントライブラリから
コンパイルしなおすことにするです。うーむ。
0715nobodyさん
04/09/10 18:32:16ID:???Regexp Tester
http://www.bitesizeinc.net/index.php/regexp.html
0716nobodyさん
04/09/10 19:39:21ID:???ブラウザの戻るしてもちゃんと表示されてるんだけどどうやってるんだ?
0718nobodyさん
04/09/10 19:54:27ID:???戻ったら期限切れで表示されないよね。
0720軟式PHP
04/09/10 23:39:59ID:???0721nobodyさん
04/09/11 08:14:04ID:???header()じゃだめだし、ini_set()でもそれらしいオプションが見つからん。
やりたいことはCGI版をコマンドラインで実行させたときに余計なHTTPヘッダを出力しないってだけなんだけど。
-qオプションを使いたいところなんだが、
#!/usr/env/php -q
としたら
/usr/bin/env: php -q: No such file or directory
と出て怒られた。
0722nobodyさん
04/09/11 09:09:35ID:???CGI版の PHP がどこにインストールされているのか知らないけど。
env を使わずに
#!/usr/bin/php -q
とか
#!/usr/local/bin/php -q
にしてみれば?
0724nobodyさん
04/09/11 12:18:59ID:???オイラはgoo blogは使ってないから想像で書くけど、
POST後にブラウザの戻るを使われて困る場合は、
POST処理後にheader("Location: 〜".SID) を使ってGET扱いにさせる。
0725nobodyさん
04/09/11 13:15:27ID:1u0p7mhsphpMyAdmin-2.6.0-rc2.tar.bz2を解凍して
phpMyAdminと名前を変えてhttp://localhost/phpMyAdmin/
でアクセスすると
扱えない拡張子のファイルです,
PHP の設定をチェックしてください。
というメッセージがでて使用できません。どうすればよい
でしょうか?
0727sasa
04/09/11 14:34:22ID:1u0p7mhsphp.iniを調べてもそれらしき場所が見当たりません。
httpd.confも.php登録してますし・・・
なんで扱えない拡張子なんだろ・・・
0728sasa
04/09/11 15:06:32ID:1u0p7mhs0729nobodyさん
04/09/11 15:35:49ID:???それを下げるのは解決法としてはあんまり良くないな。
>>725のエラーメッセージらしきものをググってみても全然ヒットしないんだけど、
何か隠してることは無い?
0730nobodyさん
04/09/11 15:52:16ID:yl69/FM+日付、昨日のカウント数、今日のカウント数、総カウント数
という形式で保存、総カウント数を出力しています。
保存はflock→fputs→fcloseです。
病的リロードに耐えうるカウンタは、どう作ればよいのでしょうか。
コツなどありましたら教えてください。
0731nobodyさん
04/09/11 16:05:03ID:???課されていれば壊れるときは壊れる。
flockで保護できるのは同時書き込みだけ。
0733730
04/09/11 16:13:43ID:yl69/FM+壊れるのはどうしようもないということですので、
2重カウント禁止に修正したいと思います。
731さん、732さんありがとうございました。
0734nobodyさん
04/09/11 16:15:07ID:???/usr/bin/phpでも/usr/local/bin/phpでもどちらでも動かせるようにしたいんで。
>>723
もちろんそうなんだけど、どちらがインストールされてても動くようにしたいので。
だって、「HTTPヘッダを出力しない」ってだけだから、それくらいの機能あるだろうと思うのだが。
それくらいの機能さえ見つけられないおれがへたれなんだがな。
0735nobodyさん
04/09/11 16:45:45ID:???HTTPヘッダの出力抑制は-qオプションであってるよ。
まあ一部抑制しきれてない(エラーかなにかだったかと)部分はあったと思うけど。
エラーでてるのはオプションの与え方とか、実際にファイルがなくて出てるんじゃないの?
0736nobodyさん
04/09/11 16:52:30ID:???そんな制限のないものもあったような気もするが。
>/usr/bin/phpでも/usr/local/bin/phpでもどちらでも動かせるようにしたいんで。
特に ruby の人はこの傾向が強いけど、個人的にはやっちゃいかんと思う。
↓こうすればできるようだけど、オススメはしない。
#!/bin/sh
sed 1,3d "$0" | php -q -- "$@"
exit
<?php
phpinfo();
?>
0737nobodyさん
04/09/11 16:59:08ID:???0738nobodyさん
04/09/11 17:20:54ID:???abcabcヂツテ
これって仕様ですか?
0739nobodyさん
04/09/11 17:39:36ID:???0740nobodyさん
04/09/11 17:39:49ID:iOhe01Jz仕様です。
と答えれば満足するのか?
0741nobodyさん
04/09/11 17:41:32ID:2sNlQMEVstrtolowerはマルチバイトには対応してないよ。
mb_strtolower使いな。
0742738
04/09/11 17:42:10ID:???文字コード指定してあげたら
ちゃんと動きました
0743nobodyさん
04/09/11 17:43:38ID:???仕様というか、ある意味海外製ソフトウェアの宿命。
2バイト文字がShift_JISコードの場合の文字コードは、
A → 41
B → 42
C → 43
ア → 83 41
イ → 83 43
ウ → 83 45
で、内部にAとかを内包してるから。
最初から2バイト文字を配慮して作られてるソフト以外ではそのまま変換してしまう。
PHPもしかり。
試してないけどttp://jp.php.net/manual/ja/function.mb-strtolower.phpはどう?
mbstringモジュールが有効でPHP4.3.0以降ならの話みたいだけど。
0744738
04/09/11 17:46:06ID:???>>741
オラクルのlowerと同じ仕様の関数を探してました
ありがとうございます!
4.3からmb_strtolowerがあったんですね。
0745nobodyさん
04/09/11 18:27:55ID:jQgqezNj使用しているサーバのGDがGIFに対応していないので困っています。
PHPを使ってGDを使わずGIFを読み込み作成は出来るのでしょうか?
みなさんはPHPでGIFを扱うときどうしているのでしょうか?ご教授ください
0747nobodyさん
04/09/11 18:38:14ID:???GIFの読み込みだけはGIFの特許問題と関係なく結構前のバージョンから対応している
まあいずれにしても、入れ替えるに同意
古いバージョン使っててもろくなことないし
0748nobodyさん
04/09/11 18:39:50ID:jQgqezNjありがとうございます。
さっそく、管理者にメールで要望してみます。
非常に助かりました
0749nobodyさん
04/09/11 18:55:13ID:onw6fTqiどのようにすればできますか?
header の location で遷移はできましたが、
hidden とかのパラメーターが渡らないんで困ってます。
? やセッションを使って渡してもいいかと思いますが、
他の方法があったら教えてくださ〜い。
今は、ファイルBをファイルAにインクルードして対処してます。
0751nobodyさん
04/09/11 20:30:46ID:jF+qSLdIPHP+apache+MySQLで組んだWEBアルバム(写真)があるのですが、携帯メールに
添付されている写真データを自動的にデータベースに登録する方法がピンときません。
できる方法ありましたら、大まかなイメージで結構ですのでアドバイスください。
現在、Postfixを入れ、画像付のメールが~/MailDir/newディレクトリに保存されて
いるところまで確認できてます。
■ このスレッドは過去ログ倉庫に格納されています