【PHP】質問スレッドpart26【php】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
04/12/21 22:34:55ID:???0856854
05/02/22 13:51:59ID:d7ashhNpレスどうもありがとうございます。
set_time_limit(3);
$a = (@fsockopen("www.hogehoge.jp", 80, $errno, $errstr, 3)) ? "オンライン" : "オフライン";
print $a;
としても、「オフライン」の場合には結果表示にデフォルトのタイムアウト時間までかかってしまいます。
即座に表示することはできないでしょうか。
上のスクリプトでは処理を3秒でタイムアウトさせて結果を表示させたいと考えているのですが。。
(上のスクリプトでは、オンライン/ドメインが存在しない場合は即座に表示されます)
0858nobodyさん
05/02/22 17:58:06ID:RE6B17ts例えば、C だと以下のようなことは御法度です。
char* func(){
char *abc = "abcdefg";
return abc;
}
PHPではこんなこと出来ますか?
function func(){
$abc = "abcdefg";
return $abc;
}
0859858
05/02/22 18:03:01ID:???すみません、ちょっと質問の仕方を間違えました
PHPでは関数の返り値に、CでいうAuto変数のポインタを返せますか?
0860858
05/02/22 18:13:34ID:???仕切り直します。
PHPでは関数の返り値に、CでいうAuto変数のポインタを返せますか?
例えば、C だと以下のようなことは御法度です。
char* func(){
char abc[] = "abcdefg";
return abc;
}
PHPではこんなこと出来ますか?
function func(){
$abc = "abcdefg";
return $abc;
}
0861nobodyさん
05/02/22 18:27:01ID:???そもそもPHPにはポインタという概念がないので...
変数そのものを指し示す必要があるなら、「リファレンス返す」かな。
0862858
05/02/22 18:35:13ID:???私の「参照」の概念がイマイチなのが問題のようです。
すみませんでした。
0863nobodyさん
05/02/22 18:46:16ID:???http://www.php.net/manual/ja/language.references.php
0865nobodyさん
05/02/23 20:36:20ID:???どなたかヘルプお願いします。/home/foo/lib/ext/pear以下に、全てのライブラリをまとめようと思っています。
$ wget http://go-pear.org -O go-pear.php
...(略)...
$ php go-pear.php
...(略)...
1. Installation prefix : /home/foo/lib/ext/pear ← ここを任意のディレクトリに変更
...(略)...
Would you like to install these as well? [Y/n] : y
Loading zlib: ok
Downloading package: PEAR-stable......ok
Downloading package: Archive_Tar-stable....ok
Downloading package: Console_Getopt-stable....ok
Downloading package: XML_RPC-stable....ok
Bootstrapping: PEAR...................(remote) ok
Bootstrapping: Archive_Tar............
Warning: mkdir(/tmp/gope11Ui8e/Archive): File exists in /home/foo/bin/go-pear.php on line 622
(remote) ok
Bootstrapping: Console_Getopt.........
Warning: mkdir(/tmp/gope11Ui8e/Console): File exists in /home/foo/bin/go-pear.php on line 639
(remote) ok
Downloading package: DB...............ok
Downloading package: Net_Socket.......ok
Downloading package: Net_SMTP.........ok
Downloading package: Mail.............ok
Downloading package: XML_Parser.......ok
Downloading package: PHPUnit..........ok
Fatal error: Undefined class name 'pear' in /home/foo/bin/go-pear.php on line 675
となります。何かヒントがあれば幸いです。
0866nobodyさん
05/02/23 21:59:50ID:???してみるとか。...面倒か。
0867nobodyさん
05/02/24 03:10:14ID:/1etLdeQエラーを修正することが急務ですが、何よりも、このエラーログの肥大化をストップするように言われました。
あちこち探したのですが、見付かりません。
エラーレポートを吐き出さないようにする方法はありませんか?
0871nobodyさん
05/02/24 07:09:09ID:???配列丸ごと書き換えることはできないんでしょうか?
変数をひとつひとつ書き換えていて、発狂寸前です。
0874nobodyさん
05/02/24 09:20:42ID:???array_map()使わなくても「変数をひとつひとつ書き換え」る馬鹿は、そうはいないと思うけど。
0876nobodyさん
05/02/24 11:54:17ID:???発狂しそうな方法ってこれ位しか思いつかないんだけど、まさかこんなの?
$data['sono1']=htmlspecialchars($data['sono1']);
$data['sono2']=htmlspecialchars($data['sono2']);
$data['sono3']=htmlspecialchars($data['sono3']);
$data['sono4']=htmlspecialchars($data['sono4']);
:
:
ずっと続く
他にあったら知りたい。つーか、普通にループを使う方法しか
思いつかなくて、これ以上効率の悪い方法が考え付かん。
0877nobodyさん
05/02/24 12:00:20ID:???if (!is_array($val)) {
$_POST[$key] = htmlspecialchars($val);
}
}
変数をひとつひとつ書き換えるよりはループで回したほうが
0878nobodyさん
05/02/24 12:01:13ID:???return htmlspecialchars($array);
}
$_REQUEST = cnv($_REQUEST);
0879nobodyさん
05/02/24 12:26:48ID:???{
if (is_array($arr)) {
return array_map('tag_escape', $arr);
}
return htmlspecialchars($arr);
}
0880nobodyさん
05/02/24 14:54:07ID:???>>879が書いてる関数(俺も全く同じものを書こうとしてた)ぐらいは思いつくだろ?
ていうかこのソース、以前PHP MLにも投稿された事があるはず。
>>878
何の釣りでしょうか?
>>876
多分そういうレベルだと思った…
>>877かもしくはforeach使う事ぐらいは思いつけないと…
0881nobodyさん
05/02/24 15:37:12ID:3qj1XZqF外にはSJISで表示しているのですが
EUCで書いたphpファイルから
SJISで書いたview用phpファイルをincludeすると
コードが混在するので問題になる気がします。
(実際、タイミングによって時々エラーが出ました)
こういう場合の定石的な解決方法を教えて下さい。
0883 zzz
05/02/24 16:03:00ID:???下記のような動作(1〜3)を行うシェルをphp(ブラウザ)から動作させたいのですが…
どのように記述したらよいのか何かヒントをください。
1.wget で 圧縮されたファイルを固定したディレクトへダウンロード
2.ダウンロード後、そのまま解凍。
3.解凍後、ダウンロードしたデータは削除
シェルを実行するときだけ 必要なコマンドのみ root 権限を与える方法は
理解できそうなんですけど…
さっき 9ten社
0885nobodyさん
05/02/24 16:13:54ID:???(a)ブラウザ(クライアント)、(b)PHPを動かす鯖、(c)ダウンロード元(鯖) があって、
(a)から(b)にアクセスすると(c)の圧縮データを取りに行って
(b)で解凍して〜
ってことかい?
0886nobodyさん
05/02/24 16:28:52ID:???組み込み関数でarray_map_recursiveができたらいいなあ。
0887nobodyさん
05/02/24 16:43:09ID:???取得がエラーになった時などの処理を除けば
そのまま書けばOKですよ。
解凍できるフォーマットで、コマンドラインツールがあるとしてだけど。
解凍先の指定(展開方法)のオプションとかはツール毎に調べてね。
0888nobodyさん
05/02/24 21:36:15ID:???875 が言いたいのは
$array['a']['x'] = '123';
$array['a']['y'] = '456';
$array['a']['z'] = '789';
$array = array_map('htmlspecialchars', $array);
ということじゃない?checkbox とかで。
再帰で書くしかないよね。
0889nobodyさん
05/02/24 22:37:21ID:???0892nobodyさん
05/02/25 13:57:09ID:mvGHDRpG外部サーバーへ接続して、そのステータスが404か403か302などかどうかの値を取得したいのですが、
当方xreaの為、fsocksopenが使えません。代替となりえる関数はなんでしたっけ?
0893nobodyさん
05/02/25 14:52:48ID:1JhQtPgY0894nobodyさん
05/02/25 16:55:01ID:ExbvFDBohttp://www.amazon.co.jp/exec/obidos/ASIN/4797321288/250-0184447-4333015
これを買おうと思って本屋でチラ見したのですが、サンプルの内容は
phpのバージョンが古くて、たしか4.2.2用のものでした。
この本、今つかえるのでしょうか?それともこれ買うくらいならバージョン5の本を
かったほうがいいのですか?助言お願いします。
0895nobodyさん
05/02/25 17:10:32ID:???「サンプル」をどのように考えてるかによる。
そのまんま入力して動かないと駄目な人はやめときなさい。
プログラムの作りをみて自作の「きっかけ」に使う場合には
古くても充分役立つ。
0896nobodyさん
05/02/25 18:00:16ID:???カテゴリも50近くあるのでそれくらい対応しているものがよいのですが。
0897894
05/02/25 18:00:36ID:???ありがとうございます。「10日で覚える〜」から
1段階上の本を探してまして、勉強のために使おうと思ってたので、
買ってみます。
0898nobodyさん
05/02/25 19:15:03ID:sDC3ZZ80ば→は
ぱ→は
っ→つ
のように変換したいのですが
例 らっぱ→らつは
StrTrを使って文字を羅列すると"ぅ"が"い"に変換されてしまいます。
どのようにすればうまくいくのでしょうか。
0899892
05/02/25 19:23:54ID:mvGHDRpG0900892
05/02/25 19:27:37ID:mvGHDRpG<?php
$ch = curl_init ("http://www.php.net/");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_exec ($ch);
$info = curl_getinfo($ch);
echo $info['http_code'];
curl_close ($ch);
?>
お騒がせしました。時間掛かりましたが解決です。
0901nobodyさん
05/02/25 19:41:15ID:ZiS1ZtFaこれだと動きません。どうやったらいいのでしょうか?
if($line == "text"){
print "txt\n";
}
0902nobodyさん
05/02/25 20:35:18ID:???0903nobodyさん
05/02/25 20:40:30ID:???とりあえず、下のように書いたら希望通りになるのですが、 {} 当たりがダサいので…。
ifの反対の命令は無いんですか?
<?php
X=1
if X==1 {}
else { echo "Xは1じゃないですよーっと。"; }
?>
0904nobodyさん
05/02/25 20:47:06ID:mvGHDRpGたぶん誰もレスしないだろうからしようw
<?php
$X = '1';
if ($x != '1') echo 'Xは1じゃないですよーっと。';
?>
以上。解決。
0907nobodyさん
05/02/25 22:31:34ID:QqsT661L新たにMYSQLを入れたので
今入っているPHPにMYSQLをアクセスできるように
configureしようと思うのですが
どうやったらいいのでしょう・・・
0908nobodyさん
05/02/25 22:40:37ID:???DBの作成と新規ユーザの追加を、
Webサイト上(HTML+PHP)で行いたいと思っています。
MySQLのデータベースクリエイトと、新規ユーザの追加を
PHPで操作することは出来ないのでしょうか?
出来るのでしたら方法を教えて頂きたいのですが。
よろしくお願いいたします。
0909903
05/02/25 23:01:55ID:Snm78iCrくだらない質問にレスして頂きありがとうございました。
「==」じゃなくて「!=」にしてば解決ということですね。
0912nobodyさん
05/02/25 23:57:42ID:QqsT661Lphpize
./configure (オプションは作成するモジュールによって異なる)
make
ですね。。。
明日標準拡張モジュールを入手しやってみます!
超うれしいです!感謝です!
0913nobodyさん
05/02/26 20:50:00ID:LIYJX+3jコンストラクタの中で、
$categoryname = $_REQUEST['categoryname'];
とすると
Undefined index: categoryname
となってしまいます。
クラスの中で、$_REQUESTの値を代入するにはどうすればいいのでしょうか?
0914nobodyさん
05/02/26 22:29:38ID:???いや、NOTICEが出てるのって$categorynameじゃなくて$_REQUEST['categoryname']だろ
ここを参照
http://pc5.2ch.net/test/read.cgi/php/1107780435/644-
0915nobodyさん
05/02/26 23:45:28ID:dKMEUCyI0916namazu
05/02/27 00:34:06ID:l905ORwG0917nobodyさん
05/02/27 00:40:16ID:061SWsicバイナリデータの生成、編集は出来ますか?
0918nobodyさん
05/02/27 00:41:52ID:???サーバにxslt周りがインストールされてれば、別に悪くは無いと思うけど。
XMLが別にあって、ってんなら楽勝。
XMLもPHPで作るってんなら、素のPHPだけでは大変かも。
PEARのXMLから自分にあったのを見つけるか、自分でXML構築classを書くかしないと
スクリプトの見通しが悪くなるなぁ…
あぁ、DOMXMLもあるかぁ。
0919917
05/02/27 01:43:53ID:???0920nobodyさん
05/02/27 02:58:09ID:???PHP4 で作成した Namazu モジュールは PHP5 では動かない。
CVS から Namazu モジュールのソースを取ってきて PHP5 の phpize を使用して
コンパイルすれば使えるはず。
0921nobodyさん
05/02/27 03:44:49ID:???0922916
05/02/27 04:06:08ID:f/BfgIj2ありがとうございました。
「ftp://night.fminn.nagano〜」
は使えなくなってるし、cvsのリポジトリ見ても
古いままだったし・・・。あーよかった。
名前が「php4_namazu」なので、てっきりどうにも
ならないかと・・・
0923nobodyさん
05/02/27 14:06:32ID:Quvh5uNrがわかりません。どなたかご存知の方おりましたら、アドバイス頂ければ
と思います。どうか宜しくお願い致します。
0925920
05/02/27 17:54:12ID:???http://cvs.php.net/pecl/namazu/
を見ると 6 週間前に PHP5 への対応パッチが入っているので、
一応、メンテナンスはされているらしい。
0926nobodyさん
05/02/27 19:35:58ID:KdI7O9Tq追加でmysqlをphpizeでいれようとしているのですが、
configureで
/usr/local/lib/mysql/lib/libmysqlclient.a(my_compress.o)(.text+0xbc): In functio
n `my_compress_alloc':
: undefined reference to `compress'
/usr/local/lib/mysql/lib/libmysqlclient.a(my_compress.o)(.text+0x13a): In functi
on `my_uncompress':
: undefined reference to `uncompress'
のエラーが出てうまくいきません。
調べていくと
これは、クライアントライブラリをコンパイルしたときに、クライアント/サーバプロトコルの zlib サポートが組み込まれていたことを意味します。
-lmysqlclient を指定してリンクするときに、最後に -lz を追加することで解決できます。
とありますが、
何も修正したらいいのでしょうか?
configureの -lmysqlclientの部分に全て -lz をつけても
いつもconfigureは上書きされちゃうようだし・・・
LINUX初心者なんでよろしくお願いします。
0927916
05/02/27 21:19:34ID:f/BfgIj2ありがとうございました。
どなたか(作者?)がヘッダファイル
に手入れてくれてたのかぁ〜。
安心、安心。
ていうかこの拡張モジュールなかったら
結構つらいですもんね・・・
CGIとして呼ぶ、とかしか方法ないんですよね・・・
0929nobodyさん
05/02/28 14:08:59ID:3v+7XYLQつけていませんが
最終的に
export EXTRA_LIBS="-lmysqlclient -lm -lz"
をつけたらうまくいきました。
そっか
./configure に --with-zlib
でもよかったんだ・・・
ありがとですぅ
0930nobodyさん
05/02/28 17:52:56ID:???Fatal error: Call to undefined function: virtual()
が出てしまいます。
どうにかしてvirtual関数を使えるようにすることは出来ないでしょうか。
0933nobodyさん
05/02/28 18:40:49ID:???あるプロシージャを非同期に実行したいのです。
0934930
05/02/28 19:11:25ID:???ご回答頂きありがとうございます。
>>932
参考までに方法を教えていただけないでしょうか。
phpとssiを混在させたページを作りたいのですが、どうにもうまく行かなくて。
0935nobodyさん
05/03/01 01:47:51ID:GFbIljASexec()にどのように書けばいいのかが分かりません
osはOSXを使用しています
どのようにすればいいのか教えてもらえませんか?
もしくは参考になりそうなサイトを教えてもらえませんか?
よろしくお願いします
0936nobodyさん
05/03/01 03:06:47ID:???quicktimeでavi→movする時のコマンドラインオプションを教えてもらえませんか。
残りのPHPの範疇のやりかたは回答できると思いますから。
0937nobodyさん
05/03/01 03:35:54ID:GFbIljAS私もそれがしりたくて書き込みしました
ので分かりません。
0939nobodyさん
05/03/01 07:56:42ID:???0941nobodyさん
05/03/01 11:17:00ID:5YlwQk1PFirefox等だと取得できるのですが、IEで取得できない状態です。
どなたかご教授いただけると幸いです。。
0942933
05/03/01 11:53:28ID:C0SmLfojだとすると、非同期実行は皆さんどうやってますか?
0943nobodyさん
05/03/01 14:12:21ID:???確かに言語仕様上、使えたら便利かもしれんが、
Webアプリの開発ではあまり必要に感じたことない。
0944933
05/03/01 14:51:54ID:???処理に時間がかかるプログラムを切り離して実行させる
時に良く使ています(サーブレットですが)。
# あたり前ですが、ブラウザでタイムアウトをサーバから
# 操作できないので。
0945933
05/03/01 14:57:54ID:???0947nobodyさん
05/03/01 15:37:04ID:???system関数で裏に走らせて、そいつの結果を(σ´∀`)σゲッツ!!ってのなら可能かと。
0948nobodyさん
05/03/01 15:57:50ID:???PECL でこんなのがあるんだけど使ったことはない。
ttp://cvs.php.net/pecl/threads/
--enable-maintainer-zts が必要なのであまり使えそうにないけど。
他の手段は 947 と同じようだけど、CLI 版 PHP を popen() で
実行させて結果を待つとか。
PHP 4.3.0 以降だと stream_set_blocking() が使えるので、
non-blocking モードで処理可能だし。
0949933
05/03/01 16:12:19ID:???今回はPHPのリコンパイルは出来ない環境なのでPECLのやつは
ちょっと使えそうにないです。
やはりforkとかスレッド風の非同期は出来ないのですね。
popen(+非ブロックモード?)でイカせてもらいます。ありがとう
ございました。
0950948
05/03/01 16:58:33ID:???一応 fork は --enable-pcntl を有効にしてコンパイルしていれば
PHP でも使えるんだけど。
ttp://jp2.php.net/manual/ja/function.pcntl-fork.php
ただ、Apache モジュール版では fork は不可能なので、CGI 版か
CLI 版で使うことになる。
0952nobodyさん
05/03/01 19:05:44ID:???Apache/1.3.33 (Win32) PHP/4.3.10 running...
と表示されるのですが実際[htdocs]にファイルを入れて見ると
<? phpinfo() ?>
の指示が実行されません。何か思い当たる原因もしくは解決策はありますか?
0954nobodyさん
05/03/01 20:34:34ID:iwruqR6FPHPで書かれたいろんなソースを読もうと思っています。
任意の行で実行をストップさせて変数の値を表示したいのですが何かよい方法はないでしょうか?
また、ソースを読むときのtips見たいなのがあれば教えてください。
レス数が950を超えています。1000を超えると書き込みができなくなります。