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

くだすれPHP(超初心者用)6

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/04/05(日) 22:04:26ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。

PHP Home Page
ttp://www.php.net/
ttp://jp.php.net/

前スレ
くだすれPHP(超初心者用)5
http://pc11.2ch.net/test/read.cgi/php/1227303362/

関連スレ
PHP総合雑談スレ
http://pc11.2ch.net/test/read.cgi/php/1200314111/
PHP初心者勉強会やらんかね!
http://pc11.2ch.net/test/read.cgi/php/1209137730/
0010nobodyさん2009/04/06(月) 05:34:24ID:???
>>9
いいえ全然
0011nobodyさん2009/04/06(月) 12:58:37ID:???
クラス作ってみたけどよくわからんから、とりあえず全部staticってのは無しな
0012nobodyさん2009/04/06(月) 15:00:03ID:???
PHPで作られたサイトで
画面の上部のリンクをクリックするとURLの末尾のパス名だけが切り替わって
WEBページ(ファイル)名が表示されない画面がありますけど
あれってどうやってるんですか?

【知りたい作り】
http://TEST/URL_DIR_1/
http://TEST/URL_DIR_2/
http://TEST/URL_DIR_3/

【普通に作るとこうなるんじゃない、と思う作り】
http://TEST/URL_DIR_1.php
http://TEST/URL_DIR_2.php
http://TEST/URL_DIR_3.php
0013nobodyさん2009/04/06(月) 15:12:27ID:???
>>12
rewrite

もしくはPATH_INFO使って処理する
0014nobodyさん2009/04/09(木) 10:30:52ID:8oBHOH+F
配列をPOSTして受け取ることは可能ですか?
0015nobodyさん2009/04/09(木) 11:15:47ID:???
うんname="hoge[]"
var_dump($_POST['hoge']);
0016nobodyさん2009/04/09(木) 16:44:52ID:8oBHOH+F
$_POST['"tuzyo_ninzu echo($hiduke)"']

こんな感じにしたいのですが、大括弧内の書き方が分かりません。。
助けてください。。
0017nobodyさん2009/04/09(木) 17:15:02ID:???
>>16
$_POST["tuzyo_ninzu{$hiduke}"]
じゃだめなんか?
0018nobodyさん2009/04/09(木) 17:17:46ID:???
>>16
??
よくわからない

下みたいにどこに何の変数が入ってるのか書いてくれれば答えれれるが
$array[0][0]="";
$array[0][1]="";
$array[0][2]="";
$array[0][3]="";
0019nobodyさん2009/04/09(木) 17:45:35ID:???
任意のURL内のテキストから特定の文字列を探し出し、そのデータを蓄積するプログラムを作りたいと思っています
PHPで可能でしょうか?
ネットゲームの得点を蓄積してランキングをつくりたいのですが
0020nobodyさん2009/04/09(木) 18:14:28ID:???
>>19
可能
0021nobodyさん2009/04/09(木) 18:25:15ID:???
ありがとうございます
その任意のURLの末尾を日にちによって変えて、定時になったら自動で蓄積するというのも可能でしょうか?
0022nobodyさん2009/04/09(木) 18:31:52ID:???
cron使えば可能
それ以外ならちょっと工夫しないと無理
0023nobodyさん2009/04/09(木) 18:35:46ID:???
UNIXですか
レンタルサーバー上で自動実行させたいんですが、無理っぽいですね
どうもありがとうございました
0024nobodyさん2009/04/09(木) 18:41:44ID:???
普通cronくらい使えるようになってるだろ
0025nobodyさん2009/04/09(木) 18:44:00ID:???
そうなんですか?
こういう構想があるだけでPHPについては初歩の初歩くらいしかわかっていないもので申し訳ない
0026nobodyさん2009/04/09(木) 18:49:23ID:???
少なくともXREAは使えたな
使ったことないけど
0027nobodyさん2009/04/09(木) 19:24:50ID:???
とりあえず@pagesというところで借りました
検索するとperlで任意のURL内のテキストから特定の文字列の値を抜き出す方法はありましたがPHPでそれをする方法がわかりませんでした
LWP::Simpleでいいんでしょうか?
0028nobodyさん2009/04/09(木) 19:53:13ID:???
>>24
なってないよ
禁止してるとこもある
0029nobodyさん2009/04/09(木) 21:36:43ID:???
そりゃしょぼいとこだけだ
0030nobodyさん2009/04/09(木) 22:11:46ID:???
なんか自分の見た世界が全てだって言い切る人っているよね
0031nobodyさん2009/04/09(木) 22:13:39ID:???
って言い切ってるわけか
0032nobodyさん2009/04/10(金) 16:56:17ID:???
>>19ですがまったくわかりません
どういう構成にしたらいいか教えていただけないでしょうか
0033nobodyさん2009/04/10(金) 17:04:12ID:???
>>32
オンラインゲームの公式サイトのランキングページから取得するの?
0034nobodyさん2009/04/10(金) 17:04:33ID:???
構成は、ページ取って来て得点抜き出してデータファイルに書き込みするPHPと、
データファイル内容を計算してランキング表示するPHP
0035nobodyさん2009/04/10(金) 17:10:44ID:???
ttp://tenhou.net/stat/rgz.shtml
えっと、このページの例えばsca20090402.log.gzにアクセスして特定の個室ナンバーの成績のみを取得したいのです
それをサーバー上で自動的にやってほしいのです
定時更新が難しいのならそのページにアクセスする度に自動取得、更新でもできればいいんですけど
0036nobodyさん2009/04/10(金) 17:15:27ID:???
誰かがアクセスした毎にそこのサイトに負荷がかかるわけだ
なめてるな
0037nobodyさん2009/04/10(金) 17:21:25ID:???
身内のみ公開のページで数人単位ですしその程度の負荷は想定内だと思うのですが
とはいうものの申し訳ないです
7日ごとに消えていくようなので7日に一回というのでもいいんですけどcronは難しいみたいでして・・・
0038nobodyさん2009/04/10(金) 17:32:53ID:???
アクセス毎にダウンロードいかせるのではなくて
自分の鯖に足りないものだけを取得するようにしたらいい
0039nobodyさん2009/04/10(金) 17:37:36ID:???
えーっと、readfile関数でできますか?
一応Cはやったことあるんですけど触りだけだったんでよくわかってません・・・
0040nobodyさん2009/04/10(金) 17:53:13ID:???
まず$data=file_get_contents($url)
0041nobodyさん2009/04/10(金) 17:54:25ID:???
できるかできないかの前に自分で試してからやろうな
○○がしたいいから○○関数を使ってこういうコード書いたけど動きませんならまだいいが

まだ君は初歩を勉強してない段階だから背伸びはしないようにな
0042nobodyさん2009/04/10(金) 17:55:36ID:???
>>40
バイナリを読むんだからその書き方じゃアウト
0043nobodyさん2009/04/10(金) 17:56:29ID:???
>>40
フラグにFILE_BINARYを指定しないと読めないみたいですよ先輩
0044nobodyさん2009/04/10(金) 17:58:59ID:???
>>42
バイナリ?なんか勘違いしてる?
0045nobodyさん2009/04/10(金) 18:01:42ID:???
ちょっとした値を渡す時に、hiddenでデータの保持をするのが気持ち悪いので
tmpfile()でサーバにテンポラリを作って値をチェックしてから出力してるんですけど
一般的ではないんですか?
0046nobodyさん2009/04/10(金) 18:22:11ID:???
>>44

>えっと、このページの例えばsca20090402.log.gz
0047nobodyさん2009/04/10(金) 18:22:52ID:???
>>45
別にhiddenでもいいよ
0048nobodyさん2009/04/10(金) 18:24:24ID:???
>>46
いやいや確かにファイル名はtarボールっぽいけどページ開いてみ
0049nobodyさん2009/04/10(金) 19:15:51ID:???
データの取得はできましたがそこから特定の文字列を含む一行の抽出をすることができません
文字数が決まっていないのでsubstr()も使えませんし、strpos()と組み合わせてみてもいまいちでした
何か他に関数があるんでしょうか?

>>38さんがいっているのはfile_get_contents()だと全データを取得するけど特定のデータのみの取得もできるってことですか?
0050nobodyさん2009/04/10(金) 19:29:29ID:???
ヒント
fileとexplode
この二つで大雑把に分解した値にできるので少し考えてからまたこい
1時間ぐらいは粘ってからこいよすぐここに聞いて解決しようとするなよ
0051nobodyさん2009/04/10(金) 20:53:44ID:???
EXPLODEが正常に動きません
何故でしょうか・・・
file関数で取得してexplode関数で一行ずつ配列にするってことでいいんですよね?
そこからL○○○○を含む配列のみを書き出すようにすればいいんですよね?
とりあえず載せてみます

$data = file('http://tenhou.net/stat/dat/sca20090402');
foreach($data as $line){
echo $line."<br />";
}
$array = explode("\n", $data);
print_r($array);

0052nobodyさん2009/04/10(金) 20:55:25ID:???
正常に動かないってそれ本気で言ってるの?
0053nobodyさん2009/04/10(金) 20:58:23ID:???
申し訳ないですけど本気でわかりません
0054nobodyさん2009/04/10(金) 20:59:31ID:???
普通初心者ならPHPの標準関数より自分のコードを疑うんじゃない?
0055nobodyさん2009/04/10(金) 21:01:45ID:???
あ、いや、自分のコードのどこかが悪くて正常に動かないってことだったんですけど、
書き方が悪かったですね、申し訳ない
0056nobodyさん2009/04/10(金) 21:04:17ID:???
>>51
http://tenhou.net/stat/dat/sca20090402をブラウザで開いてみろ
0057nobodyさん2009/04/10(金) 21:11:17ID:???
表示されますけど、なにかまずかったですか?

$data = file('http://tenhou.net/stat/dat/sca20090402');
foreach($data as $line){
echo $line."<br />";
}
この部分は正常に表示できています
explodeで除外するのは改行コードでよかったんでしょうか
0058nobodyさん2009/04/10(金) 21:26:32ID:???
ああ、すみません
表示のテストには軽い別のファイルをつかっていたので気付きませんでした、本当に申し訳ありません
gzっていうのは書庫なんですか?
ttp://tenhou.net/stat/raw.shtmlを使うしかないようですね
0059nobodyさん2009/04/10(金) 21:39:38ID:???
>>57
俺の環境ではそれ正常に表示されないけど
0060nobodyさん2009/04/10(金) 21:40:41ID:???
>>59
>表示のテストには軽い別のファイルをつかっていたので気付きませんでした
0061nobodyさん2009/04/10(金) 21:41:52ID:???
まじで?ここに議論の対象として出してるコードと自分のテストコードが違うとか頭いかれてるの?
0062nobodyさん2009/04/10(金) 21:56:54ID:???
>>57

おれがサンプル書いてやるからこれで勉強しろ
↓のをそのまま貼り付けろ

$txt[]="id,name,age";
$txt[]="1,tanaka,10";
$txt[]="2,kinoshita,20";

foreach($txt as $v){
$v=explode(",",rtrim($v));
print_r($v);
echo "<br>";
}
0063nobodyさん2009/04/10(金) 22:26:25ID:???
$data = file('http://tenhou.net/stat/raw.shtml');
foreach($data as $line){
$line = explode("\n", $data);
echo $line."<br />";
}

$txt[]="id,name,age";
$txt[]="1,tanaka,10";
$txt[]="2,kinoshita,20";

foreach($txt as $v){
$v=explode(",",rtrim($v));
print_r($v);
echo "<br>";
}
としたら
Array
〜中略〜
Array
Array ( [0] => id [1] => name [2] => age )
Array ( [0] => 1 [1] => tanaka [2] => 10 )
Array ( [0] => 2 [1] => kinoshita [2] => 20 )
となりました
explodeで区切ってもそれぞれが$v[i]に格納されるわけじゃないんですね
それはわかりましたが本体のほうはどこが悪いんでしょうか
一行ごと取得して改行で区切るというのがおかしいんでしょうか
0064nobodyさん2009/04/10(金) 22:29:55ID:???
>>63
おまえさほんとに基礎から学んだ方がいいよ
0065nobodyさん2009/04/10(金) 22:35:04ID:???
ちょっと舐めすぎてましたね
今回は諦めますわ
付き合ってくださった皆様本当にありがとうございました
0066nobodyさん2009/04/10(金) 22:46:20ID:???
>>65

とりあえず以下の事を学習したらまたこい

if
for
switch
while
変数の扱い
0067nobodyさん2009/04/10(金) 22:48:57ID:???
どうも、そうやって示してもらえるのはとてもありがたいです
何から手をつけていいかさっぱりなので
またきます
0068nobodyさん2009/04/10(金) 22:50:34ID:???
>>66
おまえ言葉はキツイはけっこう良いやつだな
0069nobodyさん2009/04/10(金) 22:51:24ID:???
ツンデレってやつか
0070nobodyさん2009/04/11(土) 00:40:52ID:???
>>66
とりあえずそれについてはわかったと思います
変数がCと違っててちょっとやりにくいですね

gzopen関数をつかえばhttp://tenhou.net/stat/dat/sca20090409.log.gzは開けましたが文字化けしますね・・・
mb_convert_encoding関数をつかってもどうにもなりませんし
0071nobodyさん2009/04/11(土) 03:26:06ID:???
セキュリティの本読んでたら
PHP_SELF
が危険、って書いてあって、
具体的にどう危険かというと、
javascriptで、任意の文字列を
送り込むことが可能、って書いてあって、
そんで聞きたいのは、
SCRIPT_NAMEでも同様なのかどうかってこと。

htmlspecialcharactersでサニタイズ必要?
0072nobodyさん2009/04/11(土) 12:45:20ID:???
htmlspecialcharactersなんて関数あったっけ?
0073nobodyさん2009/04/13(月) 09:03:05ID:???
>>17

教えていただきありがとうございます!
0074nobodyさん2009/04/13(月) 10:46:33ID:???
>>17
変数に括弧いらないよ
$_POST["tuzyo_ninzu$hiduke"]でおk

下みたいに配列変数の時はいるけどね
$_POST["tuzyo_ninzu{$hiduke[0]}"]
0075nobodyさん2009/04/13(月) 10:47:49ID:???
明示的に変数と文字列を区別するのはいいこと
0076nobodyさん2009/04/13(月) 12:06:41ID:???
phpに.NetのDataTableみたいな便利な昨日は無いの?

配列で代用するしかないの?
0077nobodyさん2009/04/13(月) 12:19:30ID:ecVuinBp
.htaccessで下記を設定し、htmlファイルをPHPとして動作させております。

 RemoveHandler .html
 AddType application/x-httpd-php .htm .html

html内で下記のようにPHPで書かれたhtmファイルをincludeしているのですが、

 <?php include("〜.htm");?>

〜.htmでは通常のPHPの書き方で下記のように書いております。

 <?
 $url = parse_url($_SERVER['REQUEST_URI']);
 $dir = $url['path'];
    :

サーバ移行前では〜.htmもしっかりとincludeされ期待通りの出力がされて
いたのですが、サーバ移行をした途端、〜.htmの内容がそのまま出力され
るようになってしまいました。

何か該当する設定がありましたらご教示いただけると助かります。
宜しくお願いいたします。
0078nobodyさん2009/04/13(月) 12:29:30ID:???
<? ←この記述が設定上許されてないとか?
0079nobodyさん2009/04/13(月) 13:22:46ID:ecVuinBp
>>78
有難うございます。
この設定を有効にするにはどの部分を見てみたら良いか、
できればご教示ください。。すみません。
0080nobodyさん2009/04/13(月) 13:26:22ID:???
javaみたいな表記にしろってことじゃん?それかphp
0081nobodyさん2009/04/13(月) 13:28:30ID:???
php.iniのshort_open_tagをonにすればいいじゃね
0082nobodyさん2009/04/13(月) 14:30:42ID:???
short_open_tagがONの鯖は借りるな!
short_open_tagがOffで動かないソースは書くな!
short_open_tagで書かれたフリースクリプトは今すぐ投げ捨てろ!
0083nobodyさん2009/04/13(月) 15:37:16ID:???
>>81
ありがとうございます。
おかげさまでなおりました。
この場をお借りし御礼申し上げます。

>>82
たしかにこれはよくないですね。。
改善の方向で考えます。
0084nobodyさん2009/04/13(月) 21:15:12ID:???
MySQLのSelectで100件ぐらいデータがヒットしても
それを全部表示しないで、1画面に20件ずつ表示させるには
どうすればいいですか?
0085nobodyさん2009/04/13(月) 21:15:50ID:???
limit 0, 20
0086nobodyさん2009/04/13(月) 21:39:12ID:???
いや、SQLで先頭20件出すんじゃなくて、ECHOで20件ずつ表示していく
(「次」をクリックすると次の20件が表示される)ようにするにはどうすればいいでしょうか?
0087nobodyさん2009/04/13(月) 22:09:51ID:???
DBから取得した値を可変の配列に格納しようと思ってるのですが、
.NetのArryalListに似たコードはありますか?


0088nobodyさん2009/04/13(月) 22:16:36ID:???
まずは.NetのArryalListがどんなものか説明すれば?
0089nobodyさん2009/04/13(月) 22:20:55ID:???
>>86
limit 20,40
0090nobodyさん2009/04/13(月) 22:30:18ID:???
>>88
ぐぐれ
0091nobodyさん2009/04/14(火) 00:51:07ID:???
あの、>>35ですけど取り込むことはできたんですが、文字化けが解決できません
エンコードの問題ではないみたいなんですが・・・
0092nobodyさん2009/04/14(火) 01:24:11ID:???
>>89
それはちゃいますがな
20, 20
0093nobodyさん2009/04/14(火) 08:18:04ID:???
short_open_tagがONの前提でコード書くじゃん。
そしたら、そのサーバーが、設定で
short_open_tagをOFFにしたとたん、
全部のPHPのソースコードが丸見えになるよ。
0094nobodyさん2009/04/14(火) 08:18:47ID:???
>>84,86

PEAR::Pager
0095nobodyさん2009/04/14(火) 08:19:38ID:???
>>85,89は自閉症
コミュニケーション障害
そのくせ自分がえらいと思っている
0096nobodyさん2009/04/14(火) 09:43:28ID:???
自己紹介乙
0097nobodyさん2009/04/18(土) 21:48:56ID:???
PHPの初心者向け教本教えて下さい。
0098nobodyさん2009/04/18(土) 21:54:21ID:???
はじめてのphp言語 プログラミング入門
0099nobodyさん2009/04/18(土) 21:57:10ID:???
独習PHP
実践マスターPHP+MySQL
速効!図解プログラミングPHP + MySQL
0100nobodyさん2009/04/19(日) 11:32:16ID:???
宣伝乙
0101nobodyさん2009/04/20(月) 23:20:17ID:???
どれがいいんだよw
0102nobodyさん2009/04/20(月) 23:46:37ID:???
SJC-Aを落ちた俺がPHPをやりたいと思ってます

と聞きたい事が書いてあった・・・・>>97
0103nobodyさん2009/04/21(火) 05:55:58ID:???
●はじめてのphp言語 プログラミング入門
●独習PHP
●実践マスターPHP+MySQL
●速効!図解プログラミングPHP + MySQL
0104nobodyさん2009/04/25(土) 00:26:24ID:SLuxKVD8
プラグインのsecedit.inc.phpを導入しようとしたらエラーが出て困っています。

ttp://www.luntf.com/?secedit.inc.php#h166c4a3 ←配布元です。を、見ながらやっていたのですが
Fatal error: Call to undefined function plugin_secedit_wrap() 〜〜/pukiwiki/lib/convert_html.php on line 260
と出たため
lib/convert_html.phpの260行目を確認してみたのですが、その部分は配布元に書いてある+部分の追加する文の
$secedit = plugin_secedit_wrap($string, $tag, $param, $this->id);
であり、どこがおかしいのかもうさっぱり分からないのです。ならばと思い、前後の文章の
function canContain(& $obj)
{
return FALSE;
}

function wrap($string, $tag, $param = '', $canomit = TRUE)
{
$secedit = plugin_secedit_wrap($string, $tag, $param, $this->id);
return $secedit ? $secedit : parent::wrap($string, $tag, $param, $canomit);
}

function toString()
{
return $this->msg_top . $this->wrap(parent::toString(),
'h' . $this->level, ' id="' . $this->id . '"');
}
}
ここまでをコピペしてみたのですが、エラーの文章は変わりませんでした。
グーグルで「secedit.inc.php エラー」等調べてみたのですが、解決出来るようなものはHITせず、
途方に暮れています。どうか力を貸してください、お願いします。
0105nobodyさん2009/04/25(土) 00:36:18ID:???
lib/pukiwiki.phpに
 require(PLUGIN_DIR . 'secedit.inc.php');
ちゃんと書いてるの?
0106nobodyさん2009/04/25(土) 12:03:06ID:???
>>105
遅くなって申し訳ありません、確認してみたところlib/pukiwiki.php内で
↓のように、}の位置が間違っていた事が原因でした。
require(PLUGIN_DIR . 'secedit.inc.php');
}

修正したところエラーが消え、seceditがちゃんと追加されて問題なく動かせるようになりました。
お手数をおかけしました、ありがとうございます。
0107nobodyさん2009/04/29(水) 23:37:06ID:???
>>106
localにphpの実行環境作りなされ
xamppで充分だから
0108nobodyさん2009/04/30(木) 18:37:16ID:???
あるドメインで、サブドメインを利用して別のシステムを運用しようとしています。
aaaa.hogehoge.jp と
bbbb.hogehoge.jp
この2つはシステム上の関連性はなく、全く別のデータベースを使います。

aaaa.hogehoge.jpではsessionは使えるのですが、bbbb.hogehoge.jpのほうではsessionが使えません。
色々調べてみたのですが、どうもbbbb.hogehoge.jpではクッキーが使えないようで、手動でPHPSESSIDを渡してやるとsessionが使えます。
setcookieを使っても、Windows上でクッキーのファイルも生成されず、クッキー自体が使用不可になっているようです。
ちなみにIE6.0ですが、Firefox2でやると両方ともsessionはOKでした。
こういう事って何が原因なのでしょうか・・・未熟な私にはサッパリわかりません・・・。
0109nobodyさん2009/04/30(木) 18:45:03ID:???
DBもアプリも別のシステムで一切共用部分無いなら aaaa.hogehoge.jp は関係なくね?
IE6.0限定とか言ってるけど、別のクライアント(PC)でもそうなの?
■ このスレッドは過去ログ倉庫に格納されています