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

【PHP】質問スレッド Part4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/06/02 15:32ID:f3afNVBG
レスは気長に待つのが良い感じかも。


<<参考>>

■本家
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を見よう。
0071nobodyさん02/06/07 17:12ID:???
>>70
くだらねえ誤字してんじゃねえよ。
0072nobodyさん02/06/08 03:28ID:u5/r5db4
正規表現で最短マッチするにはどうすればいいのですか?
0073nobodyさん02/06/08 05:59ID:???
PHP のマニュアルを勝手に自分のサーバにおいて
誰でも閲覧できる状態にしても構いませんか?
0074nobodyさん02/06/08 13:53ID:???
>>72-73
タイーホ
0075nobodyさん02/06/08 15:12ID:???
>>74
おまえもまとめてタイーホダ-
0076nobodyさん02/06/08 17:25ID:VO8Wct1A
すいません。質問させてください。
http://php3.de/manual/ja/function.each.php
each って、
$bar[0] == $bar[key] で、 $bar[1] == $bar[value] のよーなのですけど、
同じ値なのだったらkey,valueか、0,1かの
どっちかのペアだけでいいと思うんだけど。
4つある意味はなんで?
0077nobodyさん02/06/08 22:27ID:???
$bar["key"]や$bar["value"]でキーと値を連想配列として使うのと、
list($key,$value)=each($bar);
で通常の配列として使うこともできるからでは?
0078nobodyさん02/06/09 00:39ID:QolOb+V5
質問なんですが。
ネットにアップロードされているファイルをfopenの読み込みモードで読み込んで、それをprintで出力しようとしても
Resource id #1と出ます。

これはどういう意味なんでしょうか?
0079nobodyさん02/06/09 00:58ID:???
…ひょっとして
$fp=foepn("http://****","r");
echo $fp;

とかやってないですか?(汗)
接続IDです。>Resource id #1
00807902/06/09 00:59ID:???
自己レス
>$fp=foepn("http://****","r");

