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

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

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

PHP Home Page
http://www.php.net/
0496nobodyさん2007/06/16(土) 21:18:17ID:uzypepP0
初心者ですが宜しくお願いします
PHPで作成したんですが、ロリポップにupするときはパーミッション等 なにか設定する必要があるのでしょうか?

宜しくお願いします。
0497nobodyさん2007/06/16(土) 22:14:47ID:???
>>493
Perlで一通り経験をつんでからPHPをやると、とっても楽だけど
逆の場合は、とっても苦労することになると思うよ。
0498ひろみつ2007/06/17(日) 12:31:35ID:HuxhPGRr
PHPDevの外人の似顔絵はマイケル・ジャクソンですか?
0499nobodyさん2007/06/17(日) 12:36:50ID:???
s
0500nobodyさん2007/06/17(日) 12:41:49ID:???
>>497
PHP→Rubyならありだと思いますが、
PHP→Perlはお客さんから頼まれない限りないと思います
0501nobodyさん2007/06/17(日) 12:44:42ID:???
>>500
いざ、お客さんから頼まれたらどうするつもりなんでしょうか?
0502ひろみつ2007/06/17(日) 13:22:54ID:???
横投げしろ!
0503nobodyさん2007/06/17(日) 13:58:31ID:???
perl廚がphp使いに仕事を頼むことはまず無いな。
php使いがperlを勉強すると途中で挫折すると思う。
0504nobodyさん2007/06/17(日) 14:03:28ID:???
>>503
そんなに違うのか?phpとperlって
phpが簡単すぎるのか、perlが難しすぎるのか?
それともお互いのルールが違いすぎるのか?
0505nobodyさん2007/06/17(日) 16:49:56ID:ikG117Fr
>>504
んなわけない
Cとphpの違いほどは違わない
0506ひろみつ2007/06/17(日) 17:46:56ID:???
うぇぶ限定なら、CとCOBOLの違いくらいだ。
0507nobodyさん2007/06/17(日) 20:04:30ID:???
>>506
おまえはだまってろ
0508nobodyさん2007/06/18(月) 19:44:09ID:cNf541yn
フォームに記載されたメールアドレスにメールを送りたい場合、
mail()関数が使用できないサーバーで動作させるというのは困難なんでしょうか?
0509nobodyさん2007/06/19(火) 14:15:59ID:iqDz2KhQ
質問です。

PHPで、ユーザがアクセスしてきたブラウザがJavaScriptを許可しているかどうか引く方法はありますか?
0510nobodyさん2007/06/19(火) 14:39:32ID:???
別板でお答えいただきました。
0511nobodyさん2007/06/19(火) 17:36:00ID:???
マルチした上この開き直りっぷりww
0512ひろみつ2007/06/20(水) 00:41:56ID:KtCwuvOv
まるちねす
0513nobodyさん2007/06/20(水) 13:23:32ID:5awmyfGF
$word = new COM("word.application");
$word->Visible = 0;
$wdoc=$word->Documents->open("C:\\a.doc");
$paras=$wdoc->Paragraphs;

foreach($paras as $P)
echo $P->Range->{'Text'}="aaa\n";

$word->Documents[1]->SaveAs("C:\\b.doc");
$wdoc->close();
$word->quit();
$word = null;

こういうCOMを使ってWORDを操作するプログラムの練習をしてるんですが
とりあえず全ての改行までの文字列をaaaに変換しようとしたら、何故か1行だけ変換はされるものの
その後とまってしまいます。どうも永久ループに突入するようです。
結局タイムアウトが発生してしまうんですが、foreachの使い方を間違ってるのでしょうか?

よろしくおねがいします。
0514nobodyさん2007/06/21(木) 16:56:42ID:???
\nが挿入される度に行数が増えて、
foreachが完了しない。
0515nobodyさん2007/06/21(木) 17:25:32ID:fjm03ynm
ttp://puka-world.com/php/upload/puka/img-box/1181977360818.png
0516nobodyさん2007/06/25(月) 21:15:56ID:o32+7cUq
array(1,2,5,6,1,3) ←の場合は1

のように、配列の中に同一の値が入っているか否かを得たいのですが、
ループで値を順に比較して探すしかないのでしょうか?
入っていた場合にそれぞれの添え字を得たいとかそんな豪華な結果は要らないのですが。
0517nobodyさん2007/06/25(月) 23:21:26ID:3qfCD4pZ
簡易的なCSVファイルを作成し、それを参考に質問をしていくというHPを作成しています。
2点ほど分からないことがありましたので是非ご教授ください。
test.csvの内容は
ai,bb,0
ai,cc,0
au,bb,1
au,dd,1
ao,aa,0
ao,cc,0
ao,dd,0
ao,gg,0
とあります。
最初のページ(test1.php)で・ai ・au ・aoを選ぶページをつくます。
(1)
CSVファイルを使用して
aiを選択した場合、次のページ(test2.php)での選択肢が・bb ・cc
同様に・auの場合、選択肢は・bb ・dd
・aoの場合、選択肢は・aa ・cc ・dd ・ggと表示したいです。
(2)
さらに次のページで
CSVを見て
0の場合は(test3.php)
1の場合は(test4.php)と移動したいです。

05185172007/06/25(月) 23:22:43ID:3qfCD4pZ
(1)の方は一応できたのですがプログラムの書き方が適切なのかが不安の為
もっと効率のよい書き方があれば教えてください。
test1.phpはhtmlのみのプルダウンなので略。

test2.phpでの自分の書き方は
<form action=●●.php method=POST>
<input type=hidden name=test1 value=<?php echo"".$_POST[test1].""?>>
<?php
$file=file("test.csv");
 for($i=0;$file[$i]; $i++){
  $data=explode(",",$file[$i]);
  if(($_POST[test1]=="ai")&&($data[0]=="ai")){
   echo"<input type=radio name=test2 value=".$data[1].">".$data[1]."<br>";
}elseif(($_POST[test1]=="au")&&($data[0]=="au")){
echo"<input type=radio name=test2 value=".$data[1].">".$data[1]."<br>";
}elseif(($_POST[test1]=="ao")&&($data[0]=="ao")){
echo"<input type=radio name=test2 value=".$data[1].">".$data[1]."<br>";
}
}
?>
<input type=submit value="次へ">
05195172007/06/25(月) 23:23:58ID:3qfCD4pZ
(2)
●●.phpを新たに作成して
そこでincludeかrequireを使用してtest3.phpかtest4.phpに移動
するプログラムを作成しているのですが、うまく移動しません。
案がありましたら是非ご教授ください。
まだプログラムを勉強中の初心者なので少し解説をつけていただくとうれしいです。
0520涙枯2007/06/25(月) 23:35:28ID:A39FwowZ
質問があります。
異なる文字列(html)で文字数が異なっている4つのフォームから
送信された文字列を一つのindex.htmlに書き込み、
取り出す時にはまた4つのフォームに文字列を戻す。
ということは出来ますでしょうか?

出来ますなら教えていただきたいです。
0521nobodyさん2007/06/25(月) 23:55:39ID:???
>>516
$ary = array(1,2,5,6,1,3);


if( $ary == array_unique($ary) ) {
echo "重複ナシ";
}else{
echo "重複アリ";
}
0522nobodyさん2007/06/26(火) 01:22:53ID:N5XOW1DD
$_SERVER['HTTP_ACCEPT']とはユーザーのAcceptヘッダだそうですが
具体的にAcceptヘッダとはどういったものなのでしょうか?
画像をリクエストしたり、テキスト形式をリクエストしたりするような感じですか?
0523nobodyさん2007/06/26(火) 01:24:04ID:????2BP(341)
PHP4.2以降だとデフォルトでグローバル変数が使えないってことだけど
ウチのマシンでphp.iniのglobal_regiなんとかって部分offにしてApache再起動して
form作って試したんですけど、なんで実行されたんでしょうか?

formのname属性にnametestって入れて
echoで$nametest呼んだらformで送った情報がきっちり表示されちゃいました・・・
0524nobodyさん2007/06/26(火) 01:29:08ID:???
質問者ばかりでワラタw
どれを答えるか迷うな。
0525nobodyさん2007/06/26(火) 07:39:08ID:???
>>522
ブラウザがね、自分の好きなメディアタイプはこれだよって送ってるんだ
例えば画像ならpngが好きでpngがなければ他の形式でもいいというときは
Accept: image/png,*.*;q=0.5
qというのは優先順位ね
ApaqcheがMultiviewsでコンテントネゴシエーションしていれば好みのメディアタイプを自動的に送ってくれるわけさ
image.pngとimage.jpgを同じディレクトリにおいて
http://example.com/image
でアクセスするとimage.pngを選択してくれるのさ
Acceptには他にもAccept-Language, Accept-Charset, Accept-Encoding とかあるよ
まあ君はMultiviewsとか使わないだろうから気にしなくていいよ
0526nobodyさん2007/06/26(火) 09:20:31ID:???
質問です。
プルダウンを二つ作成し、それを関連づけるにはどうしたらいいでしょうか?
たとえば
プルダウン1    プルダウン2
 1月    →    1〜31日 項目にセット
 2月    →    1〜28日

といった具合です。
0527nobodyさん2007/06/26(火) 09:29:31ID:???
>>526
ページ変遷無しにやりたいならjs
ページ変遷有っても良いならプルダウン1の結果から適当にごにょごにょ
0528nobodyさん2007/06/26(火) 11:55:33ID:???
>>527
解答ありがとうございます。
もう一つ聞きたいのですが、選択された項目のindex番号を取得する
ことはできますか?
0529nobodyさん2007/06/26(火) 12:25:27ID:???
>>528
Javascript
>>526
Ajax
05305292007/06/26(火) 12:27:05ID:???
月から日数求めるだけならAjax使う必要もなかったか
0531nobodyさん2007/06/26(火) 13:03:26ID:???
>>529はAjax覚えたてで粋がりたい小者
0532nobodyさん2007/06/26(火) 13:08:45ID:???
西暦じゃなくて元号を表示させるにはどうするればいいのでしょうか
0533nobodyさん2007/06/26(火) 13:12:41ID:???
>>532
元号ってのは規則性が無いから、自分でデータを列挙して当てはめていくしかないねぇ
0534nobodyさん2007/06/26(火) 14:07:43ID:???
正規表現で質問です
function check_date($yyyy, $mm, $dd)
{
if(! ereg("^[0-9][0-9]*$", $yyyy)){
return False;
}
}

とりあえず$yyyyだけ正規表現でチェックしてみるんですけど、
^[0-9] だと、0-9以外の文字ならマッチ となり
ereg関数によってtrue/falseと分岐するので

結果として$yyyyに数字以外の文字が入った場合、
マッチ→ereg関数でtrueが返る→論理演算子 ! でtrueがfalseになって返る
→if文の処理は行わない

これで解釈あってますか?
0535nobodyさん2007/06/26(火) 17:04:58ID:???
>>534
1文字以上の数字のみからなる文字列にマッチする正規表現。

文全体の処理なら

$yyyyが数字のみでない文字列→ereg()はfalseを返す→否定→真→ return false;


分岐構文の認識大丈夫か?
0536nobodyさん2007/06/26(火) 17:25:00ID:???
全然違う
他にも突っ込みどころ有るけど、とりあえず根本的な勘違いを一つ

>^[0-9] だと、0-9以外の文字ならマッチ となり
これは[^0-9]の場合

^[0-9][0-9]*$だと「最初から最後まで0〜9のみ、最低一文字以上」って事になる
ちなみに^[0-9]+$とした方がスマート

正規表現の基礎の基礎を学ぶ事をおすすめする
0537nobodyさん2007/06/26(火) 18:17:04ID:???
正規表現を見なかったことにすれば
真偽って言葉を知らないだけで分岐の認識はあってんじゃないの?
0538nobodyさん2007/06/26(火) 18:50:53ID:???
正規表現を間違えて解釈しているから真偽がひっくり返ったんだな
0539nobodyさん2007/06/26(火) 18:53:35ID:???
>>521
素晴らしい!ありがとうございます。勉強になりました。
0540nobodyさん2007/06/30(土) 17:22:23ID:0gW5gfE4
ツリー式掲示板などではスレ等を一定に表示させていますが、あれはどういう仕組みなのですか?
0541nobodyさん2007/06/30(土) 17:23:56ID:???
>スレ等を一定に表示させていますが
意味がよく分かりません
0542nobodyさん2007/06/30(土) 17:53:11ID:0gW5gfE4
>>541
スレの一覧です。
0543nobodyさん2007/06/30(土) 18:00:11ID:???
>>540 + >>542
ツリー式掲示板などではスレの一覧に表示させていますが、あれはどういう仕組みなのですか?

??????
0544nobodyさん2007/06/30(土) 18:44:01ID:jxjgyUFj
くだらない質問ではないのですが、
EUC-JPで書かれたフォームから受け取った値をEUC-JPのPHPで処理します。
値には2バイト文字が含まれています。 頭の全角半角スペースを除去するのですが

$name = $_POST['name'];
$ptn = "/^[  ]*(.*)$";
mb_convert_variables("UTF-8", "EUC-JP", $name, $ptn);
$name = preg_replace($ptn", "\\1", $name);
mb_convert_variables("EUC-JP", "UTF-8", $name);

のようにpreg_replaceを使うのと

$name = mb_ereg_replace("^[  ]*(.*)$", "\\1", $name);

のようにmb_ereg_replace使うのどちらがいいでしょうか?
preg_replaceの方が好きですが、パターンと受け取った値を一度UTF-8に置き換えるのが面倒です。
0545nobodyさん2007/06/30(土) 19:42:19ID:0gW5gfE4
>>543
スレの一覧を一定に表示させている(ry。
(´”ω・)y─┛
0546nobodyさん2007/06/30(土) 21:35:49ID:???
>>545

>>541でも>>543でもない俺が一言
日本語でおk

0547nobodyさん2007/06/30(土) 22:51:56ID:0gW5gfE4
>>546
つまり、20個のスレがあるとします。
1つめのページには10個
二つめのページには10個
電池が…
0548nobodyさん2007/06/30(土) 22:58:11ID:jxjgyUFj
>>547
現在のページが0か空なら最初の0〜10件を表示。
ページが1なら11〜20を表示

ということ?
それならURLの引数にページ番号を保持させて、1ページの表示件数にかけて取得する。
0549nobodyさん2007/07/03(火) 11:19:51ID:+jiGGDAy
>>548さん。
参考になりますPHPなどありますでしょうか?
0550nobodyさん2007/07/03(火) 12:16:00ID:???
>>549
そもそも掲示板の作り方がわからないから1から作ってここにUPして下さいってか
腐ってるな
0551nobodyさん2007/07/03(火) 14:45:59ID:???
スレタイにIDをつけて
レスにどのスレタイが割り当てられているのかスレタイIDをつければいいんでね?
0552nobodyさん2007/07/03(火) 16:24:00ID:???
>>551
普通はスレッドごとにファイルを作ると思うけど
0553nobodyさん2007/07/03(火) 19:36:17ID:???
今時普通はDB使うだろ
0554nobodyさん2007/07/03(火) 19:47:23ID:???
中小規模の掲示板でDB使うメリットが無くね?
0555nobodyさん2007/07/03(火) 21:13:07ID:???
それは機能次第だと思うけど、少なからずDBだと開発は楽になるな。
0556nobodyさん2007/07/03(火) 21:26:16ID:???
ファイルでやるメリットって何なんだ?
0557nobodyさん2007/07/03(火) 21:32:12ID:???
負荷が軽いとか?
0558nobodyさん2007/07/03(火) 22:38:43ID:???
ファイルの方が重い気がする
0559nobodyさん2007/07/03(火) 22:45:48ID:???
>>556
SQL知らなくても何とかなる
0560nobodyさん2007/07/04(水) 00:25:28ID:???
デバッグし易い。移植し易い。拡張し易い。設計不要。
0561nobodyさん2007/07/04(水) 01:39:10ID:???
>>560
ネタおつ
0562nobodyさん2007/07/04(水) 01:44:33ID:???
何がネタなのか詳しく
0563nobodyさん2007/07/04(水) 05:32:15ID:NO82XaqL
作業内容:リロードによるファイルの2重書き込みを防ぐ。
質問です。
// GET取得
if(strtoupper($_SERVER["REQUEST_METHOD"]) == "GET"){
$page = $_GET["page"];
(1)
// $pageがnextの場合
if($page == 'next'){
// ファイル書き込み処理
if(!$_SESSION["execute"]){
//書き込み
// 書き込み後
$_SESSION["execute"] = true;
}
}
}
リンクPAGEをクリックした後、$_SESSION["execute"]
= falseにして(1)、
if(!$_SESSION["execute"]){}の条件を満たし、
書き込み処理を行い、セッションexecute = true
にしています。 どうすれば、リロードで書き込み処理を行わず、
ページリンクをクリックした時だけ、書き込み処理を行うように
したらいいのでしょうか??質問自体がおかしいところもあると
思いますが、ご教授お願い致します。
0564nobodyさん2007/07/04(水) 05:34:34ID:NO82XaqL
省略されたので、以下同文です。
リンクPAGEをクリックした後、$_SESSION["execute"]
= falseにして(1)、
if(!$_SESSION["execute"]){}の条件を満たし、
書き込み処理を行い、セッションexecute = true
にしています。 どうすれば、リロードで書き込み処理を行わず、
ページリンクをクリックした時だけ、書き込み処理を行うように
したらいいのでしょうか??質問自体がおかしいところもあると
思いますが、ご教授お願い致します。
0565nobodyさん2007/07/04(水) 05:37:53ID:???
>>563
ページリンクをクリックする度にファイルを書きこまないといけない理由は何ですか?
何をしようとしているのか教えて欲しい。
0566nobodyさん2007/07/04(水) 05:52:13ID:NO82XaqL
返答ありがとうございます。
ファイルからレコードを読み込み、配列に格納して、5桁区切りで
ページ数を表示(各ページはリンク)。PAGEリンクは5桁区切りの右側に
リンクしてあり、そのPAGEリンクをクリックすると、
1 2 3 4 5 → 6 7 8 9 10 のように表示を変えるものを作成しています。
その為ファイルにポイントとなる部分を書き込んでいます。
F5等リロードすると、ファイルにポイント部分を書き込むので、
PAGEリンクをクリックしないでも、表示がずれてしまいます。
0567nobodyさん2007/07/04(水) 06:24:23ID:???
>>566
えぇと・・そのページを複数のユーザが見る事になった時、どうするんですか?
ファイルに書き込まない実装にしたほうがいいですよ。
0568nobodyさん2007/07/04(水) 06:33:45ID:NO82XaqL
>>567
返答ありがとうございます。
「ファイルに書き込まない実装」勉強します。
0569nobodyさん2007/07/04(水) 07:09:45ID:???
ID:NO82XaqL
マルチ死ね
0570nobodyさん2007/07/07(土) 18:02:32ID:fXUNib0D
アップローダーについて質問があります。
―――――――――――
アップされたファイル
アップされたファイル
2345
―――――――――――
1ページに2個アップされたファイルを表示し、残りは2345のリンク先の別ページにそれぞれ2つずつ表示させたいのですが、どうしたらよいでしょうか
page=2
GETでの指定。
0571nobodyさん2007/07/07(土) 18:24:48ID:???
>>570
算数は分かるかな。
算数が分かるなら君にも分かるよ。
0572nobodyさん2007/07/08(日) 22:50:09ID:???
すみません本気で困っています。
PHPって別ファイルの関数呼ぶことできますでしょうか?
例えば下のa.phpを実行すると「here aaa」を表示されるように
したいのです。
a.phpを実行してもaaa();が見つからないというようなエラーが
出ています。助けてください。

a.php--

aaa();

-------

aaa.php---

print "here aaa";

-----
0573nobodyさん2007/07/09(月) 00:08:32ID:???
>>572

penis.php--
function syasei(){
print("syasei");
}

vagina.php--
include("penis.php");
syasei();
0574nobodyさん2007/07/09(月) 08:54:51ID:???
>>573
ありがとうございますできました!
include("xxx");か〜
0575nobodyさん2007/07/09(月) 17:09:47ID:6BMNon6n
>>571
どんな関数使えばできますか?
0576nobodyさん2007/07/09(月) 18:39:40ID:???
>>575
そこは超初心者とは言え、自分で考えて作る所だろ
そんな1から10まで用意してもらわないとダメなら他人に作らせるんだな
0577nobodyさん2007/07/09(月) 18:44:32ID:???
そうだね。よく考えれば思いつくはずだよ。
思いついた頃には「あぁ!詳しく聞かなくて良かった!」って思えるず。
0578nobodyさん2007/07/09(月) 19:18:48ID:6BMNon6n
まじか…
実はもの凄い簡単な事だった、と?
(´・ω・`)
0579nobodyさん2007/07/09(月) 19:23:23ID:???
そんな顔するなよ・・!
全体の件数から表示する件数を割れば良いだけだろ?
0580nobodyさん2007/07/09(月) 20:22:45ID:6BMNon6n
(´;ω;`)…
ごめん…情けないが…わからねぇ…
0581nobodyさん2007/07/09(月) 20:31:22ID:QtrGBC6r
今日という日が駄目でも明日という日があるじゃないか
0582nobodyさん2007/07/09(月) 20:31:24ID:???
じゃとりあえず、自分でどこまで考えられたか見せてみ?
別に変でもいいから
0583nobodyさん2007/07/10(火) 02:18:11ID:???
この前それ作ったばかりだw
for文なんかで格好良く書きたかったけど、俺にはできなかった…orz
とりあえずif文でダラダラと…
0584nobodyさん2007/07/10(火) 08:33:33ID:???
>>581
お前が無駄に過ごした今日は
誰かが生きたかった明日なんだ
0585nobodyさん2007/07/10(火) 12:59:39ID:wG4JHCsO
やばい…わからん…すまんなんつーか
ひらめかねぇ
>>584
その言葉はずっと前から知ってるが
それがどうした?
0586nobodyさん2007/07/10(火) 13:02:32ID:wG4JHCsO
連レスしてごめん。
>>583
for文…(´・ω・`)
ひらめかねぇ…
でもif文よりは短く書ける?
0587nobodyさん2007/07/10(火) 19:19:00ID:???
>>586
丸投げかよ
少し努力しようとしないやつは誰も助けてくれんぞ
0588nobodyさん2007/07/10(火) 23:28:57ID:wG4JHCsO
>>587
それもそうだな。ググってみて参考になりそうなスクリプトを今見てる
ネット繋がってなくてさ
公共のPC使ってきた
(´・ω・`)
わかってる
あなたの言いたい事はよくわかる
0589nobodyさん2007/07/10(火) 23:35:03ID:???
6行中4行が言い訳で一行が顔文字って、人をバカにするにも程が有るだろ
よくわかるから何なんだよ
行動がわかってない奴と同じだから意味ねーじゃん
0590nobodyさん2007/07/11(水) 01:17:58ID:???
>>589
お前がみみっちいだけだろ
0591nobodyさん2007/07/11(水) 02:12:36ID:???
>>588
まぁ・・今はそれでいいかもしれないがこの程度は思いつくようになろうな。
0592nobodyさん2007/07/11(水) 07:03:11ID:???
>>589
ちいさいやつ
0593(´・ω・`)2007/07/11(水) 07:49:56ID:og/6iDuT
頑張ってみるさぁ(´・ω・`)
みんなありがとう。
0594nobodyさん2007/07/11(水) 20:38:07ID:???
age
0595nobodyさん2007/07/11(水) 20:51:36ID:6BaXcWuE
WINDOWS XP でapache HTTP server 2.2.4をインストールしPHPはPHP 5.2.3.をインストールしました

URLにてlocalhostが表示出来ている事を確認しました。しかし<?php print "aa"; ?> という内容でtest.phpの
ファイルをProgram Files/apache Group/htdocsのディレクトリに入れ表示させるとaaと表示されずソース全てが
表示されてしまう結果になってしまいます。これはPHPのインストールに異常があるのでしょうか?
0596nobodyさん2007/07/11(水) 21:02:17ID:???
>>595
うん
■ このスレッドは過去ログ倉庫に格納されています