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

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

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

PHP Home Page
http://www.php.net/
0755nobodyさん2007/08/12(日) 20:32:45ID:???
>>743
まだいるのか?お前
日本語使えるようになってから来なさい
0756nobodyさん2007/08/12(日) 20:39:47ID:???
>>755
お前がまだいるのか?って感じだよ
0757nobodyさん2007/08/12(日) 23:23:03ID:???
2日前のレスに「まだいるのか?」
0758nobodyさん2007/08/13(月) 02:24:54ID:Uyui0BVX
晒し揚げ
0759nobodyさん2007/08/20(月) 13:51:48ID:???
このスレはあれだな。 
0760nobodyさん2007/08/20(月) 13:56:38ID:???
あれだね
0761nobodyさん2007/08/22(水) 08:32:52ID:4atvg3yr
Yahoo ディレクトリのAPIを試してみたんだけど、XMLが全て読み込めないんだけど、
どうすればいい?途中で<Title>国土地理院 - で終わってしまう。
http://api.dir.yahoo.co.jp/Category/V1/Category?appid=YahooDemo&id=2075380024
0762nobodyさん2007/08/22(水) 08:46:34ID:???
それだけ見せられても
0763nobodyさん2007/08/22(水) 09:51:59ID:???
うちは終わらんなあ
0764nobodyさん2007/08/22(水) 10:27:52ID:4atvg3yr
stream_set_timeout($sockPointer, 6, 0);
fputs($sockPointer, "GET $this->url HTTP/1.0\r\nHost: $this->host\r\n\r\n");
fputs($sockPointer, "User-Agent: hoge/1.0\n\n");
fputs($sockPointer, "Keep-Alive: 800\n\n");
fputs($sockPointer, "Connection: Keep-Alive\n\n");
fputs($sockPointer, "Referer: http://www.hoge.net/\n\n");

$response = fgets($sockPointer);


if (substr_count($response, "200 OK") > 0) {
while (!feof($sockPointer)) {
$buf .=fgets($sockPointer,8192);
}
echo $buf;
}
07657612007/08/22(水) 10:28:25ID:4atvg3yr
↑こんな感じで取得しようとすると、途中でコケる
0766nobodyさん2007/08/22(水) 14:30:36ID:???
>>765
simplexml_loadは?
0767nobodyさん2007/08/24(金) 20:42:46ID:YW+CA6HV
今までJavaしかやったことがない自分が
仕事でPHPをやることになりました。

オススメの入門書や入門用サイトがあれば
教えて頂きたく、よろしくお願いいたします。
0768nobodyさん2007/08/24(金) 21:29:59ID:???
KKprojectsを手本にして下さい
0769nobodyさん2007/08/25(土) 15:52:13ID:???
PHPの入門書を読んでいたら

---関数の定義中---
?>
[<?php ... ?>]
<?php
-----------------
こんな構文がでてきたのですが、これはいったいどういう意味なんでしょうか

ちなみに↓関数の定義全文です。

function disp_write_list($p_value){
print("<hr /><span class=\"title\">".$p_value["subject"]."</span>");
if(strlen($p_value["mail_address"]) == 0){
print(" from:".$p_value["contributor"]);
}else{
print(" from:<a href=\"mailto:".$p_value["mail_address"]."\">".$p_value["contributor"]."</a>");
}
if(strlen($p_value["home_page_uri"]) != 0){
print(" <a href=\"".$p_value["home_page_uri"]."\" target=\"_brank\">ホームページ</a>\n");
}
?>
[<?php print(gmdate("Y/m/d H:i:s",$p_value["write_date"]+9*3600)) ?>]
<br /><br /><?php print($p_value["message"]) ?>
<p align="right"><form method="POST" action="delete.php">
<input type="hidden" name="in_del_key"
value="<?php print($p_value["message_sequence"]) ?>">
<input type="password" name="in_pass" size="12" value="" maxlength="8">
<input type="submit" value="削除" name="submit"></form></p>
<?php
}
0770nobodyさん2007/08/25(土) 16:14:34ID:???
>>769
外側の[ ]はPHPとは無関係の単なる出力用。

[<?php print(gmdate("Y/m/d H:i:s",$p_value["write_date"]+9*3600)) ?>]
↓
[2007/01/01 00:00:00]
こんな感じで出力される。

<?php print(gmdate("Y/m/d H:i:s",$p_value["write_date"]+9*3600)) ?>
↓
2007/01/01 00:00:00
外側の[ ]がなければこうなる
0771nobodyさん2007/08/25(土) 16:32:23ID:???
>>770
レスどうも
びっくりするぐらい単純なことだったようでorZZZ
0772nobodyさん2007/08/25(土) 19:09:38ID:TE6ew4qv
拡張子を .htm .html でphpを動かしたいのですが、

.htaccessに次のように書いて
AddType application/x-httpd-php .htm .html

表示ファイルには次のように書いて
<?php phpinfo(); ?>

index.htmlにアクセスするとちゃんとphpinfoが表示されます。
index.htmにアクセスするとファイルのダウンロードになってしまいます。
二つとも同じファイルです。何が原因と考えられるでしょうか?
0773nobodyさん2007/08/25(土) 19:15:39ID:???
AddHandler php5-script .php .html .htm
AddType text/html .php .html .htm
AddType application/x-httpd-php .htm .html
0774nobodyさん2007/08/25(土) 19:24:25ID:DgM7DGvW
microtimeでへ現時点のマイクロ秒がとれるようですが、
ある時点のマイクロ秒が欲しい場合は何を使えばいいのでしょう
07757722007/08/25(土) 19:26:57ID:???
>>773
できました〜ありがとございます。
0776nobodyさん2007/08/25(土) 19:31:43ID:???
>>774
ある時点でmicrotimeを実行して変数に代入しておけば良いのでは。
0777nobodyさん2007/08/25(土) 19:34:03ID:DgM7DGvW
>>776
早速レスありがとう。
あ。そういう使いかたもできるんですね!
やってみます!
0778nobodyさん2007/08/26(日) 20:24:08ID:crnif+D9
任意の日付より現在までの秒数を求めるのは何を使うのが最適でしょう。
php4です。
0779nobodyさん2007/08/26(日) 20:47:22ID:???
日付関数のとこくらい見れよ・・・
0780nobodyさん2007/08/26(日) 21:02:23ID:crnif+D9
>>779
ここってくだすれPHP(超初心者用)2って書いてるように俺には読めるけど。
文字読めないのか?
自分が分からないのならわざわざ書き込まなくていいだろ。死ねよ。
0781nobodyさん2007/08/26(日) 21:29:18ID:???
くだすれPHP(超初心者用)2だと何故日付関数のページすら見なくていいのかkwsk
0782nobodyさん2007/08/26(日) 21:37:33ID:crnif+D9
ここのやつは何か物をかって説明書を読めば全てを把握できる天才ばかりなんですね
すばらしいことです。
もうメーカーサポートセンターなんて必要ないですね^^^^^
0783nobodyさん2007/08/26(日) 21:38:48ID:???
つまり説明書を読んでも把握できないから、ってこと?
0784nobodyさん2007/08/26(日) 22:07:59ID:???
どの辺が分からないのか言ってみ?解説したげるから
0785nobodyさん2007/08/26(日) 23:19:40ID:/HTtQ9/d
ボタンを2つ作って、どちらが押されたかによって処理を変える
という事がしたいんですが、どのような方法がありますか?
今はsubmitのonClickでラジオボタンをチェックし、
ラジオボタンの状態からどのボタンが押されたか判別しているのですが
JavaScriptがOFFの環境だといちいち手動でラジオボタンをチェックしないといけないのでなんだか不便なわけです。
押されたsubmitのnameなりidなりを取得できるのが理想なんですが・・・
0786nobodyさん2007/08/26(日) 23:39:17ID:???
>>785
submitにnameとvalueをつけて、$_POST['name']でvalueを取得
valueの値をそれぞれ異なる値を設定しておけば
どのボタンが押されたか判断できる
0787nobodyさん2007/08/26(日) 23:41:46ID:???
submitのvalueって表示文字列だろ・・・?
俺だったらformを2つ作ってhiddenで値を渡すかな
0788nobodyさん2007/08/27(月) 00:18:20ID:???
PHPか微妙なんだけど。
簡易ログイン的なものを組んでるんだけど、ログインするユーザーが複数いて、
そのデータを記述したファイルを読み込んで判定させたいんだけど、datファイルに
名前<>md5で暗号化したパス って記述してパーミッション変えておけば大丈夫だろうか。

完璧なセキュリティ、とは言えないだろうが、とりあえず漏洩は防げる?
0789nobodyさん2007/08/27(月) 00:33:28ID:???
いいんじゃない簡易なら
0790nobodyさん2007/08/27(月) 01:01:37ID:???
>>787
HTML勉強汁
0791nobodyさん2007/08/27(月) 01:07:35ID:???
>>790
どの辺で?
0792nobodyさん2007/08/27(月) 08:39:24ID:???
>>788
さすがにwebから参照できないディレクトリに入れるくらいの配慮は必要かもね
07937852007/08/27(月) 16:27:23ID:???
>>786
おお、ありがとう御座います、出来ました。
formの中に入ってるから両方とも値が送られてしまうのかと思ったら
押した方だけ送られるんですね。
0794nobodyさん2007/08/27(月) 19:36:35ID:???
>>
0795nobodyさん2007/08/27(月) 19:38:38ID:???
>>793
input要素にフォーカスがある時にEnterキーが押されることも考慮すべし
07967852007/08/27(月) 22:04:08ID:???
>>795
なるほどEnter使われると送られない場合があるわけですね・・・
標準でどちらの処理にするか決めておけばいいわけですが
それだとEnter押した場所と実行される結果が違ってユーザーが戸惑うかも。
対策としてはEnter無効にしておくとか?
0797nobodyさん2007/08/28(火) 00:44:21ID:???
そもそもなんでそんなことやる必要があるのか
07987852007/08/29(水) 17:17:41ID:???
>>797
入力フォームの内容を、
・送信して次に行く場合
・フォーム内容を弄って再出力する場合
の2通りにしたいんです。
例えば郵便番号を入れて「住所取得」を押した時は
それ以降の住所入力欄に住所を入れて再出力するとか。
0799nobodyさん2007/08/29(水) 20:14:22ID:???
>>785
このご時世、Javascript切っているクライアントは切り捨てて良いのでは?
08007852007/08/30(木) 16:39:29ID:???
>>799
どうせなら切ってても動作できるようにしたいのと
そもそもうちの標準環境でJavaScriptがOFFに・・・
0801nobodyさん2007/08/30(木) 16:44:04ID:???
>>799
JS切ってても可能な事はわざわざJSでやる必要はないさ。
0802nobodyさん2007/09/05(水) 14:13:33ID:???
過疎ホシュ
0803nobodyさん2007/09/05(水) 16:56:28ID:???
クラスの使い方に悩んでいます
$str="2007.9.5";
という文字列を年月日に分けるとき
list($year,$month,$day)=explode(".",$str);
で出来ますが、これをクラスの形にしたいのですが、クラス内で出来た変数をどうやって得るのか分かりません
class sample{
var $str="";
function ymd(){
list($year,$month,$day)=explode(".",$this->str);
???
}
}
イメージ的には
$obj=new sample;
$this->str="2007.9.5";
print "今日は{$obj->year}年{$obj->month}月{$obj->day}日です。";
みたいになればと思っています、基本過ぎてすいませんが誰か教えて下さい
0804nobodyさん2007/09/05(水) 17:13:36ID:???
>>803
( ゚д゚ )・・・

( ゚д゚)

( ゚д゚ )つ return $year.$month.$day;
0805nobodyさん2007/09/05(水) 17:14:39ID:???
$this->year = $year;
$this->month = $month;
$this->day = $day;
0806nobodyさん2007/09/05(水) 17:27:13ID:???
>>803
var $year;
var $month;
var $day;

list($this->year...
0807nobodyさん2007/09/06(木) 10:25:36ID:???
ありがとです、できました
0808nobodyさん2007/09/08(土) 20:55:40ID:???
<?php
$handle = fopen("http://test.com/test.php";, "r");
$test = fgets($handle);
echo $test
?>

$testが id=1234 と表示されるとして
$testを 1234 だけに置き換えるにはどうすればいいでしょうか?

php全くの初心者です。教えてください。
0809nobodyさん2007/09/09(日) 02:44:56ID:???
1234だけ、とは?
数字だけなのか、=の右だけ、なのか、文字列の最後の4文字なのか
0810nobodyさん2007/09/09(日) 10:18:45ID:???
文字列の最後の4文字です

0811nobodyさん2007/09/09(日) 10:31:38ID:???
すいません

=の右だけです
0812nobodyさん2007/09/09(日) 10:37:06ID:???
>>811
$test = "abc=1234";
$str = split("=",$test);
$test = $str[1];
0813nobodyさん2007/09/09(日) 10:46:22ID:???
>>812
ありがとうございます
0814nobodyさん2007/09/11(火) 18:03:06ID:???
$a,$bが共に1より大きい時、
1〜$aの乱数を、$b個作成(乱数の数値は被らないように)するには、どうすればいいでしょうか?
0815nobodyさん2007/09/11(火) 18:19:12ID:???
>>814
if ($a > 1 and $b <= $a) {
$array = range(1, $a);
shuffle($array);
}
$array[0] から $array[$b -1]が求める数字
08168152007/09/11(火) 18:21:50ID:???
($a >= 1 and $b >= 0 and $b <= $a)
か
$b <= aを入れないと配列オーバーする可能性があるよ
0817nobodyさん2007/09/11(火) 18:22:54ID:???
$b >= 1

orz
0818nobodyさん2007/09/11(火) 19:27:49ID:???
>>815-817
どうも有難うございました。
0819nobodyさん2007/09/16(日) 01:22:54ID:4qh3zvaa
MySQLからのデータを五十音順に並べたいんですけどうまくいかなくて困ってます。
$sort_arr = array("あ" => 1, "い" => 2, "う" => 3, "え" => 4,
"ぇ" => 5, "お" => 6...みたいな配列つくっていろいろやってたんですが
ソートでこんがらがってしまって行き詰まってます。そもそもやり方まちがってますか?
0820nobodyさん2007/09/16(日) 02:03:16ID:???
PHPにもそういう関数がありますし、MySQL側でもできます。一から勉強し直してください
0821nobodyさん2007/09/16(日) 09:18:47ID:51Avt+rT
PHPでレジストリのスタートアップのところをいじくりたいんですが、出来ますでしょうか?
08228192007/09/16(日) 13:11:08ID:???
>>820
MySQL側でできれば一番いいんですが鯖が共有なのでcharsetの変更ができません。
PHPはmb関数だと思うんですがいまいちわかりません。超初心者ですのでご教授お願いします!
08238192007/09/16(日) 15:25:11ID:???
自己解決しました。
array_multisort($arr2sort,SORT_ASC);

でできました。
0824nobodyさん2007/09/16(日) 16:05:17ID:???
PHP5とApache2をインストールして、PHPファイルにアクセスすると
実行されずダウンロードしてしまうんだけど

こんなのFAQだろと思って検索したんだけど、なんかgoogleで
PHP APACHE ダウンロード で検索してもFAQページが出てこない

AddType application/x-httpd-php .php
Directoryに Options ExecCGI Includes
は追加しました
0825nobodyさん2007/09/17(月) 02:37:13ID:???
インストールお手本サイトみたいなのを見て
スペルミスとかがないか良く見るとか。
0826nobodyさん2007/09/17(月) 17:26:26ID:???
html内に<? php include("menu.html") ; ?>でメニューをインクルードしたいんですが
なぜかブラウザで表示すると<? php include("menu.html") ; ?>で取り込んだ部分の直前に余計な空白がはいるんですが
どうしたらいいですか?
0827nobodyさん2007/09/18(火) 12:31:35ID:???
>>823
自己解決って、、、>>820のアドバイスの賜物だろうが
0828nobodyさん2007/09/18(火) 22:04:51ID:qwo2PkVO
モジュールを評価して欲しいんですが、どこのスレがいいでしょうか?
0829nobodyさん2007/09/18(火) 22:50:24ID:???
ここでいいよ
0830nobodyさん2007/09/19(水) 16:23:35ID:???
>>826
BOM?
0831nobodyさん2007/09/19(水) 22:11:32ID:rpyBUC34
>>829
間違えて違うスレに書き込んでしまってました。
スルーされたので、再依頼です。

機能としては、文字を整形するものです。
タグが使えない掲示板などでも、きれいな表の状態を維持したまま書き込めるものです。

公開ページになります。
http://penlabo.web.fc2.com/PHP/HTML-AA.html

よろしくおねがいいたします。
0832nobodyさん2007/09/20(木) 01:40:01ID:???
>>831
正に今俺が欲しいモジュールだった。
ありがとう もらってく
0833山田真一2007/09/20(木) 10:32:41ID:RRR2JFqm
最近WEBの仕事を始めた者ですが自社のHPのPHPのページが

Warning: main(db/.php): failed to open stream: No such file or directory in /home/webmaster/public_html/link/yomi.php on line 21

Fatal error: main(): Failed opening required 'db/.php' (include_path='.:') in /home/webmaster/public_html/link/yomi.php on line 21


となって表示されません。
一応21行目を確認したら

require("db/$cfg[db_sql].php");

となっていました。
誰かわかる方教えてもらえませんか?
0834nobodyさん2007/09/20(木) 11:18:55ID:???
>Failed opening required 'db/.php'
これみれば、db/.phpというファイルが無いエラーだってわかるべ。

require("db/$cfg[db_sql].php");
この$cfg[db_sql]、おそらく db_sql が未定義なんだよ。
自分の環境に合わせて適切な設定をしてみ
08358332007/09/20(木) 11:24:07ID:RRR2JFqm
>834
ありがとうございます^^
とりあえず色々やってみます。
0836nobodyさん2007/09/20(木) 14:47:21ID:ZlZ80BsF
BASIC認証について質問です。
色々BASIC認証型のサンプルスクリプトを拝見させて頂いてるのですが、
ユーザ名・パスワードを記述してあるテキストファイル(またはそれに順ずるもの)
が用意してあり、認証画面にて照らし合わせて認証可か認証不可かを判断させていますが
これじゃあテキストファイル(またはそれにry)を読み取られたら意味ないですよね?
というかBASIC認証っていうのはこーいうものなのですか?
またはそのテキストファイ(ryを読み取られないようにする方法があるのでしょうか?
0837nobodyさん2007/09/20(木) 14:56:45ID:???
>>836
そもそも.htpasswdなどの.から始まるファイルは
UNIX上では隠しファイル扱いになる
またアパッチ上で.htとつくファイルは表示できないように
設定されているのでそれをいじらない限りは外部から直接
アクセスして表示するというのは難しいと思われる
0838nobodyさん2007/09/20(木) 14:56:55ID:???
>>836
phpのスレで聞いてるのは理由があるの?

まあphpというのを考慮しないで答えると、
まずBASIC認証時のパスワードファイルは生パスワードが入ってるわけじゃありません。
そしてそのファイルは、httpdの実行時のユーザーから読める必要はあるが
httpd経由で読める場所の外に置くことは可能。

まあ生パスが入ってないかわりに、通信経路は生パスが通るけどな。
てかやってみりゃいいじゃん
08398362007/09/20(木) 15:00:44ID:ZlZ80BsF
>>837-838
返信ありがとうございます。
ええ、ようするに>>837さんと>>838さんがおっしゃるような
.htaccessを使ったBASIC認証なら問題ないと思うんですが、
以下URLのような認証方法について疑問だったので質問させて頂きました。
ttp://masago.kir.jp/php20050208.php
最後尾のサンプルを見ていただけると幸いです。
0840nobodyさん2007/09/20(木) 15:08:33ID:???
>>839
それこそphp側でどうにでもなるだろう
phpのモジュールを使わないBASIC認証と同じようにもできるんだから
心配ならそうすれば。

あと、BASIC認証は.htaccessが必須ってわけじゃないよ
0841nobodyさん2007/09/20(木) 15:12:49ID:???
>>840
thxです。
もう少し色々調べてみますね。
0842nobodyさん2007/09/21(金) 15:17:45ID:ChIVEQuV
なかなかよい会社だったよ
http://www.tyranno.co.jp/
0843nobodyさん2007/09/21(金) 15:58:14ID:???
最短一致の置換についてお願いします。

$str = "bascad";
$word = str_replace("a","", $str);

これで1回目の a だけを置換したいのですが

$str の文字列は変化する
$str の前後に文字を追加することができない

この2つの条件をクリアして置換するにはどうすればいいのでしょうか?
お願いします。
08448432007/09/21(金) 16:32:00ID:PQ+E1Iaz
> $str の前後に文字を追加することができない

間違った、$strの前後じゃなくて a の前後です
0845nobodyさん2007/09/21(金) 16:48:56ID:???
>>843
eregとかpreg使ったら?
0846nobodyさん2007/09/21(金) 17:10:36ID:PQ+E1Iaz
>>845
とりあえずpreg_replaceでやってみました。
しかし全部置換されてしまいます。
$str = "
<td>aaa</td>
<td>bbb</td>
<td>ccc</td>
・
・
・
<td>zzz</td>

一応こんなのがずっと続くんですが、今は
preg_replace(/<td>.*?<\/td>/,"",$str);

こんな感じでやってますが全部置換されてしまいます。
0847nobodyさん2007/09/21(金) 17:13:03ID:HijYleaz
URLからクエリを取得する時にURLに?を入れず
http://a.net/testphp/aa/
みたいにして取得する事は可能ですか?
testphpディレクトリにindex.php
aaを受け取りたい
0848nobodyさん2007/09/21(金) 17:28:50ID:???
>>846
pregなら第4引数にリミット入れられる

.>>847
mod_rewrite使うか
testphpをディレクトリからphpファイルに変更して
そのphpの中でuriをパースして変数にセットするとかかな・・・
0849nobodyさん2007/09/21(金) 17:32:47ID:HijYleaz
>>848
ありがとうございます

調べてみます
0850nobodyさん2007/09/21(金) 20:05:09ID:7snxIuqJ
PHP初心者です。事情によりどうしても
PHPのプログラムを使いなにかを作成しなければならなくなっています。
ですので、以下のサーバ環境で
OS
Linux[CentOS 5] kernel 2.6.18

Webサーバ
Apache 2.2.3

データベース
MySQL 5.0.22

Perl
5.8.8

PHP
5.1.6

http://cgikon.com/free_info/detail_76.html
のプログラムを動かそうとしたのですが
きちんとアップロードしたにかかわらず

Notice: Undefined variable: record in /var/www/html/yuge1/PHP/moriguchi/9・9楠-doc/question_1.php on line 33
と同じ文が連続で16個出現し
Notice: Undefined variable: answer in /var/www/html/yuge1/PHP/moriguchi/9・9楠-doc/question_1.php on line 54
という文が最後に付き
更に文字化けしています。
どうかお助けください。
0851nobodyさん2007/09/21(金) 20:09:39ID:???
>>850
最初のは@つければ出なくなる気がする
0852nobodyさん2007/09/21(金) 20:18:05ID:7snxIuqJ
>>850
すみません。どこに付けたらよろしいでしょうか?
0853nobodyさん2007/09/21(金) 20:21:35ID:7snxIuqJ
>>852
間違えました。
>>851
すみません。どこに付けたらよろしいでしょうか?
0854nobodyさん2007/09/21(金) 20:39:24ID:???
>>853
>>1
0855nobodyさん2007/09/21(金) 20:53:01ID:???
<?php

if ($record == null) {
    echo 'なし';
}
else {
    echo 'あり';'
}

こんな感じで$recordを宣言せずにいきなり参照してると発生するんじゃなかったかな

<?php
$record = null;    // ←追加
if ($record == null) {
    echo 'なし';
}
else {
    echo 'あり';'
}

こんな感じでちゃんと最初に宣言しておけば出んようになる
文字化けは環境によって色々違うから何とも言えない
エラー出たときのみ出るなら文字コード関係をあわせれば良い筈
■ このスレッドは過去ログ倉庫に格納されています