foepnって…(恥
fopenですスイマセン。
0081nobodyさん02/06/09 01:14ID:???
>>79-80さん
・・やってます・・・・
どういう書き方をすればいいんでしょうか?

それと、差し支えなければ接続IDというのも教えて頂きたいのですが・・・。
00827902/06/09 01:31ID:???
マニュアル読みましょ…。
普通にファイルを開くのと同じようにできますよ。
キーワード:ファイルハンドル fopen fread(fgets)
などなど。
fgetsやfreadの例を見た方がわかりやすいかもです。
http://www.php.net/manual/ja/ref.filesystem.php
00837602/06/09 01:34ID:A3vcjjB5
>>77
>list($key,$value)=each($bar);
これって、
$key=key($bar);
$value=current($bar);
next($bar);
と同じことですよね。
となると、listで簡略化できるから、ってことで納得しますです。
ありがとうでしたー。

>>78
レッツphpのチュートリアルにあるやつはどう?
ttp://php.s3.to/tt/tt6.php
00847802/06/09 01:41ID:QolOb+V5
>>82
すいません、よく読んでおいたつもりなんですが・・・出直してきます

>>83
熟読してきます。ありがとうございました。
0085nobodyさん02/06/09 07:06ID:???
何行かある文字列から、
[begin] と [end] に挟まれた部分を
取り出すにはどうすれば良いでしょうか?

-----------------------
あああああ
いいいいいいいいい
[begin]ほげほげ[end]
ううう
ええええええ
おお
-----------------------

だとしたら、「ほげほげ」を取り出したいのです。
分かりにくくてすみません。
0086nobodyさん02/06/09 08:26ID:???
>>85
strpos + substr使うなり正規表現使うなりご自由にどうぞ。
0087nobodyさん02/06/09 13:27ID:A3vcjjB5
PerlからPHPに変えるソフトってない?
JavaからC#に変換してくれるみたいなやつ。
0088nobodyさん02/06/09 14:48ID:???
まだまだ駆け出しなんですが、気になったので質問します。
可変変数ってどういう使い方があるんですか?
0089nobodyさん02/06/09 16:12ID:???
>>85
変数に全行を代入する
[begin]で区切る
[end]で区切る
完
0090nobodyさん02/06/10 18:53ID:WsKMKNfu
php4.2.1にバージョンアップしたら、フォームからメールを送ることができなくなってしまったのですが、どこをどのようにいじったら直りますか?
初心者なのでよろしくお願いします
0091名無しさん02/06/10 21:21ID:???
>>90
phpのバージョンを元に戻してください。
0092nobodyさん02/06/10 21:45ID:WsKMKNfu
>>90
ひ〜っ。
その方法しかないでしょうか、、、。

できれば、emacsとか使うことはできるので、設定ファイルのいじり方とかを教えていただきたいのですが、、、、。
0093nobodyさん02/06/10 21:45ID:WsKMKNfu
>>91でした。
間違えました。
0094戊寅02/06/10 22:47ID:???
>>90
php.ini の register_globals = を on に設定してみてokならば、
http://www.php.net/manual/ja/security.registerglobals.php
を参考にスクリプトを修正する。

sendmail_path = が適切に設定されているか否かを確認。

この2つくらいしか思いつかないっす。

前のバージョンはいくつか? 環境は? スクリプトの具体例は?
などを書くと、識者がアドバイスしてくれると思うです。
0095nobodyさん02/06/11 00:08ID:fQRftcxO
header("Location: http://hoge");
を使うと鯖負担大なの?

既出でしたらすみません。
0096nobodyさん02/06/11 01:40ID:???
>>95
へ?なんで?
00979502/06/11 02:02ID:fQRftcxO
>>96
以前Perlで
print "Location: http://hoge\n\n";exit;
だけのCGI(URL転送のみ)を使ってたら、レンタル鯖屋さんに
高負担かかってますと怒られた事と、

最近PHPで一日7万弱アクセスのページに
header("Location: http://hoge");
これ使ったら、鯖負担がかなり高くなったから…
まぁ、ほかのPHP処理で高くなったのかもしれないけど、
かなり低負担重視で作ったから、あとはコレかな?と…
0098nobodyさん02/06/11 03:57ID:???
>>97
URL転送のみってのが嫌がられたんじゃないの?
print "Location: http://hoge\n\n";exit;は文字列を表示して終了するだけだし。
0099nobodyさん02/06/11 04:10ID:fQRftcxO
>>98
TOPコマンドで高負荷確認済み

>文字列を表示して終了するだけだし
(゚Д゚)?
0100nobodyさん02/06/11 04:19ID:???
>>99
あんたまさかLocationをPerlが理解すると思っているのか?
URL転送ということは他サイトに飛ばしていたんだろ?
010110002/06/11 04:22ID:???
s/Perlが/PerlやWebサーバーソフトが/
0102nobodyさん02/06/11 08:53ID:???
>>99
RFC2616読んで、出直してこい。

>>90
とりあえず引数をハードコーディングした場合、mail関数は成功するか?
以下のスクリプトで成功するなら、メール送信そのものは動いてる。
その場合はmail関数の引数をチェキしる。

<?php
mail( "[email protected]", "Test", "Test" ); //メールアドレスは自分のアドレスに入れ替えれ
?>
0103nobodyさん02/06/11 09:30ID:yLQsThBf
http://www.php.gr.jp
つながんないです。
松下ナントカの圧力でしょうか?
0104nobodyさん02/06/11 14:32ID:g7ykEoe9
>>94,102
返答ありがとうございました。
これからがんばってみます
0105nobodyさん02/06/12 08:39ID:???
class 化すると、どういう良いことがあるのですか?
0106nobodyさん02/06/12 08:54ID:???
>>105
コードの再利用がしやすい。
0107nobodyさん02/06/12 12:14ID:???
オブジェクト指向が分からない〜♪
0108nobodyさん02/06/12 14:07ID:???
>>106
盗用?
0109nobodyさん02/06/12 14:26ID:???
>>108
?
0110nobodyさん02/06/12 16:40ID:???
ああ、携帯用サイトをセッション使ってつくってまった。。。鬱
0111nobodyさん02/06/12 16:45ID:lexh1GXn
phpの使える無料ウェブスペースってないんでしょうか?
0112nobodyさん02/06/12 17:52ID:???
ある。
0113nobodyさん02/06/12 20:14ID:rqNQKIVd
PHPEdit(ttp://www.phpedit.net/)以外の
無料でお勧めの統合環境のソフトないすか?
0114 ◆AngelBlk 02/06/12 20:59ID:???
>113
ZendStudio2.01Personalが非商用に限りだけどフリーになったような。
流石に本家だけあって文字エンコードもSJIS/EUC-JP/UTF-8とか対応してるし
割といいかもしれない。
0115nobodyさん02/06/12 21:34ID:GkccyYwt
>>114

嘘つけ。証拠みせろ。

0116nobodyさん02/06/12 21:44ID:rqNQKIVd
ttp://www.zend.com/store/products/zend-studio-personal.php
これですか?
0117 ◆AngelBlk 02/06/12 22:32ID:???
>115
何が嘘なのかな?

>116
はい、それです。
コード補完もしてくれるし割といいと思う。
ちょっと重い気がするけど。
0118nobodyさん02/06/12 22:42ID:tyywLjto
兆初心者なんですが
PHPの設置はどうすればいいのですか?
教えてください
よろしくお願いします
0119親切な人02/06/12 22:44ID:???

ヤフーオークションで、凄い人気商品、発見!!!

「 RX-2001 」がパワーアップした、
「 RX-2000�V 」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA#.2ch.net/

ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。

ヤフー ID の無い方は、下記のホームページから、
購入出来る様です↓
http://www.h4.dion.ne.jp/~gekiyasu/#.2ch.net/
0120nobodyさん02/06/12 22:52ID:???
>>118
マニュアル嫁
0121nobodyさん02/06/12 22:54ID:tyywLjto
>>120
?
0122nobodyさん02/06/12 22:59ID:???
>>117
Javaですか?妙に重い。
0123nobodyさん02/06/12 23:03ID:tyywLjto
>>118
はリア厨なので英語が読めません
0124nobodyさん02/06/13 00:26ID:???
>>123
PHPのマニュアルは日本語化されてるが‥‥↓
http://jp.php.net/manual/ja/
0125nobodyさん02/06/13 08:17ID:???
>>113
PHPごときで統合開発環境を必要とするとは・・・
0126anonymous02/06/13 16:45ID:???
初心者です。
PHPの"include()"関数をつかって、クライアントのブラウザに
HTMLファイルを表示させてやろうと思うのですが、意図したのとは違う
フレームに表示されてしまって困っています。
TARGETのフレームを指定するいい方法はないでしょうか?

それとも、HTMLのコードの中に埋め込むべきなのでしょうか?
だとしたら板違いですね・・・
0127anonymous02/06/13 16:58ID:???
解決しました。
0128nobodyさん02/06/13 22:46ID:o2iA2r6w
ちょっと教えてください。

$h=array("h6"=>2,"h5"=>7,"h7"=>1);

という連想配列をURLにくっつけて渡したい場合

print("<a href=test2.php?h[]=$h[]>テスト</a>\n");

とやってみてもだめなんですが渡せないんでしょうか?
ずっとやってて煮詰まってしまいました。
0129nobodyさん02/06/13 23:26ID:???
>>128
配列ってそのまま渡せるのかな?
俺はURLにくっつけてやったことはないけど、formからpostで送るときには
foreach($h as $value)
 echo "<input type=\"hidden\" name=\"h[]\" value=\"$value\">\n";
みたいな感じにしてる。
確かに、あんま賢い方法ではないような気もするんだけど・・・
配列をそのまま渡す方法があるなら俺も知りたいので識者の方、おながいします。
0130nobodyさん02/06/13 23:41ID:g7mthRrE
>>129
serializeしてbase64_encodeとか
0131nobodyさん02/06/13 23:58ID:AgZxqh7j
sessionじゃだめですか。
0132nobodyさん02/06/14 01:25ID:WdA4+PT5
Perlでシーザー暗号を利用する時は、
$str =~ tr/a-zA-Z/b-zA-Za/;
ですが、PHPの場合はどうなるんでしょうか?
0133nobodyさん02/06/14 01:27ID:???
safe_mode って何してくれるもの?
0134nobodyさん02/06/14 01:45ID:???
>>132

それシーザー暗号っていうの?その暗号化は知ってるけどそんな名前だとは
初めて知った。
013512802/06/14 10:17ID:HA6GEGFh
>>131
sessionが使えない場合のことを考えて作ってます。
実際にsession使ったバージョンのはできてるんですけどね。
素直にtmpファイルとか使った方が楽なのかな?
0136名無しさん02/06/14 11:43ID:???
>>135
php.iniの設定で、自動でPHPSESSIDを付加してくれる設定があったはず。
クッキーが使えない携帯でもセッションは利用できるはず。
0137nobodyさん02/06/14 17:09ID:???
お初になります。ちと知恵をお借りしたいのですが…

WindowsXPでPHPを勉強し始めようと思っています。
PHPDeviceをダウンロードして自分のPC内で動かそうとしたんですが
PHPを経由してファイルへの書き込みが出来ないのです。
(PHPファイルを読むことは出来ます。)

これについて、書き込みについての権限がないからというヘルプを貰ったのですが
解決方法がわかりません。
XPでインストールしたディレクトリを動かさずに権限を操作することが出来るのでしょうか。
または、この理由ではないのでしょうか。

(他板で誤って質問してしまったのでコピペ流用)
0138 ◆AngelBlk 02/06/14 18:20ID:???
>137
PHPDeviceってなんだろう?
Apacheとか一緒に入れてくれるやつの一種かな?
と思いつつ。

該当部分のソース出さないと答えようがないと思うよ。
0139nobodyさん02/06/14 19:49ID:???
>>138
そうです。PHPとApache、PerlにMySQLがセットになってます。

> 出てきたメッセージが以下。
Warning: Unable to open '' for reading: Permission denied in c:\phpdev\www\fileedit.php on line 6
ERROR: backup failed.
> 書き換え部分のソースを以下に。
<?
$filename = "todo01.txt";

if($submit){
$backupfile = $filename.".bak";
if ( copy($writefile, $backupfile)){
$fp = fopen($filename, "w");
if(flock($fp, 2)){
fputs($fp, $contents);
flock($fp,3);
} else {
echo "ERROR: file lock is failed.<BR>\n";
exit;
}
fclose($fp);
} else {
echo "ERROR: backup failed.<BR>";
exit;
}
}

?>
0140nobodyさん02/06/14 23:20ID:HA6GEGFh
>>136
ありがとうございます。
今マニュアルみたら書いてありますね(^^;
0141親切な人02/06/14 23:45ID:???

ヤフーオークションで、凄い人気商品、発見!!!

「 RX-2001 」がパワーアップした、
「 RX-2000�V 」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA#.2ch.net/

ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。

ヤフー ID の無い方は、下記のホームページから、
購入出来る様です↓
http://www.h4.dion.ne.jp/~gekiyasu/#.2ch.net/
0142nobodyさん02/06/15 12:47ID:???
>>134
おう。シーザー暗号って言うんだよ・・・・・・って、肝心のPHPでのやり方を教えて。
0143nobodyさん02/06/16 00:45ID:i4sSElYH
>>142

レス無いので...

PHPにはtrないですからねぇ(なぜなれpcreにtrがないから)。

<?php
$subject = "stringzZ";
<?php
$subject = "string";
print preg_replace('/([a-zA-Z])/e', 'caesar($1)', $subject);

function caesar($c)
{
if ($c == 'z')
return 'A';
if ($c == 'Z')
return 'a';
return chr(ord($c)+1);
}
?>

こんなかんじで、普通にやるしかないのでは?ってか、普通に
php-usersで聞いたほうが良いと思いますが。
0144nobodyさん02/06/16 01:20ID:8EBDLVWp
「トップ > どこそこ > あそこ > ここ」という表示をするスクリプトを
全てのページの最上部にincludeしたいのですが、
こういう場合どうするのが定石なんでしょうか?
//php.ini にはすでにデフォルトで、auto_prepend_file =prepend.phpとあり、
//prepend.php にはcvsのバージョン番号があるので、
//やはり、これを書き換えるのはさけるべき・・・ですよね?
0145nobodyさん02/06/16 02:19ID:0KeGGR15
>>142
if (!function_exists('str_caesar')) {
function str_caesar($str) {
$from = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$to = 'bcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZa';
return strtr($str, $from, $to);
}
}

if (`which tr` && !function_exists('str_caesar2')) {
function str_caesar2($str) {
return `echo $str | tr a-zA-Z b-zA-Za`;
}
}

/* See
* str_rot13
* mcrypt
* ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/
*/
0146nobodyさん02/06/16 09:40ID:rHOpgHxS
umask(0)とした後に0777でディレクトリを作成するようmkdirしても、
0777で作成できません。
0777で作成するにはどうしたらいいですか?
0147nobodyさん02/06/16 10:12ID:7Bh3fOrx
>>146
http://www.php.net/manual/ja/function.chmod.php
0148nobodyさん02/06/17 02:52ID:sgUmh/XP
正規表現ではなくて、メールアドレスが本当に正しいかどうか確かめるにはどうすればいいですか?
0149nobodyさん02/06/17 03:18ID:???
一般的には実際に送ってみるしかない。
SMTPのvrfyは禁止されてたりするしね。
特定のドメインが対象なら、やりようはあるかも。
相手の振る舞いに依存するのはよくないけど。
0150nobodyさん02/06/17 03:24ID:???
>>148
WebベースのMLの登録の様に、メール送信して返信してもらう。
0151nobodyさん02/06/17 14:09ID:aQhyjpeP
PHPではないのですが、
javascriptでformのタイプを変更できるんでしょうか?
<input type="text" ←の部分。
0152new...02/06/17 16:03ID:/PRHCvov

PHPとMysqlで掲示板をつくりましたが、
書き込んだメッセージの中で、
特定の漢字だけが、文字化けのように表示されてしまいます。

どこに原因があるとおもいますか?
0153↑02/06/17 16:16ID:???
>>152
0154new...02/06/17 16:58ID:MBYnZ3N+
??
0155nobodyさん02/06/18 07:18ID:???
PHP に限ったことではないと思いますが、
改行コードは \r, \n, \r\n の内
どれに統一するのがベストなのでしょうか?
0156nobodyさん02/06/18 10:51ID:???
>>155
普通は\n使わないか?
明示的にCR+LFにしたいときは\r\nではないかと。
\rは単独で使うことはないかと。
0157nobodyさん02/06/18 12:23ID:2kc8v8+B
ローカルでpostmaster -p 7432で起動しているPostgreSQLに
PEARのDBクラスを使ってUNIXソケット経由で接続したいんですけど
DSNをpgsql://user:pass@unix+localhost:7432/dbname
などと書いても接続できません。

標準のポート番号でPostgreSQLを起動した場合はUNIXソケット経由
で接続できるんですけど、どなたか接続させる方法をご存じないですか?
0158new..02/06/18 12:28ID:wwQMWvxU
>>155
TEXTAREAのフォームデータを受信したときに、改行コードに
差が少しでるよ。
win は\r\n
mac は\r
メル鯖はまちまち
0159nobodyさん02/06/18 12:41ID:???
>>152

例えば $content という内容をDBに書き込むとすると

$content = addslashes($content);

とやってからDBに放り込んでみれ。

0160nobodyさん02/06/18 14:12ID:0criPbYz
ttp://tohoho.wakusei.ne.jp/wwwsoft.htm
こちらのgifcat.plをPHPで書き換えてみました。
print(gifcat());
としたところ、失敗してしまいました。
Windowsを使用しているので、バイナリモードで書き出すように
したいのですが、Perlでいう
binmode(STDOUT);
のような処理はどのようになるのでしょうか?
0161nobodyさん02/06/18 14:31ID:JmpSL9X1
>>160
passthru()じゃなかったかな
016216002/06/18 14:45ID:0criPbYz
>>161
御返信どうもありがとうございます。
がんばって文字列関数のところばかり見ていました。

実行してみたところエラーが出てしまいました。
passthruの説明を読んでみたところ、あるコマンドを実行して
結果の最後の行を文字列として返すとあったのですが、これでよろしいのでしょうか?
> <br>
> <b>Warning</b>: Unable to fork [GIF89a] in <b>c:\phpdev\www\image.php</b> on line <b>100</b><br>
imagephpはこの様になっています。
line 99 : $GifCat = new CGifCat();
line 100 :passthru($GifCat->gifcat($files));

関数gifcatは連結したい画像名配列を入れると連結された画像が帰ってくるという
仕組みなのですが、これはPHPにする時になにかミスをしていると考えた方が良いのでしょうか?
0163nobodyさん02/06/18 17:51ID:???
>>162
ttp://www.spencernetwork.org/
こーゆーのあるけど
016416202/06/18 21:26ID:0criPbYz
>>163
ありがとうございます。そちらのスクリプトと見比べて修正したところ
うまく画像が連結して表示されました。

ファイルをオープンする際の
$fp = fopen($file, 'rb') or return("ERROR");
のor return("ERROR")がまずかったようです。
バイナリ表示とか全然違う方向に目が行っていました。
本当にありがとうございました。
0165ちえ02/06/18 21:31ID:zOwUJg6s
だれかいますか
教えてほしいんですけど・・・
インターねとでいろいろみてたら
ヤフーの画面に「NetZany]というのがかってにくみ
込まれてこまってます
どうすれば消せるの?
これってやばいの?
0166nobodyさん02/06/18 21:49ID:???
>>165
完全に板違いなので誘導

くだらねぇ質問はここに書き込め Ver2.16
http://pc.2ch.net/test/read.cgi/sec/1021270127/
0167nobodyさん02/06/18 22:21ID:???
http://www.php.net/manual/ja/function.symlink.php
こちらでsymlink関数を調べていたのですが、この第一引数の
targetというのはどのように設定すればよろしいのでしょうか?
カレントディレクトリにしようと思い、symlink('.', $filename);
としたのですが、以下のようにエラーが出てしまいました。
Warning: SymLink failed (No such file or directory)
016814202/06/19 00:40ID:???
>>143,145
レスありがとん。うーん、結構めんどくさそうだねぇ(涙。
とりあえず、実装してみるよ。ありがとう。
0169nobodyさん02/06/19 09:37ID:???
>>167

./
017016702/06/19 10:43ID:???
>>169
ありがとうございます。
そちらの方も試してみたのですが、同じエラーがでてしまいました。
カレントティレクトリがないということはありえないので、何かおかしな
ところがあると思うのですが、コードは下のようになっています。
$retry = 5;
while (!symlink("./", "lock.lock")) {
     if (--$retry <= 0) { error(); }
     sleep(1);
}
0171nobodyさん02/06/19 11:56ID:wvwPfn4b
http://www.net-newbie.com/support/pdf/PART_2.PDF
PHP4徹底攻略PDF版で勉強中なのですが、
p143からのex4.phpが、うまく動いてくれず困っております。

症状は、次の画面に移ったときに、
$this->offset の値が0に戻ってしまうというものです。
また $this->usersql も空になってしまい、
SQLが実行できず、58行目のifが評価されてしまうので、
このソース(pgselect.ini)の44-45行目、46-47行目に、
$this->usersql = $sql; とだけ追加してみました。
(↑まったく根本的な解決になっていないと思いますが…)
他、記述ミス等は無いと思います。
環境は次の通りです。Apache1.3.24 + PHP4.2.1 + PostgreSQL7.2.1

ご教授よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています