【PHP】質問スレッド Part5
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/09/11 14:15ID:FWA0CpdU■本家
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あたりにきっと誰かが……。
0685678
02/11/02 11:42ID:F92LVFOLありがとうございます。やってみました。
RPMで、potgresql-develを入れたら/usr/include/以下に
「libpq-fe.h」が入りますね。
あとは --with-pgsql オプションでエラーが消えました。
0686nobodyさん
02/11/02 17:19ID:3DCZqrMjmb_send_mailで添付ファイルつけて送らせたいと質問したものですが。
マニュアルを読んで最後の引数になにかヘッダを渡せばいいのかと思い
ましたが何を渡せばいいのかわかりません。
なにかヒントでも結構ですので教えてくださいませ、困り果ててしまいました。
0689nobodyさん
02/11/02 20:52ID:???0690684
02/11/03 12:50ID:8T4O8uvOこれ頭の4バイトが欠けるって話だよね?phpMyAdminが動かないのもこれが原因で、
formタグにenctype="multipart/form-data"をつければとりあえず回避できるという。
これと、漏れの言ってる「%2Bが空白に化ける」という話とはまったく別だと思うのだが・・・
でもとりあえず4.2.3国際版を入れてみるよ。直らなかったら笑いに来るね。
0691nobodyさん
02/11/04 05:17ID:???確か使えない。
{ } で括ってもダメだったよな。
0694nobodyさん
02/11/06 17:35ID:???0695nobodyさん
02/11/07 20:05ID:ETizMt8f$fp = @fopen( "honya.txt", "r" );
while( $record[] = fgets( $fp ) );
fclose( $fp );
for( $i = 0; $i < count( $record ) - 1; $i++ )
$item[] = split( " ", $record[$i], 11 );
echo "honya".$item[0][0]."hoge";
//echo "honya$item[0][0]hoge";
このプログラムだと出力が($item[0][0]=="xxxxx"だとして)
honyaxxxxxhoge
と表示されますが、コメントアウトしている方だと
honyaArray[0]hoge
と表示されます。更にNoticeもでます。(Noticeは設定ででないようにしましたが、、、)
なぜでしょうか?
宜しくお願いします。
0696nobodyさん
02/11/07 21:03ID:???0698nobodyさん
02/11/07 21:34ID:???それともこうやる派? ${xxx}
俺は ${xxx} こうやる派
0699( _。。)_ バタ。 ◆eJlUd9keO2
02/11/07 22:24ID:???クライアント用の socket を 非ブロックモードに設定するには
現状、 fsockopen系の関数を用いて socket_set_blocking関数を使うしかないのでしょうか。
いや、それでも構わないんですけど
socket_createで作ったリソースから非ブロックに切り替える方法はあるのでしょうか?
fgets / fputs を使うのが気持ち悪くて…。
でも socket_set_timeout は fsockopen系ですし… 素直に fsockopen系を使った方がいいのでしょうか。
0700( _。。)_ バタ。 ◆eJlUd9keO2
02/11/08 06:24ID:???何もメッセージが1つも着てない状態だと feof で 止まる……寝よう。
0701695
02/11/08 09:36ID:???${$a[1]}と${$a}[1]の差と同じ事ですね。
Cからきたので、混乱しておりました。
0702(ふ)
02/11/08 14:39ID:???なんだかお困りのようなのですが、僕の環境(php 4.2.2)では
<?php
$fp = fsockopen("www.php.net", 80);
socket_set_blocking($fp, false);
if (feof($fp)) {
print "eof\n";
} else {
print "non-eof\n";
}
fclose($fp);
?>
で普通にnonblockingな動作をしてくれています。なお、お気持ちは分かりますが
socketモジュールをお使いになるのはまだお勧めできません(ころころ仕様が変わるので)。
ちなみに4.3.0からstream_set_blocking()が正解になります。
てわけで環境を教えていただけますか?そしたらもうちょっとお役にたてるかもです。
0703nobodyさん
02/11/08 20:23ID:Vk0CjsjZ遅レスだが外部から読めますよ
自分でスクリプト書いたわけでなく、exciteの翻訳通しただけだけど。
ttp://www.excite.co.jp/world/url/body/?wb_url=http%3A%2F%2Fmessages.yahoo.co.jp%2Fbbs%3Faction%3Dtopics%26board%3D2000247%26sid%3D2000247%26type%3Dr&submit=%83E%83F%83u%83y%81%5B%83W%96%7C%96%F3&wb_lp=JAEN&wb_dis=3&wb_co=excitejapan
ってな風に飛べましたので。
URLの文字列のエンコード/デコードあたりになにかあるんじゃないかと。
0704nobodyさん
02/11/08 20:38ID:Vk0CjsjZttp://x68000.startshop.co.jp/~68user/Cgi-room/source.cgi?mode=body&output=text&url=http%3A%2F%2Fmessages.yahoo.co.jp%2Fbbs%3Faction%3Dtopics%26board%3D2000247%26sid%3D2000247%26type%3Dr
0705nobodyさん
02/11/09 18:55ID:QiNeNmkLグラフを出力するファイルの内容を変更しても
画像が変更されません
例えば付属のサンプルでグラフの数値をいじってみても
はじめに表示した値から変わらないのです
別のファイル名にかえてアクセスすると更新された画像になるんですけど・・・
どなたが原因をご存じないでしょうか?
0706nobodyさん
02/11/09 20:04ID:E2/H+5gTecho "氏んでね?";
?>
0707nobodyさん
02/11/09 20:41ID:???IEのキャッシュとか関係なくて
jpgraph.phpのUSE_CACHEをfalseにすればいいんですね
すみませんでした
0708nobodyさん
02/11/09 22:50ID:???0709nobodyさん
02/11/10 05:02ID:bTPzGvyqsubmitした後に、特定の文字に「\」が付いてしまいます。
例えば
「ソース」という語を送信した時に
「ソー\ス」という具合になってしまいます。
どうしてでしょうか。同じ経験をされた方は意見を聞かせてくれないでしょうか。
特に「\」だけをstr_replaceで取り除くことはできなさそうなので困っています。
もしレンタルなのでサーバーに問題があるのならどうしようもないのですが...
0710709
02/11/10 05:06ID:bTPzGvyq「ソース」という語を送信した時に
「ソー\ス」という具合になってしまいます。
というのは、「ソース」という語を
テキストに書き込む時や、
テキストから読み込んで、printする時のことを指しています。
0711nobodyさん
02/11/10 05:18ID:???相変わらずこのネタもいつまでもあるな。
magic_quotes_gpc をOffにするか、
stripslashesをつかう。
0713nobodyさん
02/11/10 05:59ID:???if(get_magic_quotes_gpc ()){ $xxx = stripslashes($xxx); }
こんな感じにしておけば汎用的。
0714709
02/11/10 07:31ID:bTPzGvyq少し説明不足だったかもしれませんが、
$mes = htmlspecialchars($mes);
if(get_magic_quotes_gpc())
{
$mes = stripslashes($mes);
};
一応このように書いていたんですが、「\」が表示されてしまいました。
710さんの言うように一度EUCで書いてみることにします。
0715709
02/11/10 07:47ID:bTPzGvyqまず文字コードをEUCで書いたところ、問題なく値を渡すことが出来ました。
それで、もう一度コードを見直していたのですが、どうやら思い違いで...。
たしかにサーバー側ではget_magic_quotes_gpc()がオンになっていたようなので
これによってstripslashしていたのですが、書き込むという作業だけにしか適応していなかったです...
ファイルから読み出すときも必要なんですね...(泣)
とりあえず解決できました。どうもありがとうございます。
そもそもどうしてmagic_quotes_gpcがオンになってることがデフォルトなのかわからないのですが...
0716nobodyさん
02/11/10 08:17ID:5LLCZez+海外のphpの掲示板に書き込もうとしているんですけど、画像をアップロードする機能が
ついてるんでやってみると
「アップロードされたファイルは有効なGIFかJPGファイルではありません。
それがそうであることを確認して、再び試みてください」
といわれてアップできないんですよね。gifで保存してもjpgで保存しても。
ファイル名はもちろん半角英語だし、cドライブの直下においてアップしたりもしてるのに、、、
これってどういう問題がかんがえられますか?
ファイル保存の時の問題?(jpgはjpgでもアメリカの形式は違うとか)
よくわからないんでよろしくお願いします。
0717nobodyさん
02/11/10 13:37ID:???0718nobodyさん
02/11/10 15:53ID:???0719nobodyさん
02/11/10 18:41ID:bTPzGvyq0720716
02/11/10 20:48ID:???0721nobodyさん
02/11/10 20:57ID:tAywYbvjXHTMLで下記のように宣言したいのですが、
<?の部分をPHPとして解釈してしまうためか、エラーになってしまいます。
宣言を維持したままエラー回避する方法はありますでしょうか?
<?xml version="1.0" encoding="euc-jp" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?xml-stylesheet href="x.css" type="text/css"?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
0723nobodyさん
02/11/10 21:18ID:toIJMePB寝たでしょうか?
php.iniの設定を見直してみてください。
それか.htaccess内にて(以下略)
0724の
02/11/10 22:00ID:mHx5v26Nでいいのでは。
変に設定で逃げると後ではまったりするし。
---
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
<?php ... にしないとなぁ、と思う今日のこの頃。
でも、<?=...も使えなくなるのは辛い。
0726721
02/11/11 01:22ID:???うっ、何か基本的なことを見落としていたのでしょうか…。
php.iniはいじれません、レン鯖なんで。
.htaccessで設定を変えられるんですか。勉強してみます。
>>721>>724
文字列出力してみます。
みなさんありがとうございました。
0727717
02/11/11 05:55ID:???0728723
02/11/11 20:37ID:Zxaf1apZ0729aiai
02/11/12 13:11ID:4eKOLLvz人生の答えが見つかったも同然である
http://www.tyousa.com
0730nobodyさん
02/11/12 22:19ID:???$fp=fopen("php://stdin", "r");
while(!feof($fp)){$buffer.=fread($fp, 4096);}
fclose($fp);
とかで直接吸い出そうとしたがphp://stdinが空っぽに見えるのだが。
もしかして$_POSTからじゃないと受け取れないの?鬱だ。
フォーム以外からもpostはあるだろうにのお。
0732nobodyさん
02/11/13 08:48ID:???STDINはすでにPHPが読み込んでるので空っぽです
$HTTP_RAW_POST_DATA
は使えませんか。
使えないときは、php.iniがいじれたら
always_populate_raw_post_data = Onに
0733問質
02/11/13 21:09ID:ldABWSGYif(!$foo) の「!」とかですでに躓いているのですが、
逝ってきたほうがよろしいですか?
0736質問です
02/11/13 23:12ID:???パーミッションが777のディレクトリの移動したいのですが
移動されたファイルのパーミッションが600になってしまいます
PHPでどうやって変更したらよいでしょうか?
systemコマンド以外で方法ありませんか?
0737nobodyさん
02/11/14 00:17ID:l0/zicwoforeach(@array){
($a,$b,$c)=split(/<>/);
}
といった
コードは
phpでは
foreach(@array as $value){
list($a,$b,$c)=preg_split("/<>/",$value);
}
でいいのでしょうか?
なんか違うような気がするんですが・・。
0739nobodyさん
02/11/14 08:26ID:wyuVakNT正規表現使わないんだったらexplodeの方が早い
0740nobodyさん
02/11/14 09:18ID:vniA+Llkfopen("file","a")
ってデータ飛ばないって本当なんですかね?
0741nobodyさん
02/11/14 09:44ID:/H/milPrASPのapplicationみたいなやつ。なんかサポートされていない
みたいなんだけどいい知恵ない?
やっぱファイルに書き込むしかない(w
0742nobodyさん
02/11/14 16:57ID:???レンタサーバのsafe mode on な関係で、CGI版PHPをUPしようとしていますが、
CGI版は、内蔵型PHPに比べ遅いとかありますか?
何か他に注意する問題とかありますか?
0743nobodyさん
02/11/14 17:33ID:l0/zicwoかなり遅いと思われ、
それするならperlと変わらん。
abでモジュール版PHPと普通のperlを比べたが
5倍ぐらい違う。
また、PHP アクセラレーターいれると
通常時とくらべて3倍速度が違う。
またCGI版PHPはCGI版perlより遅い、という話もあり
0744nobodyさん
02/11/14 17:37ID:l0/zicwoモジュール入れるべきじゃないかなー
アクセスが多いとCGI版では
プロセスがあがりすぎで
やってられないっていうのもある
0745nobodyさん
02/11/14 17:42ID:l0/zicwoperlで
@array = @array[sort {$array1[$b] <=> $array2[$a] or $array1[$b] <=> $array2[$a]}
0 .. $#array1];
っていうのは
PHPでどうかいたらいいんですか??
0746nobodyさん
02/11/14 18:02ID:???お返事thanx
バーチャル鯖だから、モジュール版をインストは無理と思われ。
というか、モジュール版が入っているのですが、safe mode onなのです。
しゃーないので、CGI版を入れるのです。
遅くてもしょうがないです (T.T)
0747nobodyさん
02/11/14 18:17ID:???0748nobodyさん
02/11/14 19:09ID:???動かしたいスクリプトがsafe mode onでは、動かないのです。
外部プログラム(多分C)を動かすため?
サブディレクトリも作ります。
0749nobodyさん
02/11/14 20:29ID:???ありがと。
調べた所.htaccessにphp_flag always_populate_raw_post_data Onとか書くと
使えるようになる最寄。やっぱ低レベルの処理も出来たほうが便利ね。
0750nobodyさん
02/11/14 21:08ID:???ローカルのマシーンRedhat Linux 7.2 で make した php を レンタルサーバ
(多分turbo)へFTPして動かそうと思ったら、
./php.cgi: /lib/libresolv.so.2: version `GLIBC_2.2' not found (required by ./php.cgi) ./php.cgi: /lib/libc.so.6: version `GLIBC_2.2' not found (required by ./php.cgi)
と怒られた。ローカルが glib 2.2 でサーバがglib 2.1.3 みたいです。
この場合、自分のところのglib を 2.1.3 に下げて make しなおしするしかないんですかねぇ?
それとも configure のオプションで対応できますか?( configure 見てみたけどなさそうな感じではあった。)
または、どこかにphpの各種バイナリがあるところはないでしょうか?
0751nobadyさん
02/11/14 21:27ID:itLwLG8ULinux用はRPMでの配布サイトでいっかしょしか知らない。ゴメソ。
0752nobodyさん
02/11/14 21:31ID:Kk7RsGj1される とどこの解説にもかかれているのですがうちの環境 Win2K&PHP4.2.2
だと$HTTP_POST_VARS[hoge]と配列からしか取り出せません
php.iniあたりを弄ればなんとかなるのでしょうか?
0753nobadyさん
02/11/14 21:50ID:itLwLG8U0754752
02/11/14 22:29ID:Kk7RsGj1ためらわずにやったらできますた、ありがとうございます
副作用がでるかもしれないのでしばらくは試用しますが・・・
0755nobodyさん
02/11/14 22:31ID:cSFACNwV$foo[$i] = $hoge.$i;
}
うぅん、こんな感じで作ったんだけど、
何故か$fooの配列になにも格納されない…
なんででしょう?
0756nobodyさん
02/11/14 22:47ID:???例をあげるとレスがつくかも知れん
0757nobodyさん
02/11/14 22:52ID:l0/zicwo$hoge.$iが妙に評価されてないか?
0758nobodyさん
02/11/14 22:54ID:l0/zicwo0759755
02/11/15 00:01ID:ZlqtGDCCようするに、$foo[0]に$hogeに代入されている文字列と、
0を結合したものを代入したいのです。
それをfor文を使って$foo[1]〜[12]も同じように
繰り返したいわけです…
0760nobodyさん
02/11/15 00:18ID:???12;34;56 a123456 123456z と言う文字列を作ろうと思うのですが
ログに 12;34;56<>a123456<>123456zと書き込んで読み出すのと
123456だけを書き込んで 3つに加工するのとでは
どちらがよい処理方法なのでしょうか?
0762nobodyさん
02/11/15 00:23ID:???誰かmailparse関数( http://jp.php.net/manual/ja/ref.mailparse.php )使ってる人いる?
いまいちよくわからないから参考になるページでもあると助かるんだけど。
0763755
02/11/15 07:02ID:fSn6fMud$year = sprintf("%4d",$today[year]);
$mon = $today[mon];
$nextyear = sprintf("%4d",$today[year]);
$nextyear++;
for($i=1;$i<=12;$i++){
if($mon>$i){
$link[$i] = $nextyear.sprintf("%02d",$i);
}else{
$link[$i] = $year.sprintf("%02d",$i);
}
}
といった感じで、リンクを作成するスクリプトなんです。
現在の日付を取得して、過ぎた月は「?次の西暦年+月」
現在の月と年内のそれ以降の月は「?今年の西暦年+月」
という風にしたいと思っているのですが…
0764755
02/11/15 07:26ID:fSn6fMud0765755
02/11/15 07:27ID:fSn6fMud0766nobodyさん
02/11/15 10:27ID:???$foo = array();
for($i=0;$i<=12;$i++){
$foo[$i] = $hoge;
$foo[$i] .= $i;
}
/* $foo[$i] = $hoge . $i;(半角スペースを間に入れる)でもOKかな? */
0768nobodyさん
02/11/15 17:14ID:mDnEDDpK0769nobodyさん
02/11/15 17:18ID:???0770nobodyさん
02/11/15 17:18ID:C04Zmy+e具体的に書くと、量の多いテキストデータだけを圧縮した別のムービークリップに別けて
おいて、後からその部分を随時差し替えたいのだけど。
テキストデータは掲示板みたいなもんなんで、書き込みがあるたびに内容を随時変更し
たんです。
mingじゃまだ圧縮形式はサポートしてないみたいだし・・・。
0772770
02/11/15 18:16ID:C04Zmy+eご返事ありがとう。
>gzwrite -- バイナリ対応の gz ファイル書き込み
うーん、無理じゃないかと思うんだけどできるの?
圧縮形式の仕様から調べにゃならんかな。
気が重いな、これは。
0773age
02/11/15 19:51ID:???3 5 11
のようにタブ区切りで入っているテキストファイルを読み出し
最初の数字を$one
次の数字を$two
その次の数字を$three
というように数字を変数に入れる方法を教えて頂きたいのですが、、。
0774nobodyさん
02/11/15 20:10ID:???公式マニュアルのsplitみれ。
0775PHP初心者
02/11/15 20:24ID:W2O2vLxrサンプルばかりでチンプンカンプンですヽ(`Д´)ノ ウワァァァン
一から覚えるには、どんな書籍がオススメでしょうか?
雑誌名教えていただけると嬉しいです。
ちなみに当方のスキルは「ショボイホムペ(HTML)」を作れるくらいのレベルです。
0776nobodyさん
02/11/15 21:04ID:???0779770
02/11/15 22:41ID:C04Zmy+eごめん、gzwriteが有効のようですね。
せっかくヒントもらったのに早とちりでした。
何とかその後、圧縮形式はzlibで次のフォーマットというところまで調べました。
・圧縮形式のswfのformat
3 bytes CWS
1 byte version number(06?)
4 byte The size of uncompressed SWF file.(Not just uncompressed block).
remain zlib stream
・通常のswfのformat
3 bytes FWS
1 byte version number(05?)
4 byte The size of SWF file.
remain data
圧縮形式のswfは9バイト目以降が通常のswfをzlibで圧縮して入れてあるというこ
とでいいのでしょうか。
あとは目的のデータがどんな形で収められてるかですね・・・。
しかし、この手のことを手っ取り早く調べるにはどうすりゃいいんだろ。
今は何でもgoogleで必死に調べてますけど・・・。
0780nobodyさん
02/11/15 23:45ID:tDKzSlcQPHP徹底攻略(通称マンモス本)あたりはどうでしょう?
わからなくてもとりあえず何か作ってみるのが近道かと。
で、質問。
複数のURLからデータを取得して成形、という処理をしたいのですが
foreach($url as $value){
$data = file($value);
〜いろいろ〜
}
みたいな処理方法だとひとつのURLからデータを取得し終わったあとで
ないと次のURLのデータが取得できず、非常に時間がかかってしまいます。
(データの取得元がかなり重いサイトなので)
同時に複数のURLからデータを取得するというような動作をさせる方法、
もしくは少しでもデータの取得が高速化できる方法はないでしょうか。
0781もん
02/11/16 01:35ID:PWRTZyjL戻ってきますが、
FROM:を設定しているのに、
戻ってきません。
なぜでしょう。
0782nobodyさん
02/11/16 06:46ID:???0783nobodyさん
02/11/16 06:55ID:???サーバの管理者に聞いてみれ。
メールログも見れるし、エラーメールも届いているはずだ(w
0784775
02/11/16 07:08ID:1/sWq2Gmサンクスです(≧∇≦)ノ
今日は本屋へ行く日なので探してみますね。
■ このスレッドは過去ログ倉庫に格納されています