【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あたりにきっと誰かが……。
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サンクスです(≧∇≦)ノ
今日は本屋へ行く日なので探してみますね。
0785age
02/11/16 08:56ID:???$log = 'log.txt';
$data = fopen($log,"r+");
list($view,$click) = split( ",", $data, 2);
print $view;
fclose ($data);
で実行した時 Resource id #1
とポツンと表示されてしまいます。
どうやったら良いのでしょうか?
0786nobodyさん
02/11/16 09:18ID:6U1hYCr1二行目おかしくないか?fopenの返り値は
int
配列に一括代入するのは
fopen($log,"r");
$data=file($log);
したらできる
ちなみに
perlでは
@data=<log>;
って感じかな。
0788770
02/11/16 10:57ID:i0v/7za0ヒント下さった 771様、ありがとうございました。
0789786
02/11/16 12:12ID:6U1hYCr1では
$data = array();
と配列を定義してからやるとどうなるだろうか?
0790785
02/11/16 12:19ID:???ためしに
$data = fopen ($log,"r");
$data = file($log);
print $data;
exit;
print文でテキストファイルの中身を表示しようとしてるんですが
この時点ですでに「Array」としか表示されないんです。
$datas = array(A,B);
$view = $datas[0];
$click = $datas[1];
print ="最初の値は".$datas[0]."です";
とarrayをテキストファイルから読み込まずに、そのまま打つと
うまく表示されたんですが、テキストファイルから読むと「Array」しか
表示されないんです。
0791nobodyさん
02/11/16 12:38ID:???小一時間問い(ry
http://www.php.net/manual/ja/function.file.php
0793nobodyさん
02/11/16 13:16ID:???for($i = 0; $i < count($data); $i++) {
$tmp = split(',', $data[$i]);
echo "$tmp[0]\r\n";
}
0794nobodyさん
02/11/16 15:46ID:???ここを読めば分かるはず。
0795nobodyさん
02/11/16 15:54ID:???http://www.zdnet.co.jp/news/0211/01/nebt_06.html
0796PHPさん
02/11/16 19:10ID:???環境は、Win2k Apache1.3.26 PHP4 です。
$con = mysql_connect("localhost","root","******");
if ($con) {
mysql_select_db("dbdb",$MyLink);
$MyQuery = "SELECT ACCESS_CNT FROM dbdb";
$MyResult = mysql_query($MyQuery,$MyLink);
$MyRow = mysql_fetch_array($MyResult,MYSQL_ASSOC);
echo $MyRow[0];
mysql_free_result($MyResult);
$con = mysql_close($con);
}
テーブルには1レコード存在し、2522 が入っています。
本来なら 2522 が表示されるはずなのですが。。。
何か設定が足りないのでしょうか。
ちなみに、ApacheとPHPは正常に動作しています。
0797nobodyさん
02/11/16 19:17ID:???どこからそう判断したのか?
エラーメッセージがあるなら書けよ。
Warning: Access denied for user: 'root@localhost' (Using password: NO) in i:\internet\web\vip\mai-k\a.php on line 8
Warning: MySQL Connection Failed: Access denied for user: 'root@localhost' (Using password: NO) in i:\internet\web\vip\mai-k\a.php on line 8
Warning: Supplied argument is not a valid MySQL-Link resource in i:\internet\web\vip\mai-k\a.php on line 10
Warning: Supplied argument is not a valid MySQL-Link resource in i:\internet\web\vip\mai-k\a.php on line 12
Warning: Unable to jump to row 0 on MySQL result index 2 in i:\internet\web\vip\mai-k\a.php on line 14
First Name:
Warning: Unable to jump to row 0 on MySQL result index 2 in i:\internet\web\vip\mai-k\a.php on line 16
Last Name:
Warning: Unable to jump to row 0 on MySQL result index 2 in i:\internet\web\vip\mai-k\a.php on line 18
Address:
Warning: Unable to jump to row 0 on MySQL result index 2 in i:\internet\web\vip\mai-k\a.php on line 20
Position:
0800nobodyさん
02/11/16 19:45ID:???0802nobodyさん
02/11/16 20:07ID:???Warning: Access denied for user: 'root@localhost' (Using password: NO)
の意味は調べたかい?
0804名無しさん@お腹いっぱい。
02/11/17 00:22ID:???そんなコードじゃmysqlに
どのデータベースの"dbdb"を使うのか
教えてあげられない
0805nobodyさん
02/11/17 05:10ID:???0806nobodyさん
02/11/17 12:42ID:YRaU2xF9つーか
@RANKING = $RANKING[
sort {$tmp1[$b] <=> $tmp1[$a] or $tmp2[$b] <=> $tmp2[$a]
}
0 .. $#tmp1];
ってなperlの部分をphpになおしたいんだが
だれか教えてくれないでしょうか?
ここで3日も困ってるっす。
0808nobodyさん
02/11/17 15:21ID:ZXiBJBMVソートする {
始めの条件(同じだったら偽になるので、次の条件へ)
次の条件 }
}
0からtmp1の最後まで];
要するに、優先順位がある2つの条件でソートして、配列にいれてるだけ。
0809nobodyさん
02/11/17 15:31ID:???htmlspecialchars()を使えばいいと思いましたが、スクリプト中に数十個以上あるため
全部をいちいちやってられないのですが・・・
各変数に勝手に代入されちゃう前に文字列をまとめて処理する方法はないですかね?
0810nobodyさん
02/11/17 15:34ID:???(・A・)イクナイ!! と思う。
0811nobodyさん
02/11/17 16:04ID:YRaU2xF9正直に申しますと
FFアドベンチャーがあまりに負荷が高いと書いてあるので
PHPにしようとがんばっているところです。
>>808
それをPHPで書く良い方法ないですか?
0812809
02/11/17 16:13ID:???おいおい、俺も作ってるんだけど・・・
$_POST = array_map("htmlspecialchars", $_POST);
これで良いのかな。さすが俺。
0813808
02/11/17 16:27ID:YRaU2xF9どのあたりよ?
こっちは250行目のあたりで
悩んでる。
それ以外は ほぼ完成してる
ここの部分ができれば、後はバクだしして おわりっす。
0814809
02/11/17 16:38ID:???俺はma-tiさんの0.47使ってるからな。
クッキー関連とかロック関連とかまだまだだが。
まあ、まだPHP歴3日だし。
配布するつもりはあるのかな?それなら俺作るのやめようかな・・・
0815808
02/11/17 17:30ID:YRaU2xF9公開できるような綺麗なものじゃない
スパゲティーだから
0.45と0.47って どう違うよ?
0816808
02/11/17 17:42ID:YRaU2xF9EBS お願い
0817809
02/11/17 17:48ID:???>ver.0.47: 2002年4月28日配布開始
>・ソースを最適化して75.2KB→63.1KBに成功!
>・若干早くなったと思います。本当に若干。。。気持ち程度。。。
つまりはあまり変わらないと思う。
俺は公開&配布予定だから、使うんだったら最新版のほうが良いし。
まあ、予定は未定だが。
EBSはプレイしたことないからよく知らん。
0818808
02/11/17 17:52ID:YRaU2xF9ソース公開しますわー
まだ 作りかけのでよいかい?
というか 手伝って
それか ほかに有名どころのゲームをPHPお願いしたい
yomiサーチでもOK
できれば ebs
0819809
02/11/17 18:01ID:???元々俺がPHP化しようとしてる理由は
『自分の改造しまくってるFFAが負荷やばいためPHP化しよう』と思ったが、
既にすごく汚くてとてもやる気がおきなかったため、
とりあえず軽量の原作版から作って
公開してそれから自分の改造したいように変えていこうって考えなわけ。
だからFFA以外は今のところする気はないな。設置してないし。
0820809
02/11/17 18:03ID:???0821nobodyさん
02/11/17 18:06ID:FpRG38IL++++FF ADVENTURE++++
http://pc.2ch.net/test/read.cgi/php/991910275/l50
0822808
02/11/17 18:06ID:YRaU2xF9無料HPを運営していて あまりにFFAとEBSの設置が多いので
負荷がすごくなり、他のユーザー様にご迷惑がかかるので
必要に迫られて作っています。
言わば逆の立場ですね。お互い。
で どうするよ?
0823809
02/11/17 18:13ID:???作りかけでもいいから送ってくれれば俺が作ってる奴も
送り返すよ。俺もランキングの部分はまだ出来てないけど(汗
0824nobodyさん
02/11/17 18:34ID:n7xO86Z7完成の暁には漏れに適価で売ってはくれまいか?
0825PHP初心者
02/11/17 19:18ID:yD7j6+V5皆さん、がんがって下さい(≧∇≦)ノ
0826808(さるる)
02/11/17 19:47ID:YRaU2xF9完成したら
http://cgi.aaacafe.ne.jp
ここで、簡単に設置できるようにする予定なので
がんばります
0827809
02/11/17 19:54ID:???FFAは改造して何ぼですからね。
FFA推奨委員会も寂れているようなので
どんどん推奨していきたいです。
0828nobodyさん
02/11/17 21:11ID:???それは知ってるよ……。
とりあえずPECLのmailparse拾ってきて入れてはある。
で、公式サイトmailparse関数下部のスクリプトを走らせたら
signal 11吐いてapacheの小プロセスが死ぬ。
コマンドラインから実行するとphpがcore吐いて死亡。
諦めるかな……。
0830nobodyさん
02/11/18 17:18ID:???関数名、クラス名、メソッド名の大文字小文字の区別をしないようなのですが、
これを区別させるようにする事は出来ないのでしょうか?
0831nobodyさん
02/11/19 03:59ID:GvT3tsAV区別できれば何かメリットあるの?
自分で読みやすいようにdoSomething(hanyan)みたいにするけど。
0832780
02/11/19 11:50ID:9dfDoISG催促して申し訳ありませんが、よろしくお願いします。
0833nobodyさん
02/11/19 12:28ID:9zdIs68pブラウザ出力するスクリプト中、shell_exec関数を使ってバイナリ版用のスクリプトを呼び出しました。
<html>
<?php
$envs=array("QUERY_STRING","REQUEST_METHOD");
for($i=0;$i<count($envs);$i++) {
putenv($envs[$i]."=".getenv($envs[$i]));
}
$str=shell_exec("sample");
?>
</html>
#!/usr/local/bin/php -q
<?php
echo "こんにちは";
?>
ここで上記$strには「こんにちは」が格納されると思ったのですが、
「X-Powerd-By: PHP/4.2.2 Content-type:text html No input file specified.」
という文字列が格納されてしまっています。なぜなのでしょうか?
($envsからの行を加えたとたんに、このエラーが出力されるようになりました)
Webで調べたのですが、解決策として示されていた--enable-discard-pathでも解決しません
0834nobodyさん
02/11/19 16:03ID:???ImageString ($im, 11, 10, 10, "オマエモナー", $color);
とすると、イメージ内の文字が化けて出てきます。
どなたか宜しくお願いします。
0835sage
02/11/19 23:29ID:aA08ojgXファイルが存在するかを調べるfile_existsというのがありますが、
ディレクトリが存在するかを調べるものはないのでしょうか?
よろしくお願いします。
0837nobodyさん
02/11/20 08:28ID:???file_existだとディレクトリも含まれる。
一般のファイル is_file()
ディレクトリ is_dir()
シンボリックリンク is_link() #Winでは使えない。
0838nobodyさん
02/11/20 10:37ID:???>>832
スレッド使うのが常套手段ですが、PHPではアタリマエのようにスレッドが
使えないので基本的に厳しいです。
ので、シェルを使ってバックグラウンドで走らせるしかないでしょう。「色々な処理」
が何なのかわからないので、もっとメタな解決方法はあるかもしれませんが。
というわけで
$pid = getmypid();
foreach ($urls as $url) {
`curl $url > /tmp/$url.$pid &`;
}
とかして後はリダイレクトされたファイルを処理する、くらいでしょうか。どうやって
個々のcurlが終了したかを判断するのもまた面倒ですが、とりあえずファイルサイズ
見るとかでもいいんじゃないでしょうか?とりあえず、ですが。
最後にファイルを消すのもお忘れなく。register_shutdown_function()とか。
>>830
どーしても、どーしても、とおっしゃるのでしたらパッチ書いて差し上げますが、あんまり
うれしいこと無いと思いますよ。Zend Engine2ではCase Sensitiveにしよう、という話も
あったのですが、後方互換性的に問題ありありということで却下になりました。
メリットとしては
(1)関数やオブジェクトテーブルのlookupが早くなる(今はtolowerして処理してます)。
(2)普通の言語っぽくなる(笑)
くらいしか思いつきませんが。
0839nobodyさん
02/11/20 11:59ID:GqTHpGaWパーミッションは644との認識なのですが、
Hファイルや、INCファイルも644としてよろしいのでしょうか?
また、PHP、H、INCファイルをアップロードするには
転送モードはバイナリ?テキスト?どちらなのでしょうか?
0841nobodyさん
02/11/20 13:26ID:???テキストエディタで開いてテキストファイルだったらテキストモード。
パーミッションは、拡張子だけじゃ分からん。
そのスクリプトでどう扱われているのかによる。
READMEを嫁
0843nobodyさん
02/11/20 18:27ID:eNXAFipWサーバに入っていません。
http://www.thewebmasters.net/php/FastTemplate.phtml
ここから取ってきたモノをincludeしてやろうと思うのですが
誰か他に試した方いませんか?
class.FastTemplate.php3
3が付くのが気になります...
0844843
02/11/20 19:09ID:???http://ns1.php.gr.jp/pipermail/php-users/2001-August/001489.html
この辺を参考にしてみます。
0845nobodyさん
02/11/20 22:56ID:???何を意図していたかと言うと、
メソッドのオーバーロードが実装されるまでのつなぎとして、
function func(&$val)
{
$classname = get_class($val);
switch ($classname) {
case strtolower("MyClass1"):
.
.
case strtolower("MyClass2"):
.
.
}
}
とする時に、strtolower()がちょっと邪魔だっただけなので…
0846nobodyさん
02/11/20 23:33ID:1jUBHxNp今日ウチも自宅サーバーに挑戦しようと思い、
とりあえずWindows-Apache環境でPHP入れて、php動くようになったんですが、
一つ気になることがあるんです。
Apache側の設定で、
LoadModule php4_module c:/php/sapi/php4apache.dll
AddModule mod_php4.c
AddType application/x-httpd-php .php .phps
PHP側の設定で、
;include_path = ".;c:/php/includes;c:/php/pear"
doc_root = "C:/Program Files/Apache Group/Apahce/htdocs"
extension_dir = "c:/php/extensions"
の3行を設定した末、phpinfo()による動作確認でページの表示は認められたんですが、
変数の受け渡しなどが全くできないのです。
たとえば
http://localhost/index.php?query=hoge
のqueryが受け渡されないんです。
Apache環境に変えた理由は和製のAn Httpdを使用していたところ、
同じような現象がありまして困ってます(´・ω・`)
Apacheの.incが認識されていないかとアホなことを考え、
使わない環境も考えたんですが変数の受け渡しだけがどうもうまくいきません。
php.ini側の設定に問題があるのでしょうか。
それとも他に何か設定が必要なのでしょうか?
説明不足かもしれませんが・・・ご教授お願いします( ・∀・)ノ
ApacheのバージョンはApache 1.327です。
0847nobodyさん
02/11/20 23:41ID:???0848846
02/11/20 23:58ID:9aYPHyGQ言い忘れてましたが、現在もレンタル中なんですが、
そちらの方では変数の受け渡しは出来ましたヽ( ´¬`)ノ
0849846
02/11/21 00:06ID:XBf4tF8P言い忘れてましたが、現在もレンタル中なんですが、
そちらの方では変数の受け渡しは出来ましたヽ( ´¬`)ノ
0851846
02/11/21 00:35ID:XBf4tF8Pありがとうございます。
extract($_GET);
ですね〜
0852780
02/11/21 01:07ID:???ありがとうございます。
正直、何を言われているのかサパーリなのですが(;´Д`)
頑張って勉強します。
やっぱスレッド使えないのは痛いですねえ。
ちなみに「いろいろな処理」というのは簡単に言えば
「配列に入れてソート」です。
データが複数のページにまたがっているので全部まとめてしまおうと。
0853nobodyさん
02/11/21 01:15ID:???どうすればいいのでしょうか?
プログラミングとか初心者なんです。
昨日、店に行ってVisualStudioっての買ったのですが
これからどうして良いのか分かりません。
お店の人はこれがあればプログラミング出来るとの事なんですが・・・
0854nobodyさん
02/11/21 01:27ID:???掲示板を作りたいんなら、メモ帳でいいとおもうよ、うん。
0855nobodyさん
02/11/21 01:33ID:???■ このスレッドは過去ログ倉庫に格納されています