くだすれPHP(超初心者用)4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/06/13(金) 20:32:36ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
前スレ: くだすれPHP(超初心者用)3
http://pc11.2ch.net/test/read.cgi/php/1193295871/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
0102nobodyさん
2008/07/01(火) 20:24:33ID:???A〜Eの5つの投票対象(固定)に対して1票と1行コメントを同時送信できるスタンダードな(?)ものです
A.txt 〜 E.txtまでを作成し、そこから票数を読んで加算、上書きするという形で一応投票の基本的な部分までは作成することが出来ました
またコメントも別にA_comment.txt 〜 E_comment.txtを用意し、そこの最後の行に追記していくことで保存できるようにしました
そして今、現在の各アイテム票数をランキングにして表示できるようにしたいのです
具体的には、例えばAに15票、Bに20票、Cに5票、Dに1票、Eに50票入っていたとしたら
1位 E(50票)
2位 B(20票)
3位 A(15票)
4位 C(5票)
5位 D(1票)
という風に表示したいのです
またそれに関連して各項目をクリックするとコメントを見られるページに飛ぶという仕様を考えましたが、これはリンクでGETを使ってパラメータで分岐すればいいと考えています
肝心のランキング表示部分をどう作っていいのか分からないので、どなたか教えていただけないでしょうか
ソートについても色々調べてみましたが、票数を並べ替えた後の項目との関連付けをどうやっていいかよく分かりませんでしたorz
010475です。
2008/07/02(水) 02:21:42ID:/ZwHa0Ji今勉強をして、なんとか自己解決できるように
したいと思います。
SQL勉強中です。
亀レスすいません。
0105nobodyさん
2008/07/02(水) 02:48:17ID:???一回、PHPから離れて、MysqlとかでDB構築して、コマンドラインでいろんなSQL実行してみればいいと思うよ。
がんばれ。
0106nobodyさん
2008/07/02(水) 02:49:38ID:???一番最後「HTTP リクエストで独自のヘッダを送信する」にある
ini_set('user_agent', "PHP\r\nX-MyCustomHeader: Foo");
$fp = fopen('http://www.example.com/index.php', 'r');
送信されるリクエスト
X-MyCustomHeader: Foo
とありますが、実際受信側のレスポンスを見ると、
HTTP_X_MYCUSTOMHEADER: Foo
という風に"HTTP_"が付加されていました。
そういうものなんでしょうか?
0108nobodyさん
2008/07/02(水) 12:23:28ID:???Host: www.example.com →HTTP_HOST
User-Agent: PHP →HTTP_USER_AGENT
X-MyCustomHeader: Foo →HTTP_X_MYCUSTOMHEADER
つまりはそういうこと。
0109nobodyさん
2008/07/04(金) 00:37:52ID:q3bb7c0a89.53201 35.45 15.6783にしたいのですがどうしたらいいのでしょうか?
0110nobodyさん
2008/07/04(金) 00:38:48ID:q3bb7c0a0111nobodyさん
2008/07/04(金) 00:39:27ID:???すいません…
0112nobodyさん
2008/07/04(金) 00:43:41ID:???$a = 8953201
$a = preg_replace('/^([0-9]{2})([0-9]+)$/', '$1.$2', $a);
つまり正規表現を使えばよいのではないか。
0113nobodyさん
2008/07/04(金) 00:52:45ID:???ちなみにこれは、前半部分が$1に、後半部分が$2になってるって解釈でいいんでしょうか?
0115nobodyさん
2008/07/04(金) 01:09:53ID:???0116nobodyさん
2008/07/04(金) 12:20:55ID:???<?php
$link = dbx_connect(DBX_SYBASECT, "localhost", "db", "username", "password");
dbx_close($link);
?>
とりあえずこれで、dbx関数とsybasect周りが使えるかどうかチェックしたんですけど
エラーが出てしまいました。
Warning: dbx_connect() [function.dbx-connect]: dbx: module '7' not loaded or not supported
環境はxampp1.6.6 for linuxで、apacheは2.2.8、PHPは4.4.8です。
extensionに設定されたディレクトリに、php_dbx.dllとともに、php_sybase_ct.dllを配置してあるので
読み込まれていない・・・ということは無いと思いますし(apacheの再起動は何度もかけています。)
php.iniの設定も問題なさそうです。
PHPのバージョンも、4.2.0より後発のもので、サポートもしていると思うのですが
どなたか、なにとぞ助力をお願いできないでしょうか。
0117nobodyさん
2008/07/04(金) 13:10:39ID:???0118nobodyさん
2008/07/04(金) 14:04:56ID:???マシン入れ替えていろいろ試してたら混乱してしまった。
0119nobodyさん
2008/07/04(金) 15:33:23ID:???0120nobodyさん
2008/07/04(金) 16:50:08ID:4Xa3cuivPHPバージョンは5
自動変換系は全てパス、スクリプトはUTF-8で記述、
internal_encodingもutf-8とします。
スクリプトの処理内容は
UTF−8エンコードで送られてくる文字列”あいうえお”
を受け取りそれをスクリプト内で
”あいうえお”か判断して”あいうえお”
なら真を返すてだけの単純なものなのですが
”あいうえお”を送っても真を返してくれません。
それで今度はポストするデータをEUCエンコードで送ってみると
あらふしぎ真を返してくれるんです。
PHPスクリプト内に書いてある文字列たとえば
<?php
$a="あいうえお";←ここの部分
?>
はロケールのエンコードで解釈されてる気がするのですが
(OSのロケールはEUC−JPだった)
どうなんでしょうか?舌ったらずで申し訳ありません。。。
012175です。
2008/07/05(土) 00:32:52ID:MACe5BF6なんかutf-8にしないといけない理由とかあるの?
0122nobodyさん
2008/07/05(土) 00:36:49ID:???0123nobodyさん
2008/07/05(土) 01:57:54ID:???送られてくるデータってのは、GETしてるの?
POSTしてるの?
ついでに、どちらでもいいけど、ブラウザがGETorPOSTしたデータを、echoしたら文字化けするの?
真偽値取る前に、そこらへん確認してみては。
0124nobodyさん
2008/07/05(土) 06:27:10ID:???ソースの文字コードがeuc-jpだったというオチでは?
euc-jpの「あいうえお」とutf-8の「あいうえお」じゃ当然マッチしないわ。
0125nobodyさん
2008/07/08(火) 22:48:01ID:nzIgHbiUmail_mimedecodeで添付付きメールを分解したんですが、その添付ファイルを撮影時間の名前で保存したいんです
おそらく、一度保存してからexifデータを読み込み、その後名前を変えるって形ならいけるとは思うんですが
二度手間になってしまうのでもし出来るのならと思いまして
0126nobodyさん
2008/07/09(水) 01:55:27ID:U9Y+NLIi0127nobodyさん
2008/07/11(金) 12:12:19ID:???postfixを使って、phpからメールを送りたいのですが
うまく動作していない状態です。
環境はCentOS5上、Apache2.2.9 PHP-4.4.8 postfix-2.5.2で
全てソースからインストールしています。
直接、mailコマンドでgmailにテストメールを送信したら、正常に送信されたので
ポートの開放や、postfixそのものの設定は問題なさそうなのですが
PHPからmb_send_mailを使用して送信した場合、gmailに送信されずにいます。
php.iniのsendmail_pathには「/usr/sbin/sendmail.postfix -t -i」と
設定しているのですが、エラーログに以下の内容が出力されていました。
Jul 11 11:52:42 localhost postfix/local[31480]: fatal: open database /etc/aliases.db: No such file or directory
Jul 11 11:52:43 localhost postfix/master[23909]: warning: process /usr/libexec/postfix/local pid 31480 exit status 1
Jul 11 11:52:43 localhost postfix/master[23909]: warning: /usr/libexec/postfix/local: bad command startup -- throttling
問題点が思い当たる方いらっしゃいましたら、何卒ご助言をお願いいたします。
0128nobodyさん
2008/07/11(金) 12:58:30ID:???alternatives --config mtaでpostfix選択するか
system-switch-mailで切り替える方が良いよ
0129nobodyさん
2008/07/11(金) 19:41:44ID:???loginform.phpの部分とかがおかしいみたいです。
Windowsでは動くらしいけどlinuxでは動かないとかなんとか。
もうくそ本でした。
くやしい.....
誰かなんとか動くようにはできないでしょうか。
ソースは
http://gichioka.web.fc2.com/blog.rar
です。
マルチ失礼しました。
報告までです
013075です。
2008/07/11(金) 19:49:15ID:???129=75です。あのときブログのことで質問しました。
あの時はいろいろ教えていただきありがとうございました。
0131nobodyさん
2008/07/11(金) 20:40:04ID:???ログインできたの?
0132nobodyさん
2008/07/11(金) 20:44:45ID:???admin.phpはいけます
0133nobodyさん
2008/07/11(金) 22:11:31ID:???0134nobodyさん
2008/07/11(金) 23:01:47ID:???0135nobodyさん
2008/07/12(土) 10:17:05ID:???0136nobodyさん
2008/07/13(日) 04:23:27ID:???3000もしたんだよ
0137nobodyさん
2008/07/13(日) 20:06:55ID:???3000は大金だもんな
元気出せよ
0138nobodyさん
2008/07/13(日) 21:41:45ID:???PHPの勉強をあきらめろってことじゃあ…
0139nobodyさん
2008/07/15(火) 03:16:57ID:YrbWt9Itソフトバンクの本はもう買わん
0140nobodyさん
2008/07/15(火) 15:59:19ID:px8EuhxF以下のようなXMLからCountの値を取得したいのですが、
取得できません。
$string = <<<XML
<?xml version="1.0" ?>
<document>
<Hoges>
<Count>2</Count>
<Hoge>
<aa label="monar" />
<name>モナー</name>
</Hoge>
<Hoge>
<aa label="yaruo" />
<name>やる男</name>
</Hoge>
</Hoges>
</document>
XML;
$xml = simplexml_load_string($string);
foreach($xml->Hoges as $key => $tmp){
/* ここでCountの値を取ろうとしていますが
$keyが'Hoges'になっていて取得できません。
*/
}
↑のforeach内で取得する方法を教えてください。
ちなみに、$xml->Hoges->Countでは正常に取得できます。
どうかよろしくお願いします。
0141nobodyさん
2008/07/15(火) 19:35:37ID:???echo $tmp->Count;
}
0142nobodyさん
2008/07/16(水) 01:29:04ID:yQh99k9kPOSTで受け取っている$_POST['text']に日本語が含まれていないものを除外、urlが2つ以上含まれているものを除外したいのですが
どのようにしたらよいのでしょうか?
あと似たような問題は他にもいくらでも出てくると思うので、SPAM書き込み対策
掲示板作成の参考になるようなHPとかあるようでしたら教えてください。
よろしくお願いいたします。
0143nobodyさん
2008/07/16(水) 01:37:08ID:???javascriptでこの文字が入っていたら除くとか
検索すれbないいよ。
もうひとつはapacheのところで、どこからきているか
を解析してそいつらはみられないようにするんだ。
0145nobodyさん
2008/07/16(水) 08:03:30ID:???$baseball = array('鈴木'=>16, '松井'=>55, '清原'=>5);
foreach ($baseball as $key => $val){
print ($key." : ".$val."<br />");
}
?>
これの
$key の後ろの . って何のために必要なんでしょうか?
0146nobodyさん
2008/07/16(水) 09:49:58ID:???0147nobodyさん
2008/07/16(水) 12:25:39ID:???連結をしなければいけないときとしなくてもいいときがわからないというか?
0148nobodyさん
2008/07/16(水) 13:00:16ID:???お前はいったい何がしたいんだ?
>>145のソースでは当該箇所はどう見ても文字列を連結しようとしている
わけだから、連結演算子(.)は省けないだろう。
どうしても連結したくないなら
print $key;
print " : ";
print $val;
print "<br />";
とでもしておけ。
普通なら
print "{$key} : {$val}<br />";
で終わりだがな。
0150nobodyさん
2008/07/16(水) 13:20:58ID:JWV92MXFたしか、 .で連結するより ,で連結した方が、処理的に早いって聞いた
処理速度 { } > , > .
これであってるかな?
0151nobodyさん
2008/07/16(水) 13:23:05ID:???最適化は、脳味噌に適用しろ!!
(http://d.hatena.ne.jp/gegegen/20080524/1211622711より)
0152nobodyさん
2008/07/16(水) 13:39:24ID:???例えば、a8等のアフィリエイトの場合、広告主がサンクスページ(購入完了画面) に申し込み確定タグを
imgタグで仕込みます。
流れ的には、
サイトオーナー番号の付いた a8 のタグをクリックし、クッキーを発行
http://aaaa.com/in.php?s=001
↓
広告主サイト
http://bbbb.com/
↓
商品購入完了画面で、imgタグにより a8 へ通知
<img src="http://aaaa.com/check.php">
という流れだと思うのですが、この時、最初に発行されたクッキーは a8 の名前で作成されるのですが、
これを商品購入完了画面の imgタグで、a8に通知した時、クッキーはa8へ渡るのでしょうか?
上記のような流れのものをPHPで作って試してみましたが、ドメインが違うためクッキーは受け取れませんでした。
もちろん、同ドメインの場合では正常に受け取れます。
サイトが違っても、imgによる呼び出し先が、発行元と同じなため、受け取れるんじゃないかと思ったのですが…
何か特別な事をしているのか、私の勘違いなのか、お知恵を貸しください。
よろしくお願いいたします。
0155nobodyさん
2008/07/16(水) 20:17:18ID:???0156nobodyさん
2008/07/17(木) 09:33:28ID:???これでアルファベットと記号を消そうと思うんですが、
' とか
" とか
[ とか
も消したいときはどんな風に表記したらいいんでしょうか。
0157nobodyさん
2008/07/17(木) 15:54:00ID:???例えばこんな感じ?
$message = preg_replace('/[0-9A-Za-z@!"#$%&,_=\|\{\}\[\]\(\)\x27\x2f\x3f\x5c\x60:;\.\*\+\-]/','',$message);
echo $message;
0158nobodyさん
2008/07/17(木) 16:03:43ID:???>>157は個別に書いたけど、単純に数字〜英記号を一括削除するなら
$message = preg_replace('/[\x21-\x7e]/','',$message);
echo $message;
の方が簡単。
詳しくはPerl正規表現とそのエスケープ文字を調べること。
ereg系正規表現は日本語が混じると誤動作するし、mb_ereg系もイマイチ不安定で
パフォーマンスも低いので、文字コードに拘らないのであればperl互換正規表現
を使う方が何かと便利だと思うよ。
0160nobodyさん
2008/07/20(日) 00:29:05ID:???ところで、
$old = array("a","b","c");
$new = array("<strong>a</strong>","。<strong>b</strong>","<strong>c</strong>");
$wrdst = str_replace($old,$new,$wrdbr);
こんな感じで置換しているんですが、これを
「最初の10個だけ置換」
したいんですが、良い方法がないでしょうか。
0161nobodyさん
2008/07/20(日) 06:45:16ID:???0162nobodyさん
2008/07/20(日) 11:38:30ID:???ありがとうございます!
0163nobodyさん
2008/07/22(火) 19:28:46ID:???5の倍数の場合だけ<h1>を入れて返すにはどうしたらいいんでしょうか。
ifで5で割り切れるときだけどかいろいろ考えてみたんですが、いまいちうまくできません。
0165nobodyさん
2008/07/22(火) 20:00:33ID:???0167nobodyさん
2008/07/22(火) 20:21:02ID:???0168nobodyさん
2008/07/22(火) 20:34:06ID:???0169nobodyさん
2008/07/23(水) 02:23:01ID:???0170nobodyさん
2008/07/31(木) 13:54:43ID:F87Ghxji基本的にSJISで作ったフォームからはSJISで
EUCで作ったフォームからはEUCで文字コードが
送られてきますよね。だけど送り手が意図的
に文字コードを変えて送ってきたりブラウザ
が勝手に他の文字コードで送ってしまう場合が
あるようなのですがその場合文字コードを
適切にスクリプト内部で使用したい文字コードに
変換する方法てどんなものが考えられるでしょうか。
またみなさんはどうやってますか?
0172nobodyさん
2008/07/31(木) 18:02:30ID:???諢丞峙逧縺ォ騾√▲縺ヲ縺上k繧医≧縺ェ螂エ縺ッ辟。隕悶☆繧翫c濶ッ縺縺倥c繧薙Χ縺√�縺仇ww
0173nobodyさん
2008/08/01(金) 01:13:57ID:/2mMDjbG借りているサーバーの関係でphp4からphp5にバージョンアップしたら、
写真をパソコンで表示させるページ(mailbbs.php)でエラーが出てしまい、閲覧できなくなりました。
簡単に付け足す記述があれば、是非教えていただけないでしょうか?
よろしくお願いします。 m(_ _)m
0174nobodyさん
2008/08/01(金) 01:15:02ID:???0176nobodyさん
2008/08/01(金) 02:51:47ID:3wWMq3LYWeb申込フォーム、管理画面(データベース連携、検索など)を作成可能なレベルを目指す
という文章に対して
(つд⊂)ゴシゴシ
_, ._
(;゚ Д゚)
とレスが返されていました。
これはどういうことなのでしょうか?
基本的なレベルだということですか?
0177nobodyさん
2008/08/01(金) 03:01:39ID:cc3Gba10ヌルポ
0179nobodyさん
2008/08/01(金) 03:11:47ID:???>>178
なるほど。
2週間の講座なので、基本なのはまあしょうがないですね。
どうもありがとうございました。
0180nobodyさん
2008/08/02(土) 17:48:44ID:qYvqcpCsを設置しようと思ってるのですが、画像をUPロードする
時に画像に関する情報(画像の説明、名前など)
をログファイルに同時に書き込む仕様になっているんです。
とりあえずテストでは問題なく動いてるのですが
もしスクリプトがなんらかの理由で途中で止まってしまったり
した場合、画像だけUPロードされてしまって
ログファイルには書き込みされない(または逆も考えられる)
ことになってしまいますよね。
こういう事態に陥らないためにはどうしたらいいでしょうか?
0181nobodyさん
2008/08/02(土) 18:09:58ID:???0182nobodyさん
2008/08/02(土) 18:16:17ID:QOTyBDTF不具合がでるかどうか確かめろ。
まずはそっちだな
0183nobodyさん
2008/08/02(土) 18:41:09ID:qYvqcpCs>>182
ご返事ありがとうございます。
とりあえず不都合はまだないのですが
タイムアウト(レンタルサーバーだと30秒)
の問題もあるので結構悩んでます;;
0184nobodyさん
2008/08/03(日) 01:05:38ID:a0x+ZsCKどれで練習して どこで実行したらいいんでしょうか?
ttp://phpspot.net/php/php_topics.htmlを見てるんですが
すでに実行にいってしまっていて
よろしくお願いします
0185nobodyさん
2008/08/03(日) 01:13:59ID:???書いてあんだろが
0186nobodyさん
2008/08/03(日) 01:25:55ID:tLdg0T4F渡すパスは自動でエスケープされるようだけど
これは実際どういう文字がエスケープされるんでしょうか?
escapeshellcmdと同じ?マニュアルに特に書いてないで分かりません。
0187nobodyさん
2008/08/03(日) 01:44:15ID:???0188184
2008/08/03(日) 01:52:39ID:a0x+ZsCKサンクス
そのurl通りやってみたんですが
表示されませんでした
原因で考えられるのは
ttp://phpspot.net/php/pgXAMPP%82%CC%8BN%93%AE%81E%92%E2%8E%7E.html
にあるように起動後に黒背景のウィンドウが表示されないからかと思うのですが
XAMPPコントロールパネルアプリケーションでは起動 開始ボタンが押されてます
どうすれば実効されますでしょうか?
0189184
2008/08/03(日) 02:02:51ID:a0x+ZsCKXAMPPコントロールパネルアプリケーションはver2.5
あとはPHP editorだけダウンロードしてます
他に足らないものはないでしょうか?
ttp://de-lab.com/article/eclipse/を見るとPDTもインストールしなければならないようですが…
0190nobodyさん
2008/08/03(日) 02:07:06ID:???0191184
2008/08/03(日) 02:09:54ID:a0x+ZsCKそうですか…
では>>188に書いてあるように実行できなかったんでしょうか?
違うサイトを見てしまうと挫折してしまう気がして
よろしくお願いします
0192nobodyさん
2008/08/03(日) 04:57:56ID:???単純に一つ一つインストールしたほうが早くて確実だと思うけど。
0193nobodyさん
2008/08/03(日) 05:28:24ID:???0194nobodyさん
2008/08/03(日) 07:55:45ID:T3jYftlq0195nobodyさん
2008/08/03(日) 10:31:52ID:9C4HZHI80196nobodyさん
2008/08/03(日) 18:50:36ID:RMhtfFUN0197nobodyさん
2008/08/03(日) 19:00:15ID:???0198nobodyさん
2008/08/03(日) 19:52:51ID:???0199nobodyさん
2008/08/04(月) 02:38:05ID:LmctVFYq0200nobodyさん
2008/08/06(水) 23:42:16ID:???0201nobodyさん
2008/08/07(木) 01:15:21ID:ASRrNjKqスレ違いかもしれませんが、PHPの呼び出しをしたいので、こちらで質問させていただきます。
サーバーのcronでサーバー内のPHPを毎分実行する時は、
*/1 * * * * /usr/local/bin/php /home/サーバー会社名/public_html/ドメイン名/△△.php
なのですが、
同じように毎分他サーバーのPHPファイルを指定する時はの記述を教えてください。
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています