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

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

レス数が1000を超えています。これ以上書き込みはできません。
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/
0978nobodyさん2009/08/21(金) 16:18:54ID:???
>>977に同意。
0979nobodyさん2009/08/21(金) 18:49:34ID:???
関数内の配列をGlobalにしたいんですがどうすればできますか?
変数と同じ方法じゃできませんでした。
0980nobodyさん2009/08/21(金) 18:54:32ID:???
まずは試してみたソースを曝すべし
0981nobodyさん2009/08/21(金) 18:59:02ID:???

function MONSTERREAD() {
while(${no}<9){
${no}++;
$fp = fopen("nightwish/".$_SESSION{'id'}."".${no}.".dat", 'r');
$hensu="unit";
$hensu.="${no}";
while (!feof($fp)) {
print $hensu;
global ${$hensu};
${$hensu}['$i'] = fgets($fp);
$i++;
}
}
}
$_SESSION{'id'}=dada;
MONSTERREAD();
$i++;
print $unit1[1];


これを実行するとunit1が行数文出力されてunit2unit3unit4…と続いてunit9で終わってunit1[1]の分が出力されません
0982nobodyさん2009/08/21(金) 19:10:57ID:???
変数は初期化しろ。
ファイルはクローズしろ。
0983nobodyさん2009/08/21(金) 19:15:03ID:???
なんかVBを思い出した
0984nobodyさん2009/08/22(土) 01:13:07ID:???
<?php
function MONSTERREAD($id) {
 $return = array();
 for($no=1;$no<9;$no++){
  $fp = fopen("nightwish/".$id.$no.".dat", 'r');
  $hensu = "unit" . $no;
  $lines = array();
  while (!feof($fp)) {
   $lines[] = rtrim(fgets($fp));
  }
  fclose($fp);
  $return[$hensu] = $lines;
 }
 return $return;
}
$var = MONSTERREAD("dada");
extract($var);

var_dump($unit1);
var_dump($unit2);
09859842009/08/22(土) 01:20:11ID:???
その糞コードのどこが間違ってるかは調べるだけ時間の無駄なので調べていない。

・関数は「値を受け取り、値を返すもの」だ。
 関数内で使う変数は、全て引数として渡せ。
 外で使う値は、常に返り値として返せ。一度で返しきれないなら関数を分けろ。
・変数名に数字を持たせるな。
 1-8までの数字を変数名に持つ、という事は、そいつは論理的には配列として扱うべき変数だ。
・変数名を文字列として扱うな。
 吐き気を催しつつ書いたが、extractはせず$varのまま使うほうが百万倍正しい。
 unit1...unit8となっている配列キーは、1...8の数値になるのが正しい。
・てめぇにオリジナルのプログラムは無理だ。出直せ。
0986nobodyさん2009/08/22(土) 02:50:22ID:???
$hensuの時点で萎える
0987nobodyさん2009/08/22(土) 15:00:18ID:???
$lineindex[$disptree]

こう言う風に書かれた変数はどういう意味になるのでしょうか?
0988nobodyさん2009/08/22(土) 15:01:30ID:???
配列$lineindexのキーが$disptreeのところ
0989nobodyさん2009/08/22(土) 15:06:58ID:???
$lineindex[0]こう言う風に書くと配列の最初の内容を表しますが
0という入れ物の名前が$disptreeに変わっただけなのですね。
0990nobodyさん2009/08/22(土) 15:15:21ID:???
PHPを使用して指定したWEBページの全てを取得し、保存するにはどうすればよいでしょか?

例: http://google.co.jp とtextbox項目に入力し、保存ボタンをクリックすると
   そのページで使用している画像等も全て

 data/googleIndex.html として保存したいです。
 

また、画像を保存する・しないも切り替えられる様にしたいのですが
どうすればよいでしょか?

ヒントをお願い致します。
0991nobodyさん2009/08/22(土) 15:27:20ID:???
PHPで携帯サイトを作っています。
例えばindex.phpが30KBあり、includeするPHPファイルが100KBあるとします。
PHPから吐き出されるHTMLが10KBの場合、携帯で発生するパケットを10KBと考えていいのでしょうか?
0992nobodyさん2009/08/22(土) 15:27:51ID:???
>>990
file_get_contents( $url ) でhtmlファイルを取得したのち、
htmlを解析して、インクルードしてる各種ファイルを取得、CSSファイルがあればさらにそれも解析して使ってる画像を取得、
イメージタグから画像のパスを取得して画像ファイルを取得。
インラインのスタイルを使っているかもしれないからそれも何とかして解析して画像へのパスを取得。
flashもあるかもしれない。javascriptの解析から、使ってるファイルとか画像を取得するのが面倒だな。

ちゃんとしたの作ってくれれば喜ぶ人がいると思うよ。頑張ってね。
0993nobodyさん2009/08/22(土) 15:29:11ID:???
>>991
実際のパケット量見てみれば分かることじゃない。
0994nobodyさん2009/08/22(土) 16:32:20ID:???
>>990
HTMLを全てトレースしてimg srcを見つけたら保存でいいじゃん。
それをON/OFFすりゃいいだろ。
0995nobodyさん2009/08/22(土) 18:26:30ID:???
>>992
>>993
何とかやりたい事が出来そうです。
どうもありがとうございました。
0996nobodyさん2009/08/22(土) 18:27:10ID:???
>>993



>>994
の間違いでした。
0997nobodyさん2009/08/22(土) 19:19:18ID:???
言われたとおりにしたらできましたありがとうございました
0998nobodyさん2009/08/23(日) 13:48:59ID:???
998
0999nobodyさん2009/08/23(日) 13:49:44ID:???
999
1000nobodyさん2009/08/23(日) 13:50:38ID:???
このスレは1000の風になりました
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。