くだすれPHP(超初心者用)3
at PHP
1:nobodyさん
07/10/25 16:04:31
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
URLリンク(www.php.net)
URLリンク(jp.php.net)
---前スレのテンプレここまで---
前スレ: くだすれPHP(超初心者用)2
スレリンク(php板)
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 57
スレリンク(php板)
△▲ WebProg 初心者の質問 Part16 ▼▽
スレリンク(php板)
完走したら、雑談スレで待機でどうでしょう
【総合】 Webprog板質問雑談スレッド 1
スレリンク(php板)
2:nobodyさん
07/10/25 16:05:30
前スレみてたら、これが面白そうだったので、これもはっとく
PHPプロ!PHP講座
URLリンク(www.phppro.jp)
では、ドゾー
3:nobodyさん
07/10/26 01:14:43
PHPって言語としていまいちだよな
ほかに無料Webスペースで使えるスクリプト言語が少ないっていう程度
Perlよりわかりやすい言語っていう程度
変な言語仕様だ
即死回避
4:nobodyさん
07/10/26 01:15:22
変ってどの辺が?
5:nobodyさん
07/10/27 00:52:57
無理してPerl覚えたのにもっと簡単でいいものが出来るPHPで周りのやつが楽してるんで、嫉妬してるんだなww
6:nobodyさん
07/10/29 21:43:11
下のような戻り値が配列の関数があった時、
function hoge(){
$a = array("X", "Y");
return($a);
}
戻り値の 配列の要素にアクセスする場合に、戻り値を一旦変数に入れるのではなく直接参照することは出来ませんでしょうか。
$r = hoge();
print($r[0]);
hoge()[0] //<-- こんなようなこと出来ない?
7:nobodyさん
07/10/29 22:06:52
それが出来ないのがPHPなんだよね
8:nobodyさん
07/10/29 22:51:03
できないね。リスト系の言語やPerlあたりから流れてきた人は必ず一回は躓く所だね。
9:nobodyさん
07/10/29 23:26:14
rubyでもpythonでもjavascriptでも出来るのに
10:nobodyさん
07/10/30 01:25:10
まぁ1行くらいケチらずに入れろや
11:nobodyさん
07/10/31 06:13:37
input.phpにユーザーがアクセスしてそこにあるフォームに何か入力して
Submitボタンを押すと入力した内容が含まれたtxtファイルのダウンロードが始まる
というようなサイトを作りたいのですがphpで可能ですか?
当り前っちゃ当り前なのかもですがprint関数で試してもファイルを保存ではなく
中身がブラウザに表示されてしまいそれを手動で保存してもらわないといけないので
そこをなんとかしたいです。
12:nobodyさん
07/10/31 06:35:32
>>11
URLリンク(jp2.php.net)
13:nobodyさん
07/10/31 10:07:47
>>12
ありがとうございます頑張ってみます
14:nobodyさん
07/11/01 18:50:02
image関数について質問です。
画像の左右5pxに黒い背景をつけたいのですが
どのようにすればいいのでしょうか?
黒の画像と合成してみましたが画像の端が消えてしまいました。
15:nobodyさん
07/11/01 19:12:21
キャンバスを10px*10pxでかくすれ
16:nobodyさん
07/11/02 12:05:48
strip_tagはタグ取り除いてしまうんだが
指定したタグをそのまま残して他はhtmlspecialcharsみたいに
そのまま表示をしたい。
そんな関数ある?
17:nobodyさん
07/11/02 18:54:00
>>16
strip_tags
18:nobodyさん
07/11/03 11:41:40
フォームから入力した特定の文字が化けます。
例えば「☆」だと化けませんが「☆あ」だと「?#63908;」みたいに化けます。
なぜですか。
19:nobodyさん
07/11/03 13:38:29
文字コードのせい
20:nobodyさん
07/11/03 16:38:34 GrGF3a3n
こっちあげとくか
21:nobodyさん
07/11/03 18:39:13
PHPでオブジェクトの型を指定したいんだけど。Javaでいう
gattai(Human ore, Human anata) {
return ore.gattai(anata);
}
みたいな?
こういうことやるためには
HumanクラスにgetTypeメソッド
public function getType() {
return "Human";
}
を実装
function gattai($ore, $anata) {
if(is_Human($ore) && is_Human($anata)) {
return $ore->gattai($anata);
} else {
throw Exception();
}
}
function is_Human($human) {
return $human->getType() == "Human" ? true : false;
}
とでもしないと駄目なんかね。
22:nobodyさん
07/11/03 18:51:02 EkQ97k6r
parser errorについて質問です。
メールフォームを作ったんですが、なぜか入力確認画面の表示のところでparser errorが出てしまいます。
# エラーが出ているところ
<html xmlns="URLリンク(www.w3.org) xml:lang="ja" lang="ja">
# それより上の部分
function check_html(){
global $homeurl,$title;
if(NAME_FLG){
$name_chk = MARK;
}
if(EMAIL_FLG){
$email_chk = MARK;
}
if(COMMENT_FLG){
$comment_chk = MARK;
}
if($_POST['copy'] == "on"){
$copy_flg = "E-mailで受信する";
}else{
$copy_flg = "E-mailで受信しない";
}
?>
<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "URLリンク(www.w3.org)
以上ですよろしくお願いします。
23:nobodyさん
07/11/03 18:54:53
>>21
駄目でないよ
>>22
short_open_tagをoffに
24:nobodyさん
07/11/03 18:55:29
コメントの/*と*/を使ってエラーが出てるとこを特定しろ
25:nobodyさん
07/11/03 18:58:57 UiuKYuS+
DBなしの携帯用シンプル掲示板をサンプルデータを使って勉強中です
デザインとロジックを分けて作ってあるのですが
デザインのhtmlファイル内の各所に
{rval hr} とか index.php?{rval param} のように
{rval --} とあります。
htmlファイル内にphpを埋め込む際は下記のような記述が基本だと思っていたのですが、くくられていなかったりaltタグの中に入っていたりします。これはどういうことでしょうか?
<?php
?>
26:nobodyさん
07/11/03 19:05:47
テンプレエンジン使ってんじゃねぇの?
まぁ自力でも置換できるけど
27:nobodyさん
07/11/03 19:06:47 EzkHevL1
ここに書くか。
【PHP】下らねぇ質問はここに書き込みやがれ 58 立ててくる。
28:nobodyさん
07/11/03 19:11:31
乙って漢字は下の土台部分がどっしりした感じがいいよな
29:nobodyさん
07/11/03 19:15:50
お待たせしました。
「下らねぇ〜」がない間、ここに居候させてもらってた皆さんは移動。
【PHP】下らねぇ質問はここに書き込みやがれ 58
スレリンク(php板)
30:nobodyさん
07/11/03 19:18:03
>>21
まったく同じように機能するわけじゃないけどね
URLリンク(jp2.php.net)
31:nobodyさん
07/11/03 20:43:13
>>30
不勉強でした、一応あるんですね・・・。
その辺読んでみます。
32:超初心者
07/11/05 18:43:22 s8UgZp9y
php勉強中です
カウンターを造るところで一つ疑問点が
<?php
$fp = fopen("count.txt", "r+");
$iCount = fgets($fp, 64);
flock($fp, 2);
fseek($fp, 0);
$iCount++;
fputs($fp, $iCount);
fclose($fp);
print $iCount;
?>
だとカウントがあがらない
$iCount++;を$iCount = $iCount + 1;にするとカウントがあがります。
$iCount++;が効かないのかと思いましたが
違うスクリプトで
<?php
$filename = "count.dat";
$file = fopen($filename, "r+");
flock($file,2);
$count = fread($file, filesize($filename));
$count++;
print "$count";
rewind($file);
fwrite($file, $count);
flock($file,3);
fclose($file);
?>
これだとカウントが上がります
どなたか説明していただけないでしょうか
33:nobodyさん
07/11/05 18:49:38
>>32
やってみたら上のスクリプトでも上がったよ。
34:nobodyさん
07/11/05 18:57:07
デバッグは変数を var_dump() して中身を見る、というのが基本
$iCount++; の動作がおかしいと思ったら、その前後で変数を調べてみればいい
おそらく $iCount に余計なスペースが含まれているのが原因
$i = "1 "; の場合、$i++ ではカウントアップしないが、$i = $i+1; では増加する
あと、flockのタイミングに問題があるのでファイルロックについても一般的なお勉強が必要と思う
35:超初心者
07/11/05 19:13:14 Sif87GT6
32です
やっぱり家のは上がらないです。
36:nobodyさん
07/11/05 19:14:52
そうか
37:nobodyさん
07/11/05 19:18:07
ID違うしw
38:nobodyさん
07/11/05 19:21:01
ちなみに俺は両方上がらなかった。 PHP5.1.6
原因は>>34と似たようなもんだったけど。
同じソースのはずなのにどこの違いで
みんなの結果が違うのかが気になる。
39:nobodyさん
07/11/05 19:39:54
俺は最初にログファイルに0書いてからやったけど
40:nobodyさん
07/11/05 19:46:08
>>39
俺のはログファイルを作ったときに数字の後に改行が入ってしまったから
カウントされなかったのかもしれない
41:超初心者
07/11/06 16:36:17 blXO/asx
報告します
<?php
$fp = fopen("count.txt", "r+");
$iCount = fgets($fp, 64);
flock($fp, 2);
fseek($fp, 0);
$iCount++;
fputs($fp, $iCount);
fclose($fp);
print $iCount;
?>
count.txtを変数化しました。$db
そして$iCount=fgets($fp,filesize($db));
にしたらカウントが上がりました。
php5です
42:nobodyさん
07/11/06 17:01:40
それは関係ない
43:nobodyさん
07/11/06 18:33:16
>>41
34氏と40氏のレスが全てだと思う
インクリメント演算子は数値型(intその他)の他に文字型(string)に対しても
有効なんだけど、NULL、boolean以外にコントロールコードを含む文字列に
対しては無効。
だから、PHPスクリプトに読ませるファイルのデータにも注意しないとね。
例えば初期値0を書き込んだファイルの16進ダンプを取った時に
30
のみ書かれている場合は良いけど、その後ろにCR+LFやLFが付いている
30 0d 0a 又は 30 0a
などのデータは余分なコントロールコードを排除しないかぎり
そのままではインクリメント演算子で加算はできないよ。
44:nobodyさん
07/11/07 12:10:07
urlencode()ではなくrawurlencode()を使わなくてはいけないケース
(またはその逆のケース)って、どういう場合が考えられますか?
45:nobodyさん
07/11/09 18:37:25 /x/z4zSE
質問お願いします。
200711 2007101 などを
20070101 20071001 に
変換する関数とかってないでしょうか?
ない場合どうやって分離するか教えてください。
46:nobodyさん
07/11/09 18:40:13 /x/z4zSE
あ、phpのバージョンは4.3.10です。
47:nobodyさん
07/11/09 18:41:57
法則性が見出せない
48:nobodyさん
07/11/09 18:49:12
2007年1月1日がきたら「200711」になるし
2007年1月10日がきたら「2007110」になるし
2007年10月1日がきたら「2007101」になるし
2007年10月10日がきたら「20071010」になるし
49:nobodyさん
07/11/09 18:51:54
>>45
例えば2007121が
20071201、20071021のどちらかを見分けられないから無理ぽ
取得する時にそのようにするしかないかと
50:nobodyさん
07/11/09 18:53:49
20071021じゃなくて20070121でした
51:nobodyさん
07/11/09 19:31:44
>>49
そっか(´・ω・`)
ありがとうございました。
52:nobodyさん
07/11/10 00:26:51
mb_convert_kana て、
PHP5.24では使えないのでしょうか。
4.4.1のサーバーで使えてたファイルを
PHP5.24にアップしたら、エラーがでます。
メールフォームで全角で入力された文字を、
次の確認画面で、半角で表示させたいのですが、
もしmb_convert_kanaが使えないなら、他の方法はありますでしょうか。。。
53:nobodyさん
07/11/10 01:54:48
>>52
mb_convert_kanaはわからんけど、
preg_replaceでがんばってみては。
URLリンク(jp2.php.net)
もしくは全角が入力されてたらエラーページにいくようにしたりとか。
携帯向けってわけじゃないなら、JavaScriptあたりで、全角のチェックいれてみたり。
携帯だったら、inputタグにistyleとか要素突っ込めば、IMEのデフォルトを半角に出来たりしたきがする。
54:nobodyさん
07/11/10 02:25:51
>>52
使えるよ、変換できるよ
そのサーバーでmbstringが有効になっていて、かつ、mb_convert_kanaに
適切なオプションを引数として渡して駄目ならわからん
55:nobodyさん
07/11/10 09:18:23
>>52
>>54が使えるっていってるし、とりあえず、
phpinfo();
あたりでmbstringが有効になってるか確認することが必要なのかね。
56:nobodyさん
07/11/10 10:43:48
エラーが出た時、解決の為の一番のヒントは、そのエラーメッセージの中にある
57:nobodyさん
07/11/10 11:31:39
みなさんご丁寧にありがとうございます。
phpinfo();でみたところ、
mbstriongが有効になってませんでしたorz
preg_replace、やってみましたが、どう使えばいいのか・・・(汗)。
たとえば身長を全角で入れて、その数字をわり算したいのですが、
全角だとそのわり算部分でエラーがでるので、
半角に事前に変換した上で、わり算に持っていきたいのです。
無難にjavaスクリプトでエラーチェックしたほうがよいのかもですね。。。
58:nobodyさん
07/11/10 12:02:20 kqDw9Pxy
PHP 5.2.5 が出てたのでage
59:nobodyさん
07/11/11 00:35:28
>>57
おそくなっちゃったけど
たとえば、全角が表示されてたときにエラーページに行くためのフラグを立てるだけだったら、
if( preg_match("/^[0-9]*$/", $_POST["sincho"]) ){
//半角数字で記述されてた場合
}else{
//それ以外のまちがった記述の場合
}
とかにするとかかな。
preg_replaceで置換する場合は
$str = preg_replace("/A/", "A", $_POST["shincho"]);
とかやると、全角Aで書かれた文字が半角Aになる。
変換表を作って変換させなきゃいけなくてうざいけど。
そして、もっと効率のいい方法があるきがするけど、思いつかなかった。
60:nobodyさん
07/11/12 00:29:44 jDp7PoYP
C言語歴2ヶ月なんですが最初にCでCGIを作るのはむずかしいと聞いて
PHPをやろうと思いどうすればできるのかを
調べたのですがどうすればPHPを使えるのかがよくわかりません・・・
apacheを使ってやろうとしているのですが
あるサイトでhttpd.confの中にある文を書き加えるというのがあり
やったのですが上書き保存しようとすると
「フォルダを作成できません。パスおよびファイル名が正しいか
確認してください」と出てきます・・・
それとapacheをstartさせてもerrorと出てきてしまい
どうすることもできません。
わかる方教えてください。
61:nobodyさん
07/11/12 00:48:04
まずエディタの使い方がおかしい
62:nobodyさん
07/11/12 02:37:46 hPj5yJAt
>>61
お返事ありがとうございます。
どこがおかしいのでしょうか・・・?
ちなみにhttpd.confの書き換えのやつは保存というか
無理矢理ぶち込んでできたんですが相変わらず
エラーと出ます・・・
というかずっとググってたんですがyahooで検索してみたら
PHPエディタというのが出てきたんですが
初心者はこっちでやったほうがいいんでしょうか
63:nobodyさん
07/11/12 11:55:27 cLhnRAhS
>>62
よくわからんがSSHで操作するのがいいと思うんだが。
質問です、メールを解析するのに
PEARのMail_Mimeを使う方法ではできました。
これを自分で解析する場合、かなり手間暇かかりますか?
めちゃくちゃアバウトな事言ってるのは承知の上での質問で申し訳ないですが…
64:nobodyさん
07/11/12 13:40:43
>>63
どこまでやるかによる
メーラー並みのことをやると湯水のごとく時間は消えていく
65:nobodyさん
07/11/12 14:14:19 cLhnRAhS
>>64
現状では添付ファイルなど
内容を解析して
本文やヘッダーを抜き出したり
ファイルのアップロード程度です。
この程度なら作れそうかなと思いました。
解答ありがとうございます。
66:nobodyさん
07/11/12 17:36:32 mA3HDDMg
ディレクトリを作成しようと以下の文を書いてサーバにアップしましたが、
エラーになります。なぜエラーになるのか指摘おねがいします。
$dir = "tetess";
$rc = mkdir($dir, 0777);
if ($rc) {
print "成功";
} else {
print "失敗";
}
67:nobodyさん
07/11/12 17:42:25
tetessのパーミッションは?
68:nobodyさん
07/11/12 17:43:37 cLhnRAhS
>>66
作ろうと思ってるディレクトリのパーミッションは?
69:nobodyさん
07/11/12 17:55:22
エラーの内容次第
70:66
07/11/12 18:36:45
作ろうとしてるディレクトリのパーミッションを777にしたら
無事できました!
意見くれたみなさんありがとうございます。
71:nobodyさん
07/11/12 19:43:02
チャレンジャーだな
72:nobodyさん
07/11/12 20:46:49
pearがインストール?出来ません。
go-pear.bat実行してpear_env.regして、pear.batを実行したら「コマンドまたはファイル名が違います」ってなります。
win98環境です。pearのキャッシュライトは個別にダウンロードして使えてます。
最悪、PEAR::HTTP_Requestを使えるようになれば良いのですが、どうしたら良いでしょうか?
73:nobodyさん
07/11/12 22:55:28
既に入ってんじゃないの?
どうしても使いたいんなら直接落としてrequireしてやれば?
74:nobodyさん
07/11/12 23:02:11
キャッシュライトの場合、何をどこに落すか書かれたサイトがあったのですが、今回はどうも色々関連のあるものも
同時に落さないといけないらしく、だからコマンドで関連性のあるもの一気に落としちゃいましょう的なサイトしか見付ける事が
出来ませんでした…orz
75:nobodyさん
07/11/12 23:28:42
requireなりincludeしたら何がないって出てくるでしょ?
だったらそれを落としてくればいいじゃない。
それとdocumentぐらい嫁
76:nobodyさん
07/11/12 23:51:23 KsyPxw5N
>>63
お返事ありがとうございます。
そのやり方調べてやってみようと思います。
バージョンによってやり方って変わるのでしょうか?
やり方が書いてあるサイトは5.2.3で説明してるんですが
自分は新しい5.2.5をダウンロードしてやりました。
ちなみにそのサイトは
URLリンク(www.standpower.com)
です。
77:nobodyさん
07/11/13 02:23:32
>>75
ありがとうございます。
Warning: Division by zero in C:\Program Files\Apache Group\Apache2\htdocs\sample\pati\test.php on line 2
Warning: include(php) [function.include]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\sample\pati\test.php on line 2
Warning: include() [function.include]: Failed opening 'php' for inclusion (include_path='.;C:\php\includes;C:\php\pear') in C:\Program Files\Apache Group\Apache2\htdocs\sample\pati\test.php on line 2
ここから先に進めませんが、どうしたらいいでしょうか?
78:nobodyさん
07/11/13 18:58:47
>>77
まず調べてから言えば?
1番目のエラーは
検索したら3件目に出た。
エラーが2行目にあるんだから2行目に使ってる物をechoでもしてみろ。
2番目も3番目を調べたらすぐわかる。
甘えんな。
79:nobodyさん
07/11/13 19:03:37
え、てか読めば分かるじゃん・・・。Division by zeroを検索しないと分からんのか・・・
80:nobodyさん
07/11/13 19:20:37
>>79
調べなきゃわからん俺程度の人間でもパッと解決できるんだ。
だから>>77にはせめて調べろと言いたい。
81:nobodyさん
07/11/13 19:42:16
>>79
そんなことばかり言ってるからお前は器が小さいんだよ
82:nobodyさん
07/11/13 19:48:42
それにしてもこの手のエラーメッセージを読まない人はどういう思考をしているんだろう。
最初から読む気がないのか、読もうとしたけど読めないのか、読んだ上であえて質問しているのか。
それぞれに対して突っ込みどころはあるんだけども。
純粋に気になる。
83:nobodyさん
07/11/13 19:49:42
みんな>>80みたいなヤツだといいんだがな。
84:77
07/11/13 22:03:22
うはっ、すいません…エキサイトの翻訳してみたんですが、あまりの意味不明さに諦めてました。
今から調べてみます!
85:nobodyさん
07/11/13 22:26:14
>>84
エラーメッセージは検索窓にフレーズをそのままぶっ込むもんです。
「英語だからわかんない」とか思ってそういう手に走ると
failed to open stream 「ストリームを開くために、失敗されます」
Failed opening 'php' for inclusion 「包含のための失敗した初めの'php'」
余計わからなくなる。
86:nobodyさん
07/11/13 22:31:28
了解です!ありがとうございます。
87:nobodyさん
07/11/13 23:00:02
「to 動詞」は「〜のために」という意味で固定かよ。
「opening」は「初めの」という訳しか思いつかないのかよ。
・ストリームを開くことに失敗しました
・includeで'php'というファイルを開けませんでした
素で疑問なんだが、もしかして現役中学生なの?
高校生なら英語の授業でもっと難しい英文やってるだろ?
正直、プログラミングをやるにはまだかなり早いんじゃないかと。
プログラム言語って英文法の構造を元に設計されているから。それに当然エラーメッセージやドキュメントは英語だし。
英語を先に高校レベルまで勉強したほうがいい。真面目な話。
88:nobodyさん
07/11/13 23:18:00
> エキサイトの翻訳
89:nobodyさん
07/11/14 17:43:26
質問です。
ローカルでサーバを作ったのはいいのですが
PEARなどのパッケージをインストールするのに
SSHなどで起動したいのですが
127.0.0.1やlocalhostで接続しても接続できません。
ローカルの場合どうやって起動すればいいのでしょうか?
Puttyを使ってやってSSHで接続してました。
90:nobodyさん
07/11/15 10:12:38
gzip 関係で躓いてます。
と、あるサーバーに対して、Accept-Encoding: gzip リクエストヘッダーを付加して、
GET メソッドにてアクセスし、レスポンスヘッダーに
Content-Encoding: gzip
Content-Length: xxx
と、返ってきたので gzuncompress を使用した所、以下のエラーが…
PHP Warning: gzuncompress(): data error in paipan.php on line 277
使っている PHP は Windows 版の 5.1.6 でマニュアルには、バイナリビルトインされているとの事なので
php.ini は特に編集していません。gzdecode, gzinflate を試しても以下のエラーが…
PHP Fatal error: Call to undefined function gzdecode() in paipan.php on line 277
PHP Warning: gzinflate(): data error in paipan.php on line 277
これは、サーバー側のデータがおかしいのでしょうか?
phpinfo.php の zlib の所はこうなってます
URLリンク(www.imgup.org)
91:90
07/11/15 10:29:50
ぐぁ…自己解決しました。
fopen のパス名の接頭語に圧縮ストリーム compress.zlib:// ラッパー識別文字列を
付加する事によって、コンテンツを取得した際に解凍されて戻ってきました…
でも、なんかスッキリしない…これで、いいのでしょうか?
92:nobodyさん
07/11/16 13:25:48
まだphp5を勉強し始めて2週間くらいですが、本は何冊か読みました。
そこで疑問に思う事があるのですが、PEARやSmartyは必要でしょうか?
もちろん使う環境によって違うのでしょうが、oopを理解してPEARなどの各ライブラリのオプションを覚えて使いこなすのは手間に感じてなりません。
初心者の戯言ですが、ご意見お願いします。
93:nobodyさん
07/11/16 13:34:45
目標のものをつくる手段なんてどうでもいい
つくれるかどうかだ
94:nobodyさん
07/11/16 18:43:48
必要でしょうか?なんて言ってる時点で乙
95:nobodyさん
07/11/16 21:48:15 SDmAZVUY
>>94
まあ初心者相手にそう悶えるな初級者くん
>>92
自分で遊んで使うのには、まったくいらんと思うよ俺は
96:nobodyさん
07/11/17 01:30:35 LKV8TtnR
>>92
>PEARなどの各ライブラリのオプションを覚えて使いこなすのは手間に感じてなりません。
ライブラリやフレームワークはそういうデメリットがあるよ。
要するに楽して作るためのものなんだけど、そのメリットが上回らないなら使う意味はないです。
それに、内部でどんな処理をやっているのか理解していないとはまることも多いし、勉強中
ならこれらを使わず書いていった方がいいとおもうよ。
PHPの質問はいろんな掲示板で見かけるけど、意味もわからず本か何かのサンプル打ち込んで
簡単なエラーに対処できなかったりトンデモなソース書いたりしてる人多いし。
どういう目的で利用するためのもので、どんなものがあるのか知っていれば十分かな。
習熟したころに思い出して、必要と思ったときに使えばいいと思う。
97:nobodyさん
07/11/17 05:19:29
>>92
もしデータベースを絡めるならPDOの扱いくらいは覚えておいて損はないと思う。
98:nobodyさん
07/11/17 10:07:21 gYmumvx4
<html>よりも上に/*〜*/でコメント入れたり、phpの構文などを色々入れました。
するとブラウザ上にスペースができてしまいます。
スペースができない様に書く方法はありますか?
99:nobodyさん
07/11/17 11:26:53
改行しない
100:98
07/11/17 12:26:52 gYmumvx4
>>99
物凄く使いにくいです
皆さん改行せずにやっているのでしょうか?
101:nobodyさん
07/11/17 12:27:32
BOM付いてるんじゃないの?
102:nobodyさん
07/11/17 12:32:12
>>98
?><html>
103:98
07/11/17 19:22:04 gYmumvx4
>>101使ってないです。ってかまだそれわかりませんw
>>102やってみましたが変わりませんでした
104:nobodyさん
07/11/17 19:27:21
分かれよ
105:nobodyさん
07/11/18 00:06:16 7O6DTqoC
<?php
{
$i = 5;
print $i;
}
{
print $i;
}
?>
一つ目の括弧の終わりでC言語とかみたいに
$iの効果(スコープ)を消したいんですけど、
何か方法がありましたら教えてください。
106:nobodyさん
07/11/18 00:21:57
無いよ。PHPの決まり事に慣れるしか無いだろうね。
107:nobodyさん
07/11/18 00:35:02
>>106
ありがとうございます。
気づかないうちに値を変えてしまっているとか心配したんですけど、
関数にすれば守られるようなので(globalを付けていないから?)、
スタート部分(Cのmainの部分)を出来るだけ短くすれば大丈夫そうです。
<?php
{
$i = 5;
print $i;
Hoge();
}
function Hoge()
{
$i = 10;
print $i;
}
{
print $i;
}
?>
108:nobodyさん
07/11/18 02:38:24
普通はクラスにするけどね
109:nobodyさん
07/11/18 15:35:54 Quc9Cq5K
中の人に質問
unsetしたらその場で必ずメモリは開放されてるんですか?
110:nobodyさん
07/11/18 15:39:33
されてる
111:nobodyさん
07/11/18 21:13:43
質問です
半角スペースで文字列を区切っているテキストファイルを読み込んで
文字列ごとに配列に代入したいのですがどうすればいいでしょうか?
例えば"hoge.txt"を読み込み、その中には
abc def ghi
jkl mno
と書いてあるとすれば、配列aに
$a[0] = 'abc'
$a[1] = 'def'
$a[2] = 'ghi'
$a[3] = 'jkl'
$a[4] = 'mno'
と代入したいです。よろしくお願いいたします。
112:nobodyさん
07/11/18 21:19:50
>>111
file
explode
113:nobodyさん
07/11/18 22:02:19
>>112
explod関数なんて便利なモノがあったんですか。
助かりました。どうもありがとうございます。
114:nobodyさん
07/11/18 22:49:48
$_POSTで値を取得するのに、フォームタグに値を入力してやっているのですが、一度値を入力するとフォームタグ内に入れた値は消えるのですが、ブラウザの更新をするたびに一度入力した値を更新をやればやるほど何度も取得してしまいます
原因と解決策を教えて下さいお願いします
115:nobodyさん
07/11/18 22:57:41
まず、POST後のページを再読込すると、
「ブラウザは再度POSTデータを送信しなければならない」という決まり事がある。
でだ、大きく分けて方法は3つくらいある。
1. GETで送ればいいじゃない -> methodをかえる
2. POSTで受け取った後で、どこかに(GETで)飛ばせばいいじゃない -> header('Location〜")
3. 受け取った時に二重投稿か調べて破棄すればいいじゃない -> チケットでゲイツる
116:nobodyさん
07/11/19 12:57:44 IR8ctjgO
マニュアルについて質問。
インターネット接続環境がない所からでも、
URLリンク(www.php.net)
↑と同じようなマニュアルが欲しいんですが、ページの下の方にある show source で
1ページずつソース表示させて→コピペ→ファイルに保存 と、しないといけないのでしょうか?
117:nobodyさん
07/11/19 14:28:28
>>116
URLリンク(argus.sblo.jp)
とりあえずこの辺でも。
118:nobodyさん
07/11/19 16:06:42 IR8ctjgO
>>117
レスありがとう。
それだと、Windowsしか駄目だし htmlヘルプはキーワード表示できないし…
できたとしても、htmlヘルプは新しいウィンドウ開いてウザイし…
URLリンク(jp2.php.net)
↑オンラインだとこんな感じでキーワード検索できるので、
自鯖に丸ごと持って来れないものかと…
119:nobodyさん
07/11/19 16:41:48 RXlkgnzM
>>116
インスコ時に含まれてなかったっけ?
120:nobodyさん
07/11/19 16:43:41
PHP: Download documentation
URLリンク(www.php.net)
121:nobodyさん
07/11/19 23:18:25
120 にあるよ。HTML版が。
ただ検索はできないから、関数一覧からページ内検索かけるか、自力で検索組むしかないね。
122:116
07/11/20 00:00:59 bjL1gLBS
>>119
ないです。
>>121
やっぱそうですか…。
show source → コピペ → 保存 じゃなくて、
各ページの show source の URL を GET して、内容を切り出して、〜.php に保存
ってやるしかないようですね…問題は各ページの show source の URL リストをどうするか…
URL に規則性があれば作れると思うけど…
レスくれた人ありがとうございました。
123:nobodyさん
07/11/20 16:00:42
>>122
すまん、いまいちやりたいことが理解できないんだが・・・
Documentをダウンロードしたいだけじゃないの?
中身検索は、Googleデスクトップとかいれとくとか、
なまずでも入れるとかすれば?
124:116
07/11/20 17:00:33 FtfBoc0Z
>>123 ん〜、何て言ったらいいんだろう…
URLリンク(www.php.net)
ここでダウンロードできる html とか chm は
URLリンク(www.php.net)
↑こことは違うでしょ。んで、ここのマニュアルのシステムを丸ごと
自分の所のサーバーにおいて使いたかった訳。(←これが本来の質問の趣旨)
それを行うにはページの下の方にある show source で、
いちいち .php を保存しないといけないのかなって聞いたの。
html はベタな html だけでサーバーに入れて使えるけど、検索できない
chm は検索できるけどプラットフォーム依存。使う所にコピーしないと使えない
(直す方法は知ってるけど、いつまでたっても文字化け直らない)
show source の URL リスト取得する方法考えてたんだけど、(スクリプトは途中まで作った)
html をサーバーにぶっ込んで、それを検索させるシステムを作る方が楽な気がしてきたなぁっと…
125:nobodyさん
07/11/20 17:36:23
もうjp*.php.netをホスティングしろよw
126:nobodyさん
07/11/20 18:31:45
BOMってなんですか?
127:nobodyさん
07/11/20 20:00:33
>>126
爆弾
128:nobodyさん
07/11/21 00:17:45
それはBOMB
129:nobodyさん
07/11/21 08:53:29 gCXzQuZ6
require_onceを入れた場所にブラウザでスペースができます
呼び出してるファイルにも余分なスペースは書いてないのですが、
スペースをなくす方法教えてください
130:nobodyさん
07/11/21 10:05:52
変数にホワイトスペースがあるならtrimで解決。
そうでないならrequire_onceを入れた場所もしくは前後に
スペースが必ずあるのでそれを探してとるとなくなります
っとしか回答できない
131:129
07/11/21 10:43:02
>>130ありがとうございます
変数内にホワイトスペースがなく、require_onceの前後にもスペースはありません
タブでインデントしかしていないです
132:nobodyさん
07/11/21 11:53:49
>>124
URL取得ならireaとかのダウンロード用のフリーソフトで
軒並みおとせば?
ローカルでの検索なら、なまずとかで十分だと思う
133:nobodyさん
07/11/21 11:54:20
>>131
ソースはりつけてみ。
134:nobodyさん
07/11/21 19:47:02
>>131
BOM
135:たまま
07/11/21 21:44:06 ACwa23UP
RSSより取得した日付の変換で困っています。
'火, 13 11 2007 17:04:12 +0900'を'2007.11.13'と変換して表示したいのですが
うまくいきません。どうしたらいいでしょう
136:nobodyさん
07/11/21 21:53:22
日付関数、文字列関数のページを見る
137:129
07/11/22 09:00:06
>>134ありがとうございます。
BOMで検索してutf-8nにしたら一端はスペースが消えましたが、
また戻ってしまいます。
もう一度require_onceなどで呼び出すファイルなどを見直すと、
sjisなどに戻ってるのでそれが原因かもしれません。
使用エディタが悪いから戻るのでしょうか?
一応使用エディタはJmEditor2です
138:nobodyさん
07/11/22 14:34:53
>>137
改行やめたらなくなる
139:nobodyさん
07/11/23 00:48:12
>>137
終了タグ "?>" 使ってる?
140:フリーメール
07/11/23 03:08:36 6ZV7uhRm
質問です。
プログラムを書いたことはなく、
既存のスクリプトを設置したり、プログラマに改作をお願いしたりすることがあり
多少のスクリプト(フォームからcsvに保存するスクリプトなど)のソースコードが
何をしてるのかはなんとなくで読める程度の知識しかありません。
最終的には携帯向けフリーメールシステムを作りたいと思っています。
仕様としては、
・3キャリア対応で絵文字が使える
・マイページ機能を持ち、受信BOX、送信BOXをウェブで確認できる
・メール送受信はxxmailと同仕様
(docomo.ne.jpに送る場合docomo.xxne.jpにして送信すると送信元アドレスは[ユーザID@xxne.jp]になる)
(キャリアアドレスからメールを受信した場合はFromが
[送信者アカウント@docomo.ne.jp]⇒[送信者アカウント@docomo.xxne.jp]と自動変換される)
改行が多すぎると言われたので続きます↓
141:フリーメール
07/11/23 03:09:28 6ZV7uhRm
続きです
・アラートメール本文中にマイページへのURL付与
・マイページはユーザ専用URLを発行(ログイン不要)
・PHP+MySQLで作りたい
・アドレスはユーザID@ドメインで発行
・3キャリアのドメインに対してメールを送信した場合に限りポイント付与
・メール本文内、ユーザマイページへのテキストリンク広告挿入機能
・広告挿入は管理画面からおこなえる
・登録フローは
空メール送信⇒自動返信による登録フォームURL返信⇒フォーム入力⇒本登録完了メッセージ自動返信
・受信拒否ワード設定機能(マイページにて設定)
・指定受信設定(マイページにて設定)
・本文中にURLがある場合受信拒否(マイページにて設定)
・登録情報更新機能
・獲得ポイント確認画面(マイページにて)
・タイマー送信機能(マイページにて設定、指定した時間にメールが送信される)
・メーリングリスト作成機能(マイページにて設定)
・デコメ送信機能
こんな感じです。
これを1からプログラミングする場合、
もちろんPHPの学習だけでなくサーバ、DBについても知識を得る必要があるかと思いますが、
オススメの書籍(これらがわかりやすいんじゃない?系の)を教えていただけませんか?
142:nobodyさん
07/11/23 04:40:03
そこその頭があって三年みっちり勉強したらそこそこのができるよ。たまにバグが出てサービスとまるくらいのが
143:nobodyさん
07/11/23 05:31:06
>>141
まずマニュアル
144:nobodyさん
07/11/23 13:01:58
とりあえず、セッション必須だし、セキュリティ対策もしっかり勉強しないと。
145:nobodyさん
07/11/23 13:28:18 GKdORPfq
>>142 自分は6年目ですが、いまだに雇ってもらえません。PHP3のころから
やってます。
146:nobodyさん
07/11/23 13:46:39
PHPそのものも周辺知識も業務知識もあるのに雇ってもらえないとしたら、
人格に問題があるのではアルマイカ?
147:フリーメール
07/11/23 13:52:01 6ZV7uhRm
>>141みたいなことやれるようになるまで3年かかりますか??
もちろん自分のやる気と取れる時間にもよると思いますが・・・
148:nobodyさん
07/11/23 14:13:40
とりあえず予習復習をちゃんとやってたとか、
夏休みや冬休みの宿題は計画的にやってたとか、
そういう資質がないと無理だなw
149:nobodyさん
07/11/23 14:34:58
>>141
>> オススメの書籍(これらがわかりやすいんじゃない?系の)を教えていただけませんか?
書籍についてならスレがあるぞ。
【PHP関連の書籍 第4版】
スレリンク(php板)
150:nobodyさん
07/11/23 15:06:10
書籍なんかより、公式マニュアルの方がよっぽどイイと思うが…
151:nobodyさん
07/11/23 18:02:31
セッション変数に値を代入する前に、
$_SESSION["hoge"];
と、あらかじめセッション変数に変数名を登録してから使う必要はありますか?
152:nobodyさん
07/11/23 18:16:51
セッション変数に変数名を登録するという意味が分からない
153:nobodyさん
07/11/23 18:30:19
最近プログラミングの興味が薄れてきたなぁ。
まぁ「プロ」グラマじゃないからいいんだが。
154:nobodyさん
07/11/23 19:29:41 GKdORPfq
プログラマってプログラムにerつけただけじゃないの?プロって言う意味があるの?
155:nobodyさん
07/11/23 20:12:45
>>154
ないよ
プロとプログラムをかけて言ってるだけだろ
156:151
07/11/23 22:45:18
>>152
値を代入する前に、このセッション変数を使うと言う事で、
先に$_SESSION["hoge"];とやっておかないといけないのかと言う意味です。
すいません説明下手で;
157:nobodyさん
07/11/23 23:08:19
>>156
普通の変数と同じでおk
158:151
07/11/24 13:45:26
>>157
ありがとうございます
すいません質問もう2つお願いします
セッション変数に入れた値に保持してられる期限などはありますか?
しばらく日にちがたってセッション変数に格納してあった値が無くなるみたいな
これ最後ですすいません
セッション変数$_SESSION[hoge]を一人の人がショッピングなどに利用していた場合、
同じドメイン上のページで違うユーザによりunset($_SESSION[hoge])が実行された場合、ショッピングに使っていた内容も使用中に突然消えてしまいますか?
もしそうならユーザ別にセッション変数名を変える必要があるとなるのでしょうか
159:nobodyさん
07/11/24 14:15:02
>>158
つマニュアル
160:nobodyさん
07/11/24 14:35:00
プログラムを組もうと思っても、実際に書き始めると自分のコーディングがダメダメに見えてやる気をなくす……。
どうやればいいか、っていうのはわかるんだけどね。。
いくら練ってみても、このコーディングでいいのだろうか、とか思ってしまう。
別に仕事でやってるわけじゃないからスランプ上等なんだけど。
経験を踏んでいけば、大丈夫なのかな……
161:nobodyさん
07/11/24 14:36:42
先に学校の勉強をちゃんと努力したほうがいいんじゃないだろうか
162:nobodyさん
07/11/24 14:42:20
>>160
典型的なダメ人間だなw
163:nobodyさん
07/11/24 14:48:50
なんか、ありがとう。
いわれた通り、自分のコーディングみてやる気なくして放棄してたらダメ人間だよね。
根を鍛えなおします。
スレ汚し
164:nobodyさん
07/11/24 15:30:51 sQgHrbH/
>>158消えない。心配しすぎ。その程度で困らせるような言語はない。
165:nobodyさん
07/11/24 17:55:00
<?php include_once("news.txt") ?>
このようにして更新履歴を表示させるとき
上から3行目だけを取り出すにはどうすればいいでしょうか?
166:165
07/11/24 17:55:52
訂正です
<?php include_once("news.txt") ?>
このようにして更新履歴を表示させるとき
上から3行目 まで を表示させるにはどうすればいいでしょうか?
167:nobodyさん
07/11/24 18:03:37
>>166
そのようにせずに1行ずつ読みこむ
168:nobodyさん
07/11/24 18:04:28
内容を改行区切りで取り出して最初から3つを表示
169:nobodyさん
07/11/24 18:05:26
>>166
file("./news.txt");で読み出して、forで回せばいいじゃん。
170:nobodyさん
07/11/25 13:13:37
POSTで受け取った内容をMySQLDBに入力するのに、
stripslashesとmysql_real_escape_stringで加工すれば十分安全ですか?
171:nobodyさん
07/11/25 13:27:44
>>170
数値ならintvalも。
172:nobodyさん
07/11/25 14:06:45
>>171
おお!そんなのもあるんですね〜
文字か数値どちらが含まれるかわからない場合には必要ないですかね?
文字をintvalで加工すると数値になりますか?
173:nobodyさん
07/11/25 14:20:28
>>170
なんで普通に無害化しないの?
174:nobodyさん
07/11/25 14:35:16
必ず数値ってわかってるなら、intvalしてそれ以外は普通に mysql_escape_string 使っておけば。
%は別にエスケープ。
175:nobodyさん
07/11/25 22:47:46
>>173
その【普通】がわからないんでこのスレで質問させてもらってます
>>174
ありがとうございます
セッション使ってればhidden使う場面ってなくなりますよね?
176:nobodyさん
07/11/26 11:20:07
>>175
なくならないよ。減るけど。
177:nobodyさん
07/11/26 11:38:04
PHPの本スレってどこにあるのですか?
178:nobodyさん
07/11/26 12:17:54
>>177
くだ質のこと?
PHPについて語ろう!みたいなのは無いんじゃないかな
179:nobodyさん
07/11/26 13:52:53
>>178
そうなのですか ありがとうございます
180:166
07/11/26 17:20:47
<?php $fi = file("news.txt");echo "$fi[0]$fi[1]$fi[2]"; ?>でいけました
ありがとうございました
181:nobodyさん
07/11/28 11:50:37
英語が読めないんでこのエラーの意味がわかりません
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
182:nobodyさん
07/11/28 12:23:50 2JTXr2aQ
データベースエラー
sql構文が間違ってないか、データベースに接続してるかを確認すべし
183:nobodyさん
07/11/28 18:44:47
>>181
これを機会に英語勉強汁。
つか、中学程度の英語力でもなんとか読めるだろ。
184:nobodyさん
07/11/28 20:08:39 OEBZIrSP
我が家の不動産サイトに市販の検索CGIを設置したいのですが、全国版からローカル地域にカスタムしたいのですが、なんらかの助言くださる方おられますか?宜しくお願いします。
185:nobodyさん
07/11/28 20:40:08
>>184
カスタムの仕方を教えてくれってこと?
186:nobodyさん
07/11/28 21:03:49 OEBZIrSP
カスタムの仕方なんですが、販売会社ならデータ項目等変更で20万、25営業日との話です。ソースを簡単に触ってできる事ではないんでしょうか?
187:nobodyさん
07/11/28 21:07:07
まぁできると思うよ
188:nobodyさん
07/11/29 12:07:16
ドコモの携帯にはセッション意味ないんですか?
189:nobodyさん
07/11/29 12:55:54
>>188
なんで?
クッキーは使えないけど、セッションID引き回せば?
190:188
07/11/29 14:36:24
>>189
$_SESSION["test"] = 1;としてページをhrefで移動
移動先で
if($_SESSION["test"] == 1) {header("location: test.php");}
として分岐したいのですが、ドコモは思うようになってくれません
auはなりましたけど、sbは未検証です
セッションID引き回すの意味を自分は間違えてますか?><
191:nobodyさん
07/11/29 16:12:05
ドコモは情報送ってくれないんですよ
セッションもクッキーも「あんだよてめえ」としか思ってません
だから使えません
192:nobodyさん
07/11/29 19:28:08
>>190
クッキーが使えないんだから、セッションIDをURLに『引数として』くっつけて次のプログラムに送るんだよ。
193:190
07/11/29 23:29:42
>>192
移動先でgetで取得する訳ですね、なるほど
隠して送るのは無理なんですね、セッションがあるのに残念です
>>191-192
ありがとうございました
194:nobodyさん
07/11/29 23:36:22 YlYVK+go
初心者です。ご教授下さい。
ローカルでテストしている状態ですが、move_uploaded_fileでファイルをアップロードさせようとし、
if (!move_uploaded_file($uploadfile, '$PHOTOTMP$imagefile')) {
$errmsg .= "写真ファイルのアップロードに失敗しました。<BR>";
}
というソースを書いています。
実行するとエラーメッセージは表示されないのですが、指定フォルダに画像ファイルが移動されていません。
上記のスクリプトはC:\Program Files\Apache Group\Apache2\htdocs\testに置いてあり、
画像ファイルの一時フォルダとしてC:\Program Files\Apache Group\Apache2\htdocs\test\phototmp
を作ってます。
変数の中を見ると、
$uploadfileには、C:\WINDOWS\TEMP\php89.tmp
$PHOTOTMP$imagefileには、phototmp/1196345782078128.jpg3
が入っていますが、C:\Program Files\Apache Group\Apache2\htdocs\test\phototmpに画像ファイルが移動
していないのは何故でしょうか?
よろしくお願いします。
195:nobodyさん
07/11/30 02:31:54
何か変だけど
とりあえず
"$PHOTOTMP$imagefile"
196:nobodyさん
07/11/30 08:46:34
>>193
何か勘違いしてるぞ
セッションの仕組みをもう一度勉強しよう。
197:193
07/11/30 14:57:38 MLIN4mxf
>>195-196
あらら><そうなんですか…
公式マニュアルのとこ読みなおしてみます
198:nobodyさん
07/12/01 21:15:29 HxBCRCSR
こっちあげとくか
199:nobodyさん
07/12/02 12:20:00
カウンターを作ったのですが、リロードするたびにカウントが2づつ上がります。
アクセスをやり直すとカウントは1しか上がらないのですが
そう言うものなのですか?
200:nobodyさん
07/12/02 12:23:24
そういう風につくっちまったんだべ
201:197
07/12/02 13:19:32
あ゛あ゛あ゛あ゛ー
脳味噌がオパピーです教えて下さい
クッキーが使えないドコモなどで、セッションIDを受け渡す方法として、
URLに定数SIDを入れる方法とhiddenで渡す方法はわかったのですが、
セッションid以外の情報も持って移動したい時はどうすればいいのですか?
202:nobodyさん
07/12/02 13:23:39
> セッションid以外の情報
具体的には何?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5281日前に更新/165 KB
担当:undef