【PHP】くだらねぇ質問はここに書き込みやがれpart9
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/09/03(土) 11:53:32ID:7OO4C5e5ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
0549軟式PHP
2005/09/13(火) 22:19:52ID:???そのページは見てないけど、ダウンロードになるなら
phpのMIMEタイプが設定されていない可能性があるな。
LoadModuleもやってないかも。httpd.confをもう一回見直してみたほうがいいと思う。
0550nobodyさん
2005/09/13(火) 22:36:20ID:???>>549
ありがとうございます。
Apache再起動してみましたが、直りませんでした。
httpd.confもページをみて見直してみましたが、やはり直りませんでした。
どうすれば良いでしょうか??
0551nobodyさん
2005/09/13(火) 22:45:17ID:???0552nobodyさん
2005/09/13(火) 23:03:06ID:/gXbJCT5PHPマニュアルにある方法以外にもっと詳しい情報を
知りませんか?
もし、ありましたら、教えてください。
0553548
2005/09/13(火) 23:03:34ID:???変だね。そのページを見てみたけど別にウソは書いてないし。
Apacheのインストール後の「あなたの予想に反して...」の画面が表示されているのは
確認済みなんだよね?
オマイさんが追加したLoadModule行とAddTypeの行の内容を ***そのまま、何の細工もせず*** に
晒してもらえない?
(そのページからコピペするんではなく、オマイさんのhttpd.confからコピペするんだよ)
0554nobodyさん
2005/09/13(火) 23:12:55ID:???はい、「あなたの予想に〜」の画面は出ます。
追加したのは
LoadModule php4_module c:/php/sapi/php4apache2.dll
と
AddType application/x-httpd-php .php
です。
0555nobodyさん
2005/09/13(火) 23:17:52ID:???貴方の「見直し」が間違ってる可能性が高いかな。
インストール先(インストールの構成)を変えていたり、
ダウンロードしてインストールしたApacheやPHPが説明のものと異なる
そういった場合は記述されている内容を理解した上で適用しないとならない。
その辺が出来てないんじゃないの?
これは動かないという原因ではないが、件のコンテンツの記述で間違っているところがある。
(間違っている人は他にも多くいるが)
>703行 AddDefaultCharset none ←こう書き変える
これではnoneというcharsetを指定することになる。無効にするのだからOffが正しい。
http://httpd.apache.org/docs/2.1/ja/mod/core.html#adddefaultcharset
0556nobodyさん
2005/09/13(火) 23:23:36ID:???0557nobodyさん
2005/09/13(火) 23:25:06ID:???あ、確かにApacheを説明のものと違うバージョンのものを使っていました。。。
説明の物と同じやつでやってみます。
いろいろと教えていただきありがとうございましたm(_ _)m
0558nobodyさん
2005/09/13(火) 23:29:46ID:???0559nobodyさん
2005/09/13(火) 23:43:41ID:???もうひとつだけ質問させてください。
この場合はApacheだけインストールしなおせば、phpはインストールし直さなくて
良いんですよね??
0560nobodyさん
2005/09/13(火) 23:48:49ID:???あとPHPのインストール先とインストールしたパッケージの確認。
コマンドプロンプトで「c:\php\cli\php.exe -v」(小文字のまま)
とした場合の出てくるバージョンとか教えて。
出てこなかったら
・インストール先がその解説通りでない
・インストールしたパッケージがその解説通りのものではない
>>558
メモ帳で修正したのでhttpd.conf.txtになっている。
(修正&上書きだとそんなことはないか)
0561nobodyさん
2005/09/13(火) 23:55:31ID:???下のソースをどのようにすれば良いのでしょうか?
どうかお教えください。よろしくお願いいたします。
while(list($index,$data)=each($data_all)){
if($data[0]) {
print "$index[0]:$data[0]";
}
if($data[2]) {
print "$index[2]:$data[2]";
}
if($data[9]) {
print "$index[9]:$data[9]";
}
print "<br>";
}
0562nobodyさん
2005/09/13(火) 23:55:48ID:???いや、それはPHPの話なので
>はい、「あなたの予想に〜」の画面は出ます。
らしいから、Apacheのインストールは関係ないよ。
説明どおりのバージョンでなくても貴方がインストールした
バージョンに合わせて適切に設定すれば良いだけの話しだし、
新しいバージョンの方が良いでしょ
(ドキュメントはどうしたって陳腐化してしまうものだ)
で、PHPのインストールだけどそこの解説にもあるように
「インストーラはありません」(今は公式のWindowsインストーラ版もあるが)
だから、再インストール云々にはならないよ。
Apacheやphpのデフォルト設定ファイルを変に変更して元に戻したいが
バックアップを取ってなかったとかのパターンは、再インストールして
設定ファイル取り戻す必要はあるかもしれんが。
0563nobodyさん
2005/09/13(火) 23:59:58ID:???「100行あるデータ」ってのは$data_allに入ってるのかい。
それとも$data[x]とかに入ってるのかい?
どっちにせよ if($data[0])とかの判定は怪しいけど。
0564nobodyさん
2005/09/14(水) 00:04:32ID:???100行のデータは$data_allに入っています。
怪しいソースですが全行の表示はできています。
if($data[0])は必要無いですね。。。
0565nobodyさん
2005/09/14(水) 00:12:24ID:???指定されたパスが見つかりません。と出ます。
>>562
でも、どうやれば私がインストールしているバージョンに合った設定になるか分からなくて、、、
ほんと初心者ですいません。
0566nobodyさん
2005/09/14(水) 00:42:48ID:???>指定されたパスが見つかりません。と出ます。
・phpのインストールがおかしい(解説通りでない)
・変更しているApache設定ファイル(httpd.conf)がおかしい。Apache起動時にエラーが出ていない。
の両方。
前者はhttp://www.php.net/get/php-4.3.11-Win32.zip/from/a/mirror
をダウンロードして、解説どおり解凍したフォルダをリネームして
c:\phpのディレクトリになるように設置。
後者は、コマンドプロンプトで「notepad "c:\Program Files\Apache Group\Apache2\conf\httpd.conf"」
と打って、自分がそれまで変更してた内容がちゃんと記述されてるか確認。
0567nobodyさん
2005/09/14(水) 01:01:29ID:???>while(list($index,$data)=each($data_all)){
これを
foreach(range(1,10)){
list($index,$data)=each($data_all);
にするとか
0568nobodyさん
2005/09/14(水) 03:16:11ID:???とか。あんま発想のレベルは変わらんな
どうでもいいけど、配列の要素を行と云うのは少し違和感が
0569nobodyさん
2005/09/14(水) 04:16:19ID:???>>568
レスありがとうございます。
教えていただいたものを改良して
for($i=0; $i<5; $i++) {
に置き換えて、無事動作いたしました。
本当にありがとうございました。
0570nobodyさん
2005/09/14(水) 06:01:45ID:???> for($i=0; $i<5; $i++) {
本当にそこは5なのか?いいのか…
やっぱ「行」と言った場合、コンピュータシステム的な表現では
どう解釈されるのか、一度色々調べて理解してホスィ。
0571nobodyさん
2005/09/14(水) 06:27:53ID:???どのような制御文を書けばよいのでしょう?
0574nobodyさん
2005/09/14(水) 09:48:16ID:m0wxPPXHphplibはphp5で使えますか?
0575nobodyさん
2005/09/14(水) 10:29:40ID:???0577nobodyさん
2005/09/14(水) 11:39:45ID:???0578nobodyさん
2005/09/14(水) 11:49:13ID:???0579nobodyさん
2005/09/14(水) 11:52:01ID:???実は、DBに登録されているもののうち、リンクがあったら、その部分だけ削除したいのです。
$p_string = str_replace ("<a href=\"*\">", "", $p_string);
みたいな事をしたいのですが。
よろしくお願いします。
0580nobodyさん
2005/09/14(水) 11:52:24ID:???httpd.confに文を追加する時に
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
#
# ExtendedStatus controls whether Apache will generate "full" status
最初こうなっているのですが、
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
LoadModule php4_module c:/php/sapi/php4apache2.dll
#
# ExtendedStatus controls whether Apache will generate "full" status
このように付け足すのですか?
それとも
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule php4_module c:/php/sapi/php4apache2.dll
# ExtendedStatus controls whether Apache will generate "full" status
このように付け足すのでしょうか??
0582579
2005/09/14(水) 11:58:23ID:???やはり正規表現でひとつひとつ可能性(英字、数字、時には2バイト文字)をつぶすしかないのですね。
一括で全て対象にできれば便利だと思いましたので。
ありがとうございました。
0585nobodyさん
2005/09/14(水) 12:16:51ID:???使い始めたところです。php5での参考資料が見つからなくて。
>>576
他に似たようなことをするライブラリがあるということですか?
教えていただけませんか?
0586579
2005/09/14(水) 12:18:48ID:???strip_tagsなんていう関数があるんですね。
教えていただきありがとうございます。
ただ、今回はリンクだけなので、正規表現を使わせていただきたいと思います。
0587nobodyさん
2005/09/14(水) 12:38:09ID:???#から始まる行はコメント文として無視されますので
有効にしたい行は先頭の#を削除
無効にしたい行は先頭に#を挿入
0590nobodyさん
2005/09/14(水) 14:01:12ID:???0591nobodyさん
2005/09/14(水) 14:03:51ID:???phplibのセッション管理に興味があったんですが、PDOだとできませんよね?
で、ADOdbってのを見つけたんですが、これってどうですか?
0593579
2005/09/14(水) 14:53:49ID:???とすることで、期待通りの動作をしてくれました。
どうやら私の努力不足だったようです。
ご迷惑をおかけしました。
0594nobodyさん
2005/09/14(水) 14:56:50ID:???上のプログラムを使って画像の貼り付けのプログラムを作成したのですが
画像が下のリンク先のようにおかしくなってしまいました。
(貼付前)・・・http://land.issaigassai.com/cgi/upload/source3/No_0101.jpg (12,874 バイト)
(貼付後)・・・http://land.issaigassai.com/cgi/upload/source3/No_0102.jpg (20,874 バイト)
このように貼り付けた画像がおかしく表示されるのはどういう原因で発生するものなのでしょうか。
なお、貼り付けた環境は以下の通りです。
OS:Red Hat Linux release 8.0 (Psyche)
httpd-2.0.40-11.9
PHP:4.3.2
0595nobodyさん
2005/09/14(水) 15:00:38ID:???phplibやADOdbでは、セッションに保存される情報がDBに格納できるみたいで、それを使ってみようをしているところです。
http://phplens.com/lens/adodb/docs-session.htm
標準だとサーバ上のファイルに保存されるんですよね?
0596594
2005/09/14(水) 15:03:15ID:???以下が使用したプログラムです。
〜〜index.html〜〜
<HTML><BODY bgcolor="#FFFFFF">
<DIV align="center">
<FORM enctype="multipart/form-data" name="pl_info" action="./form.php" method="post">
<INPUT TYPE="hidden" NAME="_template_confirm" VALUE="./form.php">
<table>
<tr><td>画像選択</td>
<td><input type="file" id="upfile" name="upfile"></td>
</tr></table>
<TABLE width="500">
<TR><TD width="250" bgcolor="#FFFFFF" align="CENTER">
<INPUT type="submit" name="SUBMITBUTTON" value="確認画面へ" onClick="NEXT()">
<INPUT type="hidden" name="page" value=""></TD>
</TR></TABLE></FORM>
</DIV></BODY></HTML>
〜〜form.php〜〜
http://land.issaigassai.com/cgi/upload/source3/No_0105.txt
0599nobodyさん
2005/09/14(水) 15:24:23ID:???0600nobodyさん
2005/09/14(水) 15:26:35ID:???0601nobodyさん
2005/09/14(水) 15:27:15ID:xwUqvGFVincludeいじったりしてますがいまいちよくわかりません...
簡単な方法ってあるんでしょうか。よろしくお願いいたします...
0603nobodyさん
2005/09/14(水) 15:46:02ID:???中学生以上ならわかると思ったんだが
れっどはっと8.0のhttpdのひょうじゅんのせっていでは
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 524288
</Files>
となっています。
これはれっどはっとのしっぱいではないでしょうか
わたしはうえのぎょうを
AddType application/x-httpd-php .php
にかきかえました
そしてちゃんとうごくようになりました。
0605nobodyさん
2005/09/14(水) 16:14:26ID:???うえのぎょうってどこにあるんですか?
httpd.confを探しても<Files *.php> は見つからないんですけど・・・
もしかして違う場所を見ているとか・・・
0607nobodyさん
2005/09/14(水) 16:53:12ID:???>>530に書いてある
while (!feof($fp)){
の「!」って何の意味?ヒント教えてください。
0610nobodyさん
2005/09/14(水) 17:03:11ID:???feof($fp) は、ファイルポインタが終端に来た時にTRUEを返す。
(ファイルポインタはfgetsを使う事で終端に向けて進む)
なので、終端に来た時に feof($fp)はTRUE、!feof($fp)はFALSEになり、whileループが終了する。
0611nobodyさん
2005/09/14(水) 17:13:48ID:???なるほどね、tureとfalseで頭がごっちゃになりそうだ。
ありがとう。いつか答えられるようになるまで頑張る。
0612nobodyさん
2005/09/14(水) 17:54:12ID:???場所は分かりました。
でも
LoadModule php4_module modules/libphp4.so
を
AddType application/x-httpd-php .php
に変えても状況は変わりません・・・
うえのぎょうと言われましてもどの部分を変更すればよいのかさっぱり分かりません・・・
0613nobodyさん
2005/09/14(水) 18:12:52ID:???今度はApacheを再起動したらエラーが出てしまったのですが何故でしょうか??
0614nobodyさん
2005/09/14(水) 18:15:58ID:???>>612の変更は論外
該当箇所がないんなら、httpd.confの最後に
AddType application/x-httpd-php .php
入れてやってみれば?
0615nobodyさん
2005/09/14(水) 18:42:59ID:???.htaccessすら触ったことないの?
あと、今までの書き込み内容からしてPHPとHTMLの区別すら分かってねーだろ?
HTMLの基礎から勉強してきな
0616nobodyさん
2005/09/14(水) 19:14:43ID:wrvJu8ADFatal error: Call to undefined function: php_error() in /usr/share/pear/DB/DataObject.php on line 405
ぐぐってもでてこん。php_error
なんかincludeするとかいう問題か??
0617nobodyさん
2005/09/14(水) 19:18:09ID:m0wxPPXH大文字が混ざっていると遷移しても破棄されないんです。
0618617
2005/09/14(水) 19:31:19ID:???大文字だけじゃないと残りません。
0619nobodyさん
2005/09/14(水) 19:31:39ID:???解決しない・・・と思ったらconfファイルは変更した後で再起動をかけないと
変更が反映されないということを知りませんでした・・・
一旦サーバーを再起動させてもう一度確かめてみます。
0620nobodyさん
2005/09/14(水) 19:43:10ID:???0621617
2005/09/14(水) 19:56:30ID:???Firefoxやネスケではちゃんと保存されています。
セッション変数ってブラウザによって挙動が違うんですか?
0622nobodyさん
2005/09/14(水) 19:59:51ID:???既に出力した文を扱うにはどうすればいいですか。
0627nobodyさん
2005/09/14(水) 22:36:01ID:???データを抜き出し、下のソースでその結果を表示しているのですが、
1ページの表示を100件くらいにして、「次のページ」という機能を付けたいのです。
どのようにすれば良いのか、教えていただけないでしょうか。よろしくお願いいたします。
<?php
$fp = fopen("hoge.csv",'r');
flock($fp, LOCK_EX);
while(!feof($fp)){
$data_line = explode(",",chop(fgets($fp, 1024)));
$data_all[] = $data_line;
}
$datatop=$data_all[0];
array_shift($data_all);
flock($fp, LOCK_UN);
fclose($fp);
foreach($datatop as $title){
print "$title";
}
print "<br>";
while(list($index,$data)=each($data_all)){
print "$data[0]";
print "$data[1]";
print "$data[2]";
print "$data[3]";
print "$data[4]";
print "$data[5]";
print "$data[6]<br>";
}
?>
0628nobodyさん
2005/09/14(水) 22:44:54ID:???return (preg_replace ("$bbb" , "$ccc", $aaa);
}
これにもう一つpreg_replaceを追加する場合は
もう一つfunctionを作るの?
0629nobodyさん
2005/09/14(水) 22:54:06ID:???while(!feof($fp)){
$data_line = explode(",",chop(fgets($fp, 1024)));
$data_all[] = $data_line;
}
この部分を以下の方針で見直す。
1.開始行を$_GETか何かで受け取ることを決めておく
2.開始行まで空読み
3.開始行に達したら100行程度読み出して$data_all[]に入れておく
4.ついでにこの先のデータがあるかチェックしておくと吉
0630nobodyさん
2005/09/14(水) 23:05:45ID:???勘で答えてみるけど
function aaa($aaa) {
$aaa = preg_replace("$eee", "$fff", $aaa);
return preg_replace ("$bbb" , "$ccc", $aaa);
}
とでも書けばいいんでないの?
0631nobodyさん
2005/09/14(水) 23:14:49ID:???EUCに城
0632627
2005/09/14(水) 23:23:08ID:???レスありがとうございます。
私にはその方法はかなり敷居が高いです。
つーかわかりません...orz
while(list($index,$data)=each($data_all)){
$indexはまったくの未使用です。
これを使って上手く処理できれば良いのですが…
(print_rで見ると、0から綺麗に連番で並んでいます)
0633nobodyさん
2005/09/14(水) 23:59:54ID:???$indexを使いたいということなら
最初の方で
$page = 2; //表示開始ページ
$start = $page*100;
とでも設定しておいて、
while(list($index,$data)=each($data_all)){
if ($index >= $start && $index < $start+100){
print"$data[0]";
・・・(略)
}
}
みたいにしても動くとは思うけど。
きついコーディングだな('A`)
せめてこうか
for ($i=$start; $i<$start+100; $i++){
$data = $data_all[$i];
print "data[0]";
・・・(略)
}
0634627
2005/09/15(木) 00:10:54ID:???ありがとうございます。
やはり100件だけの表示は早いですね。
これに「次のページ」リンクと
全体のページ数表示&リンクができればいいのですが.....
0636nobodyさん
2005/09/15(木) 00:28:43ID:???断片的に書いてみる。
次のページへのリンクの作り方は
$next = $page +1;
$self = $_SERVER["PHP_SELF"];
print "<a href=\"$self?page=$next\">次</a>";
それを受け取る時は
$page = $_GET["page"];
全体のページ数を計算するなら
$pages = ceil(count($data_all) / 100);
最後のページの処理は要注意かな。
0638nobodyさん
2005/09/15(木) 00:44:34ID:???セッション管理に興味があるならHTTP_SessionやAuthを参考に書いて見るといいかも
http://jp2.php.net/manual/ja/function.session-set-save-handler.php
0639627
2005/09/15(木) 00:52:48ID:???ありがとうございます。
よく見る「次」のリンクができています。
が、最終ページになってもリンクが....(汗)
どこかで打ち止めの呪文を書かないといけないようです。
最後のページの処理とはこのことですか?
0640627
2005/09/15(木) 01:15:18ID:???打ち止めの呪文は、全体のページ数にイコールかそれ以下の時にというif文でできました。
同じく、$page-1で「前のページ」リンクもできました。
残るは、1/2/3/4/.....というような、全ページへのリンクのみとなりました。
0641nobodyさん
2005/09/15(木) 02:52:47ID:???0642627
2005/09/15(木) 03:18:06ID:???最後のページの処理のもうひとつの意味。
100行で括ったまま作業をさせているので、最終ページで3行のみ
表示となった場合に、97行のカスが書き込まれてしまいます。
(<table>で表示させてる場合は、そりゃぁひどいのなんのって..)
そこで、全データ数-(表示ページ×100)の式を書き、
100よりも少ない場合の処理と、100の場合の処理に分岐させ
無事、綺麗に表示することができました。
ヒントをくださった皆様。ありがとうございました。
0643nobodyさん
2005/09/15(木) 03:35:27ID:???もう解決しちゃったようだけど、一応こんなのもあるってことで。
pear::HTML_Pager
ttp://pear.php.net/manual/ja/package.html.pager.php
0644nobodyさん
2005/09/15(木) 03:44:32ID:???strict refs,subsに該当するのは無いかな。
strict varsならerror_reporting(やphp.iniの設定)でE_NOTICEを扱うようにすれば、
初期化されていない変数宣言として通知される。
0645nobodyさん
2005/09/15(木) 04:07:03ID:???0646nobodyさん
2005/09/15(木) 11:19:39ID:yS4KEn1H>>630
function aaa($aaa) {
return preg_replace (array("$bbb", "$eee") , array("$ccc", "$fff"), $aaa);
}
こういう方法もあるでよ。
■ このスレッドは過去ログ倉庫に格納されています