くだすれPHP(超初心者用)4at PHP
くだすれPHP(超初心者用)4 - 暇つぶし2ch1:nobodyさん
08/06/13 20:32:36
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。

PHP Home Page
URLリンク(www.php.net)
URLリンク(jp.php.net)



前スレ: くだすれPHP(超初心者用)3
スレリンク(php板)

適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
スレリンク(php板)

2:nobodyさん
08/06/17 16:58:46
いつの間に
>>1おつ


3:nobodyさん
08/06/17 20:01:46 Xhinm60Q
あげとく

4:nobodyさん
08/06/17 22:08:49
超初心者用と普通のくだすれの切り分けが難しいね。


5:919です。
08/06/18 00:58:52 eWKB+6dR
書籍本から来ました。
大角本でわからないところがあり質問です。
カテゴリーのところがよくわかりません。
一応カテゴリーに関するところのソースをUPしたんですが
URLリンク(gichioka.web.fc2.com)
誰か説明してください。
よろしくお願いします。

特になんでこれでcategoryが作られるのかわかりません。
新しくカテゴリーが、これであとなんで商品登録ができるのでしょうか?


6:nobodyさん
08/06/18 13:15:56
>>5
SQLを知らないとか?

7:919です。
08/06/19 01:07:52 uVAJKLwk
いや、なんでそれでカテゴリーが作成されるのかが
わからない。


8:919です。
08/06/19 01:11:28 uVAJKLwk
もしかしてSQLの知識がたりないのかもです。


9:nobodyさん
08/06/19 15:20:33 byCSm/Ip
ケータイとPCで自作した掲示板の処理を確認しています。

PCだと、
コメントを削除→元の画面
→コメントが削除されている


ケータイだと、
コメントを削除→元の画面
→コメントが表示されたまま(実際にはデータは消えいてる)


更新すると、コメントが削除されている画面が表示される。



どうも、ケータイだと前の画面の情報を掴んだままの状態があるようです。
cache-control
などをやっていますが、効果はないようです。
ケータイのブラウザに、昔の情報を表示させない方法はご存知ありませんか?


10:nobodyさん
08/06/19 15:30:10
URLのうしろに毎回変わる無意味な変数入れとけば

11:nobodyさん
08/06/19 15:35:08 byCSm/Ip
>>10
あっ、なるほどURLと画面が紐づいているなら有効そうですね。
試してみます。

12:nobodyさん
08/06/19 16:01:00
>>10
上手くいったみたいです。
ありがとうございました。

13:nobodyさん
08/06/19 19:58:24
>>8
じゃぁ、逆にSQLって何するもんだと思ってる?

14:nobodyさん
08/06/20 00:26:27
>>9
間違っています。
以上。
はい次の方。

15:nobodyさん
08/06/20 23:47:29
レッツPHP!の新着ブロガー URLリンク(php.s3.to)
を使いたいのですが、下記のようなエラーが出てきます。
なんとか自分のHPに設置したいのですが、どこをどう直せばいいのやら
わかりません。

Warning: main(XML/RSS.php) [function.main]: failed to open stream:
No such file or directory in /home/sites/lolipop.jp/users/main.jp-
○○○/web/allblog/rssup.php on line 5

Fatal error: main() [function.require]: Failed opening required
'XML/RSS.php' (include_path='.:/usr/local/lib/php:/usr/local/lib/php/Smarty')
in /home/sites/lolipop.jp/users/main.jp-○○○/web/allblog/rssup.php on line 5

レンタルサーバーはロリポップ
サブドメインでallblog.ドメインとしてます。
ファイルは
allblog
├reeup.php
├RSS.php
├PEAR.php
├Parser.php
├index.html(このHTMLに<?php include("rssup.php"); ?>を貼ってます)
├.htaccess(中にAddType application/x-httpd-php .htmlと書き込んだだけ)

なんとか動かしたいのですがどなたか親切な方教えていただけないでしょうか?


16:nobodyさん
08/06/21 01:26:38
>>15
今、reeup.phpの5行目が有効になってると思う。
ソレをコメントアウトして、
3行目をコメントインしたら、動くんじゃないかなぁ。

17:15
08/06/21 01:38:50
>>16 動きました。ありがとうございました。2日ぐらい悩んでたのでうれしいです。
ほんとうにありがとうございました。

18:nobodyさん
08/06/21 01:52:50
>>17
今後も似たようなエラー出てくると思うから、
思い立ったときにでも、エラーメッセージをそのまま検索とかして、何のエラーかとか、
少し学習するのもいいと思う。
がんばって下さい。

19:nobodyさん
08/06/22 13:25:43 PqDX8Tuj
php勉強したいんですが
お勧めのHPとかありますか。

20:nobodyさん
08/06/22 15:16:41
>>19
URLリンク(jp2.php.net)

21:nobodyさん
08/06/22 16:53:20
>>19
PHP 入門
でググって出てきたサイトを上から眺めていけばいいんじゃないかな。

ほでなすPHPとかでも勉強にはなった。

まぁ、入門っていうなら、PHP関連の書籍スレでも眺めて、初心者向けでいい本を読むのがいいかな。


22:nobodyさん
08/06/25 02:35:31
あのすいません。質問です。
基礎からのPHPでの質問ですが、admin.phpのところで、
if (isSet($_GET['tab']) && $_GET['tab'] == 'conf')
{
require('adminConfig.php');
}
else if (isSet($_GET['tab']) && $_GET['tab'] == 'edit')
{
require('adminEdit.php');
}
else if (isSet($_GET['tab']) && $_GET['tab'] == 'list')
{
require('adminList.php');
}
else
{
require('adminConfig.php');
の部分でisSet($_GET['tab']) の意味がわかりません。
どっからtabはでてきたんですか?
URLリンク(gichioka.web.fc2.com)
ここにソースを保存したので、よろしくです。


23:nobodyさん
08/06/25 03:03:27
>>22
GETメソッドと、POSTメソッド、って言うものを理解しないと正直きつい。

まぁ、とにかく、
このadmin.phpにアクセスするときに、
URLリンク(www.example.com)
とか、って書いた場合、これはGETメソッドで、そのadmin.php以下のプロパティを渡すんだ。

で、ソレはPHPが自動的に、$_GETっていう連想配列に渡される。

上の例だと、$_GET['tab']に、'conf'が渡されるわけだ。

POSTメソッドで渡されたものは、$_POSTに渡されてくる感じ。

で、分かるかな。
適当な回答なので突っ込みあれば宜しく。

24:nobodyさん
08/06/25 17:06:02
>>21
PHP関連の書籍スレってひどくね?
基地外しかいないみたい

25:nobodyさん
08/06/25 19:14:43
23へ
よくわかりました。
ありがとうございます


26:nobodyさん
08/06/25 21:01:39 57l0ft98
すいません。質問です。
大角本で質問なんですが、
?
if ( $_SESSION['checked_item'] != '' ) {
foreach( $_SESSION['checked_item'] as $value ) {
$sql = "select * from item
left join author on item.author_id = author.author_id
where item_id = '$value'";
$result = mysql_query( $sql );
while ( $item = mysql_fetch_array( $result ) ) {
?>
の部分の$_SESSION['checked_item']の'checked_item'はどこからきたの?
あと$sql = "select * from item
left join author on item.author_id = author.author_id
where item_id = '$value'";
このsql文はなんでしょうか?
教えてください。
ソースはこちらにあります。
URLリンク(gichioka.web.fc2.com)

27:nobodyさん
08/06/25 21:03:44
検索しない理由は?

28:nobodyさん
08/06/25 21:18:45
なんで自分で考えないんだろうね

29:nobodyさん
08/06/25 21:18:57 57l0ft98
検索したんですが、
sessionとmysql見てみたんですが、
sqlに関しては左側の部分をとりだすとのことなんですが、
いまいち意味がわかりません。
よろしくお願いします。
author.author_id ここの部分とか....
わかりません。


30:nobodyさん
08/06/25 21:22:09 57l0ft98
質問してはだめですか?
もしだけならここ見たらいいよとかのURLやここに聞いたらいいよ
とかのヒントだけでもお願いします。


31:nobodyさん
08/06/25 21:22:35
1.ググれ
2.本読め
3.リファレンス読め

32:nobodyさん
08/06/25 21:23:06
>>27,>>28
まぁ、超初心者スレだから、そういうなよ。何をどう検索したら良いかとかいまいちピンと着てないだけかもしれないでしょ。

とりあえず、>>26は、そのSQL文の何がどうわからないのか教えてよ。

$_SESSIONは、セッション変数って奴で、多分別のファイル見れば、セッション変数に値入れてる行があると思うよ。
詳しくは、
URLリンク(jp2.php.net)

33:32
08/06/25 21:26:52
亀レス過ぎたww
恥ずかしい。

>>29
item.author_idってのは、itemテーブルのauthor_idフィールドのこと。
author.author_idってのは、authorテーブルのauthor_idフィールドのこと。


34:nobodyさん
08/06/25 22:10:36
文字化けのことで困っています。

・PHP 5.26 @ WinXP SP2
・ファイルは BOM無しのUTF8 で保存
・mbstring.internal_encoding = UTF-8
・mbstring.http_output = pass
・mbstring.http_input = auto

以上の環境にて、以下のようなスクリプトを動作させたとき、
<?php
var_dump($_GET);
?>
$_GET に日本語が含まれると文字化けを起こしてしまいます。
mb_detect_encoding を使ってみた結果、$_GET が SJIS で渡されており、これがファイル保存時の文字コードと異なるために、
文字化けを起こすものと思われます。

これをどうにか解消したい($_GETをUTF8で受け取ってほしい)のですが、どのようにすればよいか検討がつきかねます。
どなたか、ご助力いただけると幸いです。よろしくお願いします。

35:34
08/06/25 22:11:44
ミスです。
・PHP 5.2.6 @ WinXP SP2
です。

36:nobodyさん
08/06/25 22:15:56
htmlをutf-8にする

37:nobodyさん
08/06/25 22:23:08 6PfOtUiM
>>36
・ファイルは BOM無しのUTF8 で保存 に含めたつもりでしたが、
HTMLもUTF8になっています。

38:nobodyさん
08/06/25 22:48:20
>>37
HTMLの<head>タグに、
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
を突っ込んだらどうよ。

39:34
08/06/25 22:48:25
追記です。

同じように $_POST も試してみましたが、こちらは文字化けは起こらず、mb_detect_encodingの結果も UTF-8 でした。
発生するのは $_GET のときのみのようです。

40:nobodyさん
08/06/25 22:50:15
>>38
ありがとうございます。
meta に入れるのもやってみました。
やはり、$_GET で受け取った文字列だけが文字化けが起こします。

41:nobodyさん
08/06/25 22:54:13
>>40
あぁ、
日本語WindowsのアプリってエンコードSJISだから、GETメソッドでクエリ送れば、SJISになりますよ。
URLリンク(example.com)あいうえお
とかやると。
URLに渡すときはURLエンコードとかかけなきゃいけないんじゃないかな。

42:nobodyさん
08/06/25 23:04:21
ああアドレスバーに直接打ち込んでんの?

43:nobodyさん
08/06/25 23:06:51
>>42
情報小出しになってしまってごめんなさい。
はい、アドレスバーに直接打ち込んでテストしています。
あきらめて、SJISでプログラムしたほうがいいのでしょうか……。

44:nobodyさん
08/06/25 23:08:44
そういう特殊なことしてるんなら先に言ってくれないとわかんねーよ・・・

んでもって、本番でもアドレスバーから直接入力するんですか?それともページ中にリンク張るんですか???

45:nobodyさん
08/06/25 23:12:40
>>44
本当に申し訳ないです。
もちろん、ページ中からリンクを貼りますが、$_GET から値を持ってきて、HTML中で表示させたときに文字化けしてしまうとなると、
form などから get で送って、次のページで受け取り表示する、ということができないので、何とか解決したいと思っています。

46:nobodyさん
08/06/25 23:15:52
>>45
form から get で送ればURLエンコードされるよ
?hoge=あいうえおの部分はinput type=hiddlenで指定する

47:nobodyさん
08/06/25 23:18:36
>>46
スペル間違えた

<A>だとURLエンコードする必要があるな

48:nobodyさん
08/06/25 23:19:29
>>45
よく分からん。
HTML中に<a href="hoge.php?q=あいうえお">とか書くってこと?
それともフォームでmethod="get"でinput type="text"に日本語入力してもらうってこと?
いずれも適切にエンコード設定すれば文字化けなんかしないから大丈夫

49:nobodyさん
08/06/25 23:19:33
>>46
あれれれ……?
そのとおりです。formから送ったらgetでも正常でした。
ってことは、「アドレスバーから直接打ち込んでいた」ことが原因だったようですね……。

これだけのために、本当にご迷惑をおかけしました。
情報の小出し、気をつけます。
ありがとうございました。

50:nobodyさん
08/06/25 23:40:40
最初から書いていれば1レスで終わったのにね。まぁ頑張ってください。

51:nobodyさん
08/06/26 23:16:43
>>26
「item.php」のこの部分みたい

if ( ++ $_SESSION['checked_item_num'] > 4 ) $_SESSION['checked_item_num'] = 1;
if ( ! in_array( $_GET['item_id'], (array)$_SESSION['checked_item'] ) )
       $_SESSION['checked_item'][$_SESSION['checked_item_num']] = $_GET['item_id'];


ところで二行目の (array) ってなんの意味があるの?
だれか教えて下さい。


52:nobodyさん
08/06/26 23:31:32
>>51
マニュアル

53:nobodyさん
08/06/27 00:15:13
よくわからない・・・

こういう使い方なら理解できるんだけど
function foo($value)
{
$array = (array) $value;
print_r($array);
}

なんでif()の条件に
if ( ! in_array( $_GET['item_id'], (array)$_SESSION['checked_item'] ) )
こういう使い方をするんだろ。

54:nobodyさん
08/06/27 00:23:41
>>53
URLリンク(php.net)

55:nobodyさん
08/06/27 00:26:03
>>53
$_SESSION['checked_item']が配列じゃなかったときにエラーはかれるのを回避したかったんじゃないの?
(array)で型キャストすれば単一文字列が入ってても、配列に変換されるし。

56:nobodyさん
08/06/27 00:43:47
$_SESSIONはそれ自体で配列じゃないの?
要素が一つでも配列は配列だし。
うーん。
眠いから明日また考えてみる。
ありがとう。

57:nobodyさん
08/06/27 00:50:44
>>56
$_SESSIONは配列かもしれないけど、
$_SESSION['checked_item']は、配列じゃないかもしれないだろ?


58:nobodyさん
08/06/27 02:50:58
(array)取ってどんなエラーが出るか動作確かめればいいのに。。

59:nobodyさん
08/06/27 04:01:35 XEI5jC31
if ( ++ $_SESSION['checked_item_num'] > 4 ) $_SESSION['checked_item_num'] = 1;
if ( ! in_array( $_GET['item_id'], (array)$_SESSION['checked_item'] ) )
       $_SESSION['checked_item'][$_SESSION['checked_item_num']] = $_GET['item_id'];
僕もわかりません。
(array)と結局なんの処理なんでしょうか?


60:nobodyさん
08/06/27 04:47:35
>>59 >>55で「キャストしてる」って教えてくれてるのに、それは無視なの?

61:nobodyさん
08/06/27 07:32:24
これはひどい自演

62:nobodyさん
08/06/27 12:39:58
in_arrayを使ってる時点では$_SESSION['checked_item']が配列若しくはnullの可能性があって
item_idがその中に無ければ配列として追加してってる感じ?
その配列キーは$_SESSION['checked_item_num']で最大4まで
それ以上の場合は1に戻す


63:56
08/06/27 22:24:17
>>57
やっと理解できました。
array型へのキャストは、スカラならその値をひとつの要素とした配列に
配列ならそのままの状態、というふうに切り替わるんですね。
そこを知らなかったから余計に混乱してました。
ありがとうございます。

64:nobodyさん
08/06/27 22:42:45
だから何でマニュアルすら読まないのか

65:nobodyさん
08/06/27 23:39:22
>>64
型キャストって言葉が出てこなかったら、(array)で何が起こってるかっていうのは、
検索しづらいんじゃない?

きっかけとかとっかかり掴みづらい内容ではあったと思う。
超初心者スレだし、多めに見てやりなよ。

66:nobodyさん
08/06/27 23:44:38
算数解らないのに数学やろうとしても解るわけ内じゃん

67:nobodyさん
08/06/27 23:56:10
キャスト自体は知ってたんだろよく読め
あとマニュアルが一番基礎の教科書

68:nobodyさん
08/06/28 00:44:20
知ってることと理解してることは別

69:nobodyさん
08/06/28 00:46:53
なら尚更マニュアル読むかググれって感じ

70:nobodyさん
08/06/28 07:49:57 9QUTsyON
質問です。
$str = <<<EOM
あああ<br />
いいい<br />
ううう<br />
<!--S-->
えええ<br />
おおお<br />
<!--E-->
EOM;

このうち<!--S-->と<!--E-->で囲まれている<br />だけを削除したいのですが、
正規表現を使って綺麗に書けるでしょうか?
以下のように試したのですが、<!--S-->と<!--E-->が消えるだけでした。
$str = preg_replace("/<!--S-->([\W\w]+)<!--E-->/",str_replace("<br />","","\\1"),$str);
また、<!--S(E)-->で囲まれている部分は改行や半角英数字などが含まれる場合があります。
どなたかご教示いただけますでしょうか。よろしくお願いいたします。

71:nobodyさん
08/06/28 07:57:27
正規表現スレでどうぞ

72:70
08/06/28 08:34:53
>>71
失礼しました

73:nobodyさん
08/06/29 10:08:17 l4KJ7KZ4
あいうえお眉幅はEUCを判別させるために有効みたいだけど
同じ方法でUTF-8を判別させる方法てありますか?BOMは
考慮にいれたくないです。


74:nobodyさん
08/06/29 17:48:22
3バイトならutf-8なんじゃね

75:nobodyさん
08/06/29 18:23:50 hneArZSD
あのすいません。質問です。
基礎からのPHPからの質問なんですが、
自分のサーバーに移行して実行したところ、
loginForm.phpでIDとパスワードを聞かれて入力したいのですが、
うごきません。というかIDとパスワードはなんなんでしょうか?
本にはroot,rootpassと書いてあったんですが、動きません。
すべてデータベースも起動させているのですが、pearも入っています。
URLリンク(gichioka.web.fc2.com)
ここにソースを保存したので、よろしくです。


76:nobodyさん
08/06/29 18:31:26
書いてあるURLは403で落とせないんだが・・・
それよりおまえ、>5で>26だろ?
SQLを基礎から勉強してこいって。

77:nobodyさん
08/06/29 18:41:10 hneArZSD
落とせるようになりました。
よろしくです。
SQLの勉強もします。
お願いします


78:nobodyさん
08/06/29 18:43:49
では身に付いたら知らせて下さい

79:nobodyさん
08/06/29 19:07:35 hneArZSD
教えてもらえないんですか?


80:nobodyさん
08/06/29 19:10:11
SQLの勉強はいつするんですか?

81:nobodyさん
08/06/29 19:14:08 hneArZSD
初めてのPHP+MYSQLの本も買いましたし、読んでいます。
今回これがなぜうごかないのかわかりません。
この板ではだめですか?


82:nobodyさん
08/06/29 19:15:56 hneArZSD
あと
あと、ログイン画面は表示されるのですが、
下のトップページに戻るは真白です。
よろしくお願いします。


83:nobodyさん
08/06/29 19:42:13
アクセスするDBサーバのIDとパスワードを入れればいいんではないでしょうか

84:nobodyさん
08/06/29 20:50:46 hneArZSD
DBサーバのIDとパスワードもだめでした。


85:nobodyさん
08/06/29 21:24:23
じゃエラー表示するようにして見れ

86:nobodyさん
08/06/29 22:42:12
ID:hneArZSDを「画伯」と呼びたくなる

87:nobodyさん
08/06/30 01:49:34
これはもうだめかもわからんね

88:nobodyさん
08/06/30 02:51:43
こんな奴が中途で入社してきたら最低だろうな…

89:nobodyさん
08/06/30 18:04:53
SQLの文字コードって全部合わせておけばいいのかな……?
テーブル、カラム、データベース全体……個別個別で細かく設定できすぎてよくわからない。

90:nobodyさん
08/06/30 22:24:41
PHPでスタックとキューを表現するコードを書きたいのですが、
どこか参考になるサイトありますか?

/* PUSH */

$arr = array();
$num = 5; //意味ないかもしれませんが・・・
for($i = 0;$i < $num;$i++)
{
$arr[] = $i; //array_push($arr,$i); とやろうとしたけど、これは無理でしょうか。
}

$ct = count($arr);
echo "要素数:$ct\n");





てな感じで書いてるんです。
本当はarray_pushやarray_pop、unshiftやらを使いたいのですが、
これら全てが上手く動いてくれません。助言お願いします。

91:nobodyさん
08/06/30 22:27:09
上手く動いてくれないって?

92:nobodyさん
08/06/30 22:31:07
>>91
for文の中身は確か、
$arr[] = $i + 1;
の間違いでした、スイマセン。

echoで$arrの中身を順番に表示させると、
1
2
3
4
5
という風になるんですが、array_pushで>>90のコメントで書いている通りのコードで
実行させると、配列から何も取り出せてなかったんです。

93:nobodyさん
08/06/30 22:32:46
コード見せてみ?

94:nobodyさん
08/06/30 22:34:22
見せることが出来ません・・・持って帰ってこれない決まりになっているので。

実は入社してから、初めてPHPを触りまして、まだ2日目です。

95:nobodyさん
08/06/30 22:35:55
いや問題が再現する部分だけでいいからw

96:nobodyさん
08/06/30 22:39:20
>>90 array_push array_pop

97:nobodyさん
08/06/30 22:40:44
>>95
pushの部分では、>>90の通りです。
後は、echoで&arrの中身5つを順に表示させて終わりです。

$arr[] = $i + 1;
の下に、
echo = "$arr[i]\n";

これだけです。
ちなみにstackクラスの中でpushとpopの関数を作っています。

98:nobodyさん
08/06/30 22:41:37
$arr[$i]ぢゃないでしょうか

99:nobodyさん
08/06/30 22:42:43
>>98
ああ・・そうです、すいません
まだ$つけるの慣れてないものでつけ忘れました・・・
実際のコードではつけてますので。

100:nobodyさん
08/06/30 22:45:49
なんかよく分からんけどとりあえずはい
$arr = array();
for($i=0; $i<5; $i++) {
array_push($arr,$i);
echo "$arr[$i] ";
}
結果
0 1 2 3 4

101:nobodyさん
08/06/30 22:56:51
>>100
ええ・・・出来るんですか
あと、>>97でecho = ...とかやってますね、もう間違い酷すぎます・・・。

自分の環境では、
PHP5
apache 2.2
eclipse(PDT) 3.3

なんですけど、array_push等が使えないはずはないと思うんですけどね。
メモらせていただきます、ありがとうございます。

102:nobodyさん
08/07/01 20:24:33
PHPの勉強を兼ねて、投票CGIを作っています

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

103:nobodyさん
08/07/01 20:57:33
>>102
rsort (krsort/arsort)

104:75です。
08/07/02 02:21:42 /ZwHa0Ji
レスくれた方シカトしてしまってすいません。
今勉強をして、なんとか自己解決できるように
したいと思います。
SQL勉強中です。
亀レスすいません。


105:nobodyさん
08/07/02 02:48:17
>>104
一回、PHPから離れて、MysqlとかでDB構築して、コマンドラインでいろんなSQL実行してみればいいと思うよ。
がんばれ。

106:nobodyさん
08/07/02 02:49:38
URLリンク(search.net-newbie.com)
一番最後「HTTP リクエストで独自のヘッダを送信する」にある

ini_set('user_agent', "PHP\r\nX-MyCustomHeader: Foo");
$fp = fopen('URLリンク(www.example.com)', 'r');

送信されるリクエスト
X-MyCustomHeader: Foo

とありますが、実際受信側のレスポンスを見ると、
HTTP_X_MYCUSTOMHEADER: Foo

という風に"HTTP_"が付加されていました。
そういうものなんでしょうか?

107:102
08/07/02 06:34:22
>>103
解決しました!ありがとうございました!

108:nobodyさん
08/07/02 12:23:28
>>106
Host: www.example.com →HTTP_HOST
User-Agent: PHP →HTTP_USER_AGENT
X-MyCustomHeader: Foo →HTTP_X_MYCUSTOMHEADER
つまりはそういうこと。

109:nobodyさん
08/07/04 00:37:52 q3bb7c0a
8953201 や 3545 や 156783 などの数字を
89.53201 35.45 15.6783にしたいのですがどうしたらいいのでしょうか?

110:nobodyさん
08/07/04 00:38:48 q3bb7c0a
あ、すいません。三つをつなげたいわけじゃなくて2桁目に.を入れたいという意味です。

111:nobodyさん
08/07/04 00:39:27
二桁目じゃなくて右から2つ目にですね…
すいません…

112:nobodyさん
08/07/04 00:43:41
>>109
$a = 8953201
$a = preg_replace('/^([0-9]{2})([0-9]+)$/', '$1.$2', $a);

つまり正規表現を使えばよいのではないか。


113:nobodyさん
08/07/04 00:52:45
おお、できました!ありがとうございます!!
ちなみにこれは、前半部分が$1に、後半部分が$2になってるって解釈でいいんでしょうか?

114:nobodyさん
08/07/04 01:09:26
>>109 sprintf

115:nobodyさん
08/07/04 01:09:53
あ。うそ。ごめそ。

116:nobodyさん
08/07/04 12:20:55
mssqlに接続をやってみようと思い

<?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より後発のもので、サポートもしていると思うのですが
どなたか、なにとぞ助力をお願いできないでしょうか。

117:nobodyさん
08/07/04 13:10:39
linuxでMSSQLでdll???

118:nobodyさん
08/07/04 14:04:56
あ、ごめん 間違えてた windows機のほうでした・・・。
マシン入れ替えていろいろ試してたら混乱してしまった。

119:nobodyさん
08/07/04 15:33:23
phpinfoで確認

120:nobodyさん
08/07/04 16:50:08 4Xa3cuiv
PHPスクリプト内の文字列の扱いについて質問なのですが
PHPバージョンは5
自動変換系は全てパス、スクリプトはUTF-8で記述、
internal_encodingもutf-8とします。
スクリプトの処理内容は
UTF-8エンコードで送られてくる文字列”あいうえお”
を受け取りそれをスクリプト内で
”あいうえお”か判断して”あいうえお”
なら真を返すてだけの単純なものなのですが
”あいうえお”を送っても真を返してくれません。
それで今度はポストするデータをEUCエンコードで送ってみると
あらふしぎ真を返してくれるんです。
PHPスクリプト内に書いてある文字列たとえば
<?php
$a="あいうえお";←ここの部分
?>
はロケールのエンコードで解釈されてる気がするのですが
(OSのロケールはEUC-JPだった)
どうなんでしょうか?舌ったらずで申し訳ありません。。。

121:75です。
08/07/05 00:32:52 MACe5BF6
euc-jpでやれば。
なんかutf-8にしないといけない理由とかあるの?


122:nobodyさん
08/07/05 00:36:49
wordpressとか?

123:nobodyさん
08/07/05 01:57:54
>>120
送られてくるデータってのは、GETしてるの?
POSTしてるの?
ついでに、どちらでもいいけど、ブラウザがGETorPOSTしたデータを、echoしたら文字化けするの?
真偽値取る前に、そこらへん確認してみては。


124:nobodyさん
08/07/05 06:27:10
>>120
ソースの文字コードがeuc-jpだったというオチでは?
euc-jpの「あいうえお」とutf-8の「あいうえお」じゃ当然マッチしないわ。

125:nobodyさん
08/07/08 22:48:01 nzIgHbiU
exif_read_dataってちゃんと画像の形になってないと読んでくれないんですかね?
mail_mimedecodeで添付付きメールを分解したんですが、その添付ファイルを撮影時間の名前で保存したいんです
おそらく、一度保存してからexifデータを読み込み、その後名前を変えるって形ならいけるとは思うんですが
二度手間になってしまうのでもし出来るのならと思いまして

126:nobodyさん
08/07/09 01:55:27 U9Y+NLIi
そうだね


127:nobodyさん
08/07/11 12:12:19
どなたか、解決に力をお貸し願えないでしょうか。

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

問題点が思い当たる方いらっしゃいましたら、何卒ご助言をお願いいたします。

128:nobodyさん
08/07/11 12:58:30
別にsendmail_path通さなくても
alternatives --config mtaでpostfix選択するか
system-switch-mailで切り替える方が良いよ

129:nobodyさん
08/07/11 19:41:44
なんかDB周りの設定とかindex.phpとsideBar.phpとentryView.phpとadmin.phpと
loginform.phpの部分とかがおかしいみたいです。
Windowsでは動くらしいけどlinuxでは動かないとかなんとか。
もうくそ本でした。
くやしい.....
誰かなんとか動くようにはできないでしょうか。
ソースは
URLリンク(gichioka.web.fc2.com)
です。
マルチ失礼しました。
報告までです



130:75です。
08/07/11 19:49:15
すいません。
129=75です。あのときブログのことで質問しました。
あの時はいろいろ教えていただきありがとうございました。


131:nobodyさん
08/07/11 20:40:04
まだやってたのか
ログインできたの?

132:nobodyさん
08/07/11 20:44:45
loginformはだめですが。
admin.phpはいけます


133:nobodyさん
08/07/11 22:11:31
誰か助けてくれ---------------------


134:nobodyさん
08/07/11 23:01:47
何を?

135:nobodyさん
08/07/12 10:17:05
あんた向いてないから諦めろ

136:nobodyさん
08/07/13 04:23:27
あきらめきれない。
3000もしたんだよ


137:nobodyさん
08/07/13 20:06:55
画伯も大変だな
3000は大金だもんな
元気出せよ

138:nobodyさん
08/07/13 21:41:45
買った本をあきらめろってことじゃなくて、
PHPの勉強をあきらめろってことじゃあ…

139:nobodyさん
08/07/15 03:16:57 YrbWt9It
この本返そうかと思ったぜ。
ソフトバンクの本はもう買わん



140:nobodyさん
08/07/15 15:59:19 px8EuhxF
simplexmlについて質問です。
以下のような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では正常に取得できます。
どうかよろしくお願いします。


141:nobodyさん
08/07/15 19:35:37
foreach($xml->Hoges as $key => $tmp){
echo $tmp->Count;
}


142:nobodyさん
08/07/16 01:29:04 yQh99k9k
掲示板作ってるんですが最近英語表記のみ url大量に含まれた書き込みが大量に送り込まれ処理に困っております。
POSTで受け取っている$_POST['text']に日本語が含まれていないものを除外、urlが2つ以上含まれているものを除外したいのですが
どのようにしたらよいのでしょうか?

あと似たような問題は他にもいくらでも出てくると思うので、SPAM書き込み対策
掲示板作成の参考になるようなHPとかあるようでしたら教えてください。

よろしくお願いいたします。

143:nobodyさん
08/07/16 01:37:08
ひとつはjavascriptで制御だな。
javascriptでこの文字が入っていたら除くとか
検索すれbないいよ。
もうひとつはapacheのところで、どこからきているか
を解析してそいつらはみられないようにするんだ。


144:nobodyさん
08/07/16 01:51:52
>>142 BBQ

145:nobodyさん
08/07/16 08:03:30
<?php
$baseball = array('鈴木'=>16, '松井'=>55, '清原'=>5);
foreach ($baseball as $key => $val){
print ($key." : ".$val."<br />");
}
?>


これの
$key の後ろの . って何のために必要なんでしょうか?

146:nobodyさん
08/07/16 09:49:58
文字連結のため。

147:nobodyさん
08/07/16 12:25:39
連結をしないとエラーになってしまいますが、なぜエラーになるのかがわかりません。
連結をしなければいけないときとしなくてもいいときがわからないというか?

148:nobodyさん
08/07/16 13:00:16
>>147
お前はいったい何がしたいんだ?

>>145のソースでは当該箇所はどう見ても文字列を連結しようとしている
わけだから、連結演算子(.)は省けないだろう。

どうしても連結したくないなら
print $key;
print " : ";
print $val;
print "<br />";
とでもしておけ。

普通なら
print "{$key} : {$val}<br />";
で終わりだがな。

149:nobodyさん
08/07/16 13:02:18
>>148

なるほど。
意味がわかったような気がします。
ありがとうございました。

150:nobodyさん
08/07/16 13:20:58 JWV92MXF
. で連結するより、変数を{ }で囲った方が処理的負荷が少ないの?
たしか、 .で連結するより ,で連結した方が、処理的に早いって聞いた

処理速度 { } > , > .

これであってるかな?

151:nobodyさん
08/07/16 13:23:05
高速化は、デカい所からやれ!!
最適化は、脳味噌に適用しろ!!

URLリンク(d.hatena.ne.jp)より)

152:nobodyさん
08/07/16 13:39:24
PHPの質問とはちょっと違うと思いますが、

例えば、a8等のアフィリエイトの場合、広告主がサンクスページ(購入完了画面) に申し込み確定タグを
imgタグで仕込みます。

流れ的には、

サイトオーナー番号の付いた a8 のタグをクリックし、クッキーを発行
URLリンク(aaaa.com)

広告主サイト
URLリンク(bbbb.com)

商品購入完了画面で、imgタグにより a8 へ通知
<img src="URLリンク(aaaa.com)">

という流れだと思うのですが、この時、最初に発行されたクッキーは a8 の名前で作成されるのですが、
これを商品購入完了画面の imgタグで、a8に通知した時、クッキーはa8へ渡るのでしょうか?

上記のような流れのものをPHPで作って試してみましたが、ドメインが違うためクッキーは受け取れませんでした。
もちろん、同ドメインの場合では正常に受け取れます。

サイトが違っても、imgによる呼び出し先が、発行元と同じなため、受け取れるんじゃないかと思ったのですが…
何か特別な事をしているのか、私の勘違いなのか、お知恵を貸しください。

よろしくお願いいたします。


153:nobodyさん
08/07/16 13:45:17
>>150


URLリンク(www.phpbench.com)
echo vs. print のところを参照

154:nobodyさん
08/07/16 13:51:19
>>151 嘘だよ

155:nobodyさん
08/07/16 20:17:18
何が?

156:nobodyさん
08/07/17 09:33:28
echo ereg_replace("[a-z]|[0-9]","",$message);

これでアルファベットと記号を消そうと思うんですが、
' とか
" とか
[ とか
も消したいときはどんな風に表記したらいいんでしょうか。

157:nobodyさん
08/07/17 15:54:00
>>156
例えばこんな感じ?

$message = preg_replace('/[0-9A-Za-z@!"#$%&,_=\|\{\}\[\]\(\)\x27\x2f\x3f\x5c\x60:;\.\*\+\-]/','',$message);
echo $message;


158:nobodyさん
08/07/17 16:03:43
>>156
>>157は個別に書いたけど、単純に数字~英記号を一括削除するなら

$message = preg_replace('/[\x21-\x7e]/','',$message);
echo $message;

の方が簡単。
詳しくはPerl正規表現とそのエスケープ文字を調べること。

ereg系正規表現は日本語が混じると誤動作するし、mb_ereg系もイマイチ不安定で
パフォーマンスも低いので、文字コードに拘らないのであればperl互換正規表現
を使う方が何かと便利だと思うよ。

159:nobodyさん
08/07/18 02:29:59
>>157
>>158

ご丁寧にありがとうございます。疑問が全て解けました。

160:nobodyさん
08/07/20 00:29:05
perl の正規表現はいろいろ調べてみましたがあんまり良いウェブサイトが見つかりませんでした。今度、本を探してみます。

ところで、

$old = array("a","b","c");
$new = array("<strong>a</strong>","。<strong>b</strong>","<strong>c</strong>");

$wrdst = str_replace($old,$new,$wrdbr);

こんな感じで置換しているんですが、これを
「最初の10個だけ置換」
したいんですが、良い方法がないでしょうか。

161:nobodyさん
08/07/20 06:45:16
preg_replace('/[a-c]/', '<strong>\\0</strong>', $str, 10)

162:nobodyさん
08/07/20 11:38:30
>161

ありがとうございます!


163:nobodyさん
08/07/22 19:28:46
配列の中身を

5の倍数の場合だけ<h1>を入れて返すにはどうしたらいいんでしょうか。

ifで5で割り切れるときだけどかいろいろ考えてみたんですが、いまいちうまくできません。

164:nobodyさん
08/07/22 19:54:43
>>163 5の倍数の時だけあほになる方法は知ってるんだけどなあ…

165:nobodyさん
08/07/22 20:00:33
答えが0か5の時はってことね

166:nobodyさん
08/07/22 20:04:12
>>163
>ifで5で割り切れるときだけどかいろいろ考えてみたんですが
いやそれでok

167:nobodyさん
08/07/22 20:21:02
% を知らない予感

168:nobodyさん
08/07/22 20:34:06
mod を知らない予感

169:nobodyさん
08/07/23 02:23:01
% は知ってまましたがmodは知らなかったっす。今から調べてみるっす!

170:nobodyさん
08/07/31 13:54:43 F87Ghxji
文字コードのことで質問があるのですが
基本的にSJISで作ったフォームからはSJISで
EUCで作ったフォームからはEUCで文字コードが
送られてきますよね。だけど送り手が意図的
に文字コードを変えて送ってきたりブラウザ
が勝手に他の文字コードで送ってしまう場合が
あるようなのですがその場合文字コードを
適切にスクリプト内部で使用したい文字コードに
変換する方法てどんなものが考えられるでしょうか。
またみなさんはどうやってますか?


171:nobodyさん
08/07/31 15:43:39
>>170 mb_convert_encoding

172:nobodyさん
08/07/31 18:02:30
iteteki ni okutte kuru you na yatsu ha mushi

諢丞峙逧�縺ォ騾√▲縺ヲ縺上k繧医≧縺ェ螂エ縺ッ辟。隕悶☆繧翫c濶ッ縺�縺倥c繧薙Χ縺√�シ縺仇ww

173:nobodyさん
08/08/01 01:13:57 /2mMDjbG
レッツPHP! URLリンク(php.s3.to)  の「写メール掲示板」を使っているのですが、
借りているサーバーの関係でphp4からphp5にバージョンアップしたら、
写真をパソコンで表示させるページ(mailbbs.php)でエラーが出てしまい、閲覧できなくなりました。

簡単に付け足す記述があれば、是非教えていただけないでしょうか?
よろしくお願いします。 m(_ _)m


174:nobodyさん
08/08/01 01:15:02
そんなのはない

175:nobodyさん
08/08/01 02:46:29
>>173
まずはその問題を作成者に問い合わせろ
または、エラーを自分で読んで解決しろ

176:nobodyさん
08/08/01 02:51:47 3wWMq3LY
とある就職支援のPHP講座について調べていたのですが、
Web申込フォーム、管理画面(データベース連携、検索など)を作成可能なレベルを目指す
という文章に対して
(つд⊂)ゴシゴシ
  _, ._
(;゚ Д゚)
とレスが返されていました。
これはどういうことなのでしょうか?
基本的なレベルだということですか?

177:nobodyさん
08/08/01 03:01:39 cc3Gba10
まあ基本といえば基本ですな
ヌルポ


178:nobodyさん
08/08/01 03:04:56
>>176
すごい基本
できても自慢できないぐらい基本

そのレスの意図なんざ知ったことではないが

179:nobodyさん
08/08/01 03:11:47
>>177
>>178
なるほど。
2週間の講座なので、基本なのはまあしょうがないですね。
どうもありがとうございました。

180:nobodyさん
08/08/02 17:48:44 qYvqcpCs
レンタルサーバーにPHPで組んだ自作画像UPローダー
を設置しようと思ってるのですが、画像をUPロードする
時に画像に関する情報(画像の説明、名前など)
をログファイルに同時に書き込む仕様になっているんです。
とりあえずテストでは問題なく動いてるのですが
もしスクリプトがなんらかの理由で途中で止まってしまったり
した場合、画像だけUPロードされてしまって
ログファイルには書き込みされない(または逆も考えられる)
ことになってしまいますよね。
こういう事態に陥らないためにはどうしたらいいでしょうか?

181:nobodyさん
08/08/02 18:09:58
両方オッケーだなと判断したら保存&書き込む

182:nobodyさん
08/08/02 18:16:17 QOTyBDTF
そんなこと考えないで、プログラム書いて
不具合がでるかどうか確かめろ。
まずはそっちだな


183:nobodyさん
08/08/02 18:41:09 qYvqcpCs
>>181
>>182
ご返事ありがとうございます。
とりあえず不都合はまだないのですが
タイムアウト(レンタルサーバーだと30秒)
の問題もあるので結構悩んでます;;


184:nobodyさん
08/08/03 01:05:38 a0x+ZsCK
PHPの練習用にxamppをダウンロードしたんですが
どれで練習して どこで実行したらいいんでしょうか?
URLリンク(phpspot.net)を見てるんですが
すでに実行にいってしまっていて
よろしくお願いします

185:nobodyさん
08/08/03 01:13:59
URLリンク(phpspot.net)
書いてあんだろが

186:nobodyさん
08/08/03 01:25:55 tLdg0T4F
mkdirやunlinkなんかのファイルシステム関数で
渡すパスは自動でエスケープされるようだけど
これは実際どういう文字がエスケープされるんでしょうか?
escapeshellcmdと同じ?マニュアルに特に書いてないで分かりません。


187:nobodyさん
08/08/03 01:44:15
エスケープされるって何を根拠に?

188:184
08/08/03 01:52:39 a0x+ZsCK
183さん
サンクス
そのurl通りやってみたんですが
表示されませんでした
原因で考えられるのは
URLリンク(phpspot.net)
にあるように起動後に黒背景のウィンドウが表示されないからかと思うのですが
XAMPPコントロールパネルアプリケーションでは起動 開始ボタンが押されてます
どうすれば実効されますでしょうか?


189:184
08/08/03 02:02:51 a0x+ZsCK
追記
XAMPPコントロールパネルアプリケーションはver2.5
あとはPHP editorだけダウンロードしてます
他に足らないものはないでしょうか?
URLリンク(de-lab.com)を見るとPDTもインストールしなければならないようですが…


190:nobodyさん
08/08/03 02:07:06
PDTなんていらない

191:184
08/08/03 02:09:54 a0x+ZsCK
>>190
そうですか…
では>>188に書いてあるように実行できなかったんでしょうか?
違うサイトを見てしまうと挫折してしまう気がして
よろしくお願いします


192:nobodyさん
08/08/03 04:57:56
そもそも、XAMPP(ry

単純に一つ一つインストールしたほうが早くて確実だと思うけど。

193:nobodyさん
08/08/03 05:28:24
ほんとXAMPPは弊害招きまくりだな

194:nobodyさん
08/08/03 07:55:45 T3jYftlq
静岡の有名なよしのりお爺さんみたいに、IDかえまくり二十四時間打ちまくり

195:nobodyさん
08/08/03 10:31:52 9C4HZHI8
ubuntu使うとLAMPインストール楽だよ

196:nobodyさん
08/08/03 18:50:36 RMhtfFUN
XAMPPは使いたくない


197:nobodyさん
08/08/03 19:00:15
宗教上の理由で

198:nobodyさん
08/08/03 19:52:51
死んだじぃちゃんの遺言で

199:nobodyさん
08/08/04 02:38:05 LmctVFYq
ダサさ加減で


200:nobodyさん
08/08/06 23:42:16
PHP5でGDを使ってEXIFが入っているjpegをリサイズするときにEXIFを保ったままにする方法はありますか?

201:nobodyさん
08/08/07 01:15:21 ASRrNjKq
すいません。ちょっと教えてください。
スレ違いかもしれませんが、PHPの呼び出しをしたいので、こちらで質問させていただきます。

サーバーのcronでサーバー内のPHPを毎分実行する時は、
*/1 * * * * /usr/local/bin/php /home/サーバー会社名/public_html/ドメイン名/△△.php
なのですが、
同じように毎分他サーバーのPHPファイルを指定する時はの記述を教えてください。
よろしくお願いします。


202:nobodyさん
08/08/07 02:08:13
無理

203:nobodyさん
08/08/07 02:51:36 GqYvn9Ij
質問です

php5を使って、XMLの内容を並び替える方法を教えてください。

204:nobodyさん
08/08/07 02:52:26
URLリンク(jp.php.net)
お好きなのをどうぞ

205:nobodyさん
08/08/07 08:01:58
>>201
HTTP経由で他サーバーのPHPスクリプトを呼び出すPHPスクリプトをcronする

206:201
08/08/07 12:39:10
レスありがとうございます。

PHPスクリプトをcronすることにしました。
ありがとうございました。

207:nobodyさん
08/08/07 15:24:18
普通にcronでwgetとか

208:nobodyさん
08/08/21 15:50:39
初心者なんですけど
独習PHP山田 祥寛
まずこれやればいいですか?
自分のwebサーバーでphp使ったサイトとか作れるようになりたいです

209:nobodyさん
08/08/21 15:52:50
まずマニュアルに目を通す

210:nobodyさん
08/08/21 17:20:22
>>209
なんかマニュアル難しそうです

211:nobodyさん
08/08/21 17:26:28
じゃ諦める

212:nobodyさん
08/08/21 17:45:50
入門系のサイトに目を通してみたらどうか
検索すりゃ役に立つサイトから立たないサイトまでわんさか出る

マニュアルも早いうちから目を通せ
本やサイトは主観で書いてある記事だから誤解もある



213:nobodyさん
08/08/21 18:25:36 CIze4FXP
MySQLのデータベースからデータを取り出そうとしてます
データベースはUTF8で作成しています
select文を実行する前に、
$sql = "SET NAMES utf8";
mysql_query($sql);
を実行してデータを取り出しましたが、日本語文字は『utf8』なのですが、
半角英数字は全部『ASCII』になっています

なぜでしょうか?

214:nobodyさん
08/08/21 18:47:35
ASCII だから

215:nobodyさん
08/08/21 20:58:15
>>212
URLリンク(www.standpower.com)
とかでいいですか?


216:nobodyさん
08/08/21 21:32:52
>>215
そんな感じ
文法や基本的な命令語を覚えれば後は使いたい関数やクラスを都度調べればいい
使う機会の多いものは自然に身についていくから
一通りのことが出来るようになった後に効率や最適化を考えればいい

あくまで趣味の一環として習得する場合だけどな

>>213
ASCIIしかないなら保存形式が何であれASCII
utf8と判断する材料がないからな


217:nobodyさん
08/08/21 23:55:32 2yWxB/YG
PHPってばかが使う言語だろ?

218:nobodyさん
08/08/22 00:09:08
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ!

219:nobodyさん
08/08/22 00:10:17
>>218
もう手遅れだよ・・・・

220:nobodyさん
08/08/22 09:40:04
ちなみにphpの本買ったけど書いてることが意味不明すぎてもう読むのやめたよww

そこらへんから完成品見つけてきてそれ改造してる方がよほど身につくと思う

221:nobodyさん
08/08/22 10:04:01
おれも買った本はリファレンスくらいだな
ごちゃごちゃ解説読むの面倒だから辞書のように使ってた
それでもバージョン変われば役に立たんから直ぐにマニュアル見ることになるっと

完成品やサンプルソースを読んで動きを理解できるようになればいいな
パターンを覚えていけば応用が利いてくる
そのうち別パターンを自分で書けるようなるんじゃね?

222:213
08/08/25 20:42:58
>>214
>>216
ご返答ありがとうございます。
phpファイルはUTF8で保存して、metaタグでもUTF8を指定しています。
そういうことでは無いんでしょうか?

223:nobodyさん
08/08/25 21:35:52
>>222
違う
phpのscript_encodingとかmeta(HTMLタグかよ)は関係ない
asciiはあくまでascii



224:nobodyさん
08/08/26 03:06:03
>>222
大雑把かつ乱暴に言うと
半角英数と一部の記号はどのエンコード方法だろうと内部での表現方法が同じ
だから半角英数だけだと区別のつけようがないしつける必要もない
UTFとかeucとかは、日本語とかはいってくるときだけ

225:nobodyさん
08/08/28 02:17:41
xamppでwebサーバー作るならphp使うのが一番簡単ですかね?
pealもつかえるようですが

226:nobodyさん
08/08/28 02:33:08
何を持って簡単としてるのか分からん

227:nobodyさん
08/08/28 06:20:10
余計にインストールとかしないですむという意味で

228:nobodyさん
08/08/28 06:38:59
xamppは開発用で、そのためにセキュリティゆるゆるだから
まともに公開しようと思うと一から一づつ入れるより設定面倒だよ

設定に詳しくない限り止めておけ

229:nobodyさん
08/08/28 08:53:39
入手する手段、パッケージの違い、適切なコンフィグ、文字コード等の環境依存要素の調整、など
全部すっとばしても構わないと思うならxamppで良いかと。

230:nobodyさん
08/08/28 17:51:11
条件を言えばそのPHPを探してきてもらえる
スレがあったら誘導お願いします



231:nobodyさん
08/08/28 19:41:11
自分で探せアホ

232:nobodyさん
08/08/28 22:54:08
>>229
サーバの構築関連は、どのようにして知識を得るのがいいんですかね。
やっぱり書籍ですか?

233:nobodyさん
08/08/28 23:12:59
ネットは断片的になりがちなので本がいいよね。
で、仮想マシンや引退したボロPCあたりで環境作っていじり倒す

234:nobodyさん
08/08/28 23:18:21
本なんて著者によって偏るし古いし訂正も効かないしノウハウもTipsも無いぞ。
それでも良ければご自由に。

235:nobodyさん
08/08/28 23:28:54
>>234
じゃぁ、どんな風に勉強していけばいいですか?

>>233が言っているようにネットだと情報がかなり断片的で、
しかも、本と同じでネットで情報公開している人によって偏ってたり、訂正もされないまま放置されていたりするわけなんだけど。



236:nobodyさん
08/08/29 01:13:34
糞ブログでたまにある詳しくはこちらとか言って別のアドレス貼り付けるだけのやる気のない馬鹿は死んでしまえ。

237:nobodyさん
08/08/29 01:14:32
ブログだけは世の中から消滅して欲しい

238:nobodyさん
08/08/29 01:15:48
検索の邪魔なだけだ。中途半端なことばかりしやがって。

239:nobodyさん
08/08/29 01:33:52
それは君の検索能力が低いだけだ
URLリンク(help.goo.ne.jp)

240:nobodyさん
08/08/29 11:55:19
>>235
確かにネットも本と同じで書き手次第だが
本と違うのは書き手の数
より多くの情報を知ることで信頼出来る情報や誤解を判断出来る
(本では数読むには金がががががが)

それに基本はオープンソースなのだから、公式のドキュメントもネットにある、
ある程度の認識が身についたら、公式を押さえることを忘れるな

そして糞ブログ滅べ(特に半端な日記系)

241:nobodyさん
08/08/29 15:09:59
昨日VistaにApache2.2とPHP5をいれ、
DocumentRootにphpinfo関数が書かれたindex.phpファイルを置き
PHPの情報をブラウザで表示させるところまで成功しました。

次にPOSTの勉強のために以下のform.htmlファイルをつくり
<html><head>
<title>テキスト送信のテスト</title>
<META http-equiv="Content-Type" content="text/html;
charset=Shift_JIS"></head>
<body bgcolor="#FFFFFF" text="#000000">
<font size="4">テキスト送信のテスト</font>
<form name="form1" method="post" action="view.php">
名前:<br>
<input type="text" name="onamae"><br>
<input type="submit" value="送信">
</form>
</body>
</html>

以下の内容のview.phpと一緒にDocumetRootにつっこんで
<html><head>
<title>PHPによるテキスト送信・受信・表示</title></head>
<body>
<?php
print $_POST["onamae"];
?>
</body>
</html>
ブラウザでURLリンク(localhost)を表示させ名前を入力し送信ボタンを押したのですが
IEの"WEBページが見つかりません"のHTTP404エラーが出ます。
ネットで調べて色々php.ini、httpd.confの設定を書き換えてやっているのですが解決しません。。
どこの設定を直せばいいのでしょうか。お助けください。

242:nobodyさん
08/08/29 15:24:11
>>241
URLリンク(localhost)
直接呼び出して見てはどうだろう

404エラーってことはファイルがないってことだから設置場所が間違っているか
formのaction指定が正しくないかのどっちかになると思う

243:nobodyさん
08/08/29 15:44:07
>>242
直接view.php呼び出しても404エラーが出ます。

設置場所はDocumentRootに指定してあるC:\Apache2.2\htdocsの中に
form.htmlとview.php二つつっこんでます。

action指定については間違ってないと思うのですが。。


244:nobodyさん
08/08/29 16:04:48
>>242
htmlとphpが同じ場所にあって、htmlしか呼び出せないってのは変
(header関数でどこかに飛ばしてない限り)

htmlとphpを削除して、ブラウザで両方404になるか見てから、もう一度設置してみて


245:nobodyさん
08/08/29 16:10:56
view.php.html
view.php.txt

大丈夫そうなんだけど、こういう事例も多いからいちおう。

246:242
08/08/29 16:21:02
245さんの言うとおりview.php.txtになってました^^;
phpファイルに変更したらちゃんと呼び出せました。

どうも皆さんすいません。

247:nobodyさん
08/08/29 16:55:09
これはひどい

248:nobodyさん
08/08/30 01:23:15 xhTnmRsd
内容:
ランダムテキストを使い「random.php」に例えば10個のリンク先を設定し、
ページの上中下で <?php require "random.php"; ?>で呼び出して使いたいんですが
ページの広告全てが同じものが表示されてしまいます。

ランダムテキストをcgiで作り、SHTMLファイルで呼び出してた時には
すべてきちんと違う広告がランダムに表示されてました・・。
1っのrandom.phpできちんとページ内の広告がバラバラに出るにはどうすればいいでしょうか?



249:248
08/08/30 01:23:35
ちなみにrandom.phpは検索で拾ったソースです。


<?php
// hitには相対確率を入れる。完全にランダムにするなら全部"1"にする
// rtxtには、テキストを入れる。改行はしないようにする
// テキストを増やしたりする場合は、"[ ]"の数字が0から順になるようにする
$hit[0] = 1; $rtxt[0] = '<a href="...">1</a>';
$hit[1] = 1; $rtxt[1] = '<a href="...">2</a>';
$hit[2] = 1; $rtxt[2] = ''<a href="...">3</a>';

$length = count($hit) - 1;
for($i=0; $i<=$length; $i++) {
$m += $hit[$i];
}
srand( (double)microtime()*1000000 );
$n = round(rand(1,$m) );
for($i=0; $i<=$length; $i++) {
$x = $y;
$y += $hit[$i];
if($x<$n && $n<=$y) $ad = $rtxt[$i];
}
print("$ad");
?>

よろしくお願いします。

250:nobodyさん
08/08/30 01:53:03
やってみたけどランダムで出るよ一応

251:nobodyさん
08/08/30 03:04:20
>>249
別の方法として
簡単にやりたければshuffleで配列($rtxt)をシャッフルしてarray_shiftで配列の先頭を取り出せばいい
array_shiftで取ると配列は1つ減るから2回目、3回目で重複することはない(同セッション内)


252:250
08/08/30 04:09:13
もしかして
(double)microtime()*1000000
が同じ値をシードに与えてんじゃないの?


253:235
08/08/31 18:33:17
遅レスすみません。

>>240
レスありがとうございます。

ネット上は断片化された情報が多くて、取捨選択が難しい上に、
あっちの情報とそっちの情報での差異が出る理由が明確に分からなくて悩ましいです。

それを調べるってことが、公式ドキュメントを読めっていうということなんですかね。

技術情報を読める程度には英語勉強しろってところですね。

板違いですんませんでした。

254:nobodyさん
08/09/12 15:34:40
SQLから取り出したデータをテーブルに表示させる際にhtmlタグを無効にしたいのですが、どうしたら良いでしょうか。
今のままだと例えば<b>文字</b>で登録されているデータは太字で表示されてしまいます。
SQLはpostgresです。
現在のコード↓

$passmd5 = md5('$pass');
$sql = htmlspecialchars("SELECT * FROM table1 INNER JOIN table2 ON table1.id=teble2.id WHERE
table1.id='$id' AND table1.pwd='$passmd5';");
$rs = pg_query($conn, $sql);

$rows = pg_num_rows($rs);
if($rows==0){
print("IDかパスワードが正しくありません。<br />");
print('<a href="#" onclick="history.back(); return false;">戻る</a>');
exit;
}

print("<table border=\"1\">");
print("<tr><td>ID</td><td>パスワード</td><td>項目1</td><td>項目2</td><td>項目3</td></tr>");
while($row = pg_fetch_array($rs)) {
print("<tr>");
print("<td>".$row["id"]."</td>");
print("<td>".$row["pwd"]."</td>");
print("<td>".$row["koumoku1"]."</td>");
print("<td>".$row["koumoku2"]."</td>");
print("<td>".$row["koumoku3"]."</td>");
print("</tr>");
}
print("</table>");

255:nobodyさん
08/09/12 15:39:24
htmlspecialchars

256:nobodyさん
08/09/12 16:01:58
>>255
htmlspecialcharsを使うんだろうなとは思うんですけれど、何処につけたら良いんでしょうか。

257:nobodyさん
08/09/12 16:12:31
print~~htmlspecialchars($row["koumoku1"].)~~
だな

出力の直前にやるのがいい
それ以前は加工する可能性があるからな


258:254
08/09/12 16:18:13
で~き~た~!!!!
本当にありがとうございました!!

259:nobodyさん
08/09/14 09:44:04 B7I6GMpn
プログラムじゃない質問で恐縮なのですが、質問させていただきます。

phpを勉強するのに何をしたら「俺すげぇ進化したぁ」と感じたかを教えてください。

260:nobodyさん
08/09/14 09:52:22
楽して身に付けようなんて甘い考えが通用しないことを実感したときかな

261:nobodyさん
08/09/14 12:14:00
PHPとか言語は関係ないが、再帰的アルゴリズムがバシッとはまると、俺すげえって思うw


262:nobodyさん
08/09/14 13:35:42
フレームワークを作った時かな
車輪の~って言われるだろうが、利用するかはともかく仕組みを考えて実装することに意味がある
と、言いつつ愛用してるが・・・


263:nobodyさん
08/09/14 21:23:06 jIYlcJD1
phpでもなんでもそうだけど、本の書いてあること
が理解できるようになったとき。
あとショッピングカートとかブログとかその辺
のアプリができたとき。


264:nobodyさん
08/09/14 22:46:57 B7I6GMpn
>>260,261,262,263
観念的で曖昧な質問に答えてくださってありがとうございます。

ちょっと(いや、かなり)質問の仕方が悪かったかもしれません。
「コレを頑張ったら結果をより早く導出できるようになった」という体験を伺ったのです。
「頭打ち状態からブレイクスルーした」という体験はありませんでしょうか?


>>262さんのレスを参考に「フレームワーク 車輪の」でググってみました。
「車輪の再発明」ということですね。
自分でもそういうことをしてしまっている可能性があるので参考になりました。
ありがとうございます。

265:nobodyさん
08/09/14 22:54:51
その段階だと・・・ひたすら作ってひたすら無駄な労力にorzするのが一番さ

266:nobodyさん
08/09/14 23:41:45
イヒ体験ってことか

メール送信でPHPが標準でsendmailしか使わんことに気付いた時
大量に送信するにはオーバーヘッドがウザいからSMTP送信をしたいのに出来ない・・・
仕方なくpopenで実装って時にSMTPっつうプロトコルの仕組みを知ってて良かった~ってことはあった

267:nobodyさん
08/09/15 00:02:57
しかし、みんな頑張り過ぎw

268:nobodyさん
08/09/15 00:03:46
誤爆、失礼><

269:nobodyさん
08/09/15 22:32:29
効率の良いプログラミングをしようと思ったらLL言語使いだろうと
中の仕組みを知っていたほうが良いのは当然だな。
ある程度理解していればプロトコルの詳細はRFC斜め読みでなんとかなる。


270:nobodyさん
08/09/17 12:48:50 JTQWTwl/
理解したつもりの関数とか1日で忘れてしまう

substrとか   これなんだっけ ってなる

271:nobodyさん
08/09/17 12:52:42
それはヤバイな

272:nobodyさん
08/09/17 12:57:46
学校の勉強はノートに書いて覚えていくけど
プログラミングの勉強となると紙のノートじゃなくPCに依存して勉強したくなるよね
でもメモソフトと紙のノートには雲泥の差の自由度があるから勉強のためのメモとしてはあまり利用出来ないよね


273:nobodyさん
08/09/17 12:59:19
プログラミングの勉強ってどんなことしてんの

274:nobodyさん
08/09/17 16:13:37
プログラミングの勉強ってひたすらソース書いてナンボっしょ

275:Noone
08/09/17 16:59:26
URLリンク(www.php.net)

276:nobodyさん
08/09/18 00:02:52 X0thX7wZ
あげ

277:nobodyさん
08/09/18 07:48:56 eOfu22hG
レンタルサーバでPHPの勉強中です。
ファイルのアップロードをしているんですが、php.iniやhttpd.confが直接いじれなくて
.htaccessに

php_value post_max_size 100M
php_value upload_max_filesize 100M
php_value memory_limit 100M

と書いてそれぞれの値を変更しています。
問題は、これらの値がページをリロードする度にサーバのデフォルト値である
post_max_size 32M
upload_max_filesize 32M
memory_limit 90M
になったり、
post_max_size 100M
upload_max_filesize 100M
memory_limit 100M
になったりすることです。

こういった現象を経験された方いらっしゃいませんか?

各値の確認は、
ini_get()関数で確認しています。

278:nobodyさん
08/09/18 08:58:15
共用サーバーはリソースも共用です。

279:nobodyさん
08/09/18 09:48:54 eOfu22hG
>>278
レンタルサーバが、リソースが不足している場合.htaccessが有効にならないような設定がされているということでしょうか?

280:nobodyさん
08/09/18 09:51:27
リソースが共有されてるのはいいが関係はないな
プロセスが別なのにPARDIRのディレクティブが上書きされるなんて聞いたことがない

281:nobodyさん
08/09/18 10:42:43
if(!isset($_GET['aaa']) || !isset($_GET['bbb']))

これの真ん中の||とissetの前の!はどういう意味?

282:nobodyさん
08/09/18 10:50:24
|| は OR と同じ、ちなみに && は AND と同じ「かつ」「または」ってヤツだな

! は反転を意味する。
issetは「初期化されていればtrue」で調べたいことは「定義されていない場合」だからfalseとなるところを!で反転して評価してるんだな

283:nobodyさん
08/09/18 10:50:49
>>281
マニュアルをどうぞ

284:nobodyさん
08/09/18 10:54:39
なるほど。

!は反転するということなんですね。

285:nobodyさん
08/09/18 12:44:53
反転ではなく否定な

286:nobodyさん
08/09/18 13:27:00
if(!isset($_GET['aaa'])) {

// 値がセットされてなければecho
echo '';
}

こういうことですよね?

287:nobodyさん
08/09/18 13:37:33
もうちょっと基礎から学習したほうがいいと思うよ

288:nobodyさん
08/09/18 13:50:01
! の解釈はそれで合ってるけど(まぬあるの「論理演算子」のところを読もう)

> // 値がセットされてなければ
empty() と isset() の説明や比較例を見ると良いです。
?aaa=&bbb=hoge というクエリが飛んできた場合、isset($_GET['aaa'])==TRUE。

言われてるように急がずにゆっくり取り組めばいいと思うよ。

289:nobodyさん
08/09/18 13:51:32
> isset($_GET['aaa'])==TRUE
isset($_GET['aaa'])がTRUEだと言いたいんだろうがその説明の仕方はだめだw

290:nobodyさん
08/09/18 14:20:02
あっ、まずかったですか。
言いたかったことはその通りなので、「isset($_GET['aaa']) は TRUE を返す」に訂正します。

291:nobodyさん
08/09/18 14:34:48
age

292:nobodyさん
08/09/18 14:42:09 eOfu22hG
>>280
レンタルサーバの会社に問い合わせたところ詳しくは教えてもらえませんでしたが
>>277で書いたような負荷がかかることはことはしないでくれとのことでした。

根本的な解決はできませんでしたが、こういった現象もあるってことで・・・

しかし、今度はどうやって高負荷時は.htaccessを無視するようなことができるのか
そっちに興味がわいてきました。
Apacheの設定にそういうことができるようなオプションがあるのかな?

293:nobodyさん
08/09/18 14:46:31
単に違う設定の鯖をロードバランスしてるだけとか

294:nobodyさん
08/09/18 14:56:27
すいません...

基礎を勉強したいと思います

295:nobodyさん
08/09/18 15:14:50
珍しく伸びてるな

296:nobodyさん
08/09/18 15:15:16
そりゃあ鯖のリミッタを外したら怒られるにきまっているだろ

297:nobodyさん
08/09/18 21:33:48
>>292
だから、>>278って書いたでしょ。

興味を持つのは良い事だけど、
実験したければ、自鯖立ててやってね。

298:nobodyさん
08/09/19 03:16:00
こんにちわ。
サーバー側が php4 → php5 にしますよ
と言ってきました。

バグってどれくらい出るものでしょうか。
移行された人いらっしゃいますか?


299:nobodyさん
08/09/19 05:25:52
バグっていうか対応度合いの問題だろ
そんなんアプリによってまちまちとしか言えん
ていうか手元で移行検証くらいしようよ

300:nobodyさん
08/09/21 15:55:59 G8wZRX1E
すいません、知っている方がいたら教えてください。
strip_tags()を使用してコメントタグだけを残したい場合はどうしたらよいでしょうか?
$html = strip_tags($html, "<!---->");
という書き方だとコメントタグも削除されてしまいます。

301:nobodyさん
08/09/21 16:35:13
質問というかアドバイスをください。
プログラミング経験は無いわけではなくC,C++でマルコフ連鎖モンテカルロ法
の実験などを大学の研究でしたりもしているのですが、最近なんとなく
PHPのようなウェブアプリを簡単に作れる言語に興味があります。

が何を作ったらいいかわかりません。
自作で、実用レベルまで比較的に簡単に作れるもの、
というとどういうものがあるでしょうか。お願いいたします。

302:nobodyさん
08/09/21 16:36:57
掲示板でも作ってみたら?
まぁ何にするにせよ実用性とは程遠いだろうが気にするな

303:nobodyさん
08/09/21 17:51:38
>>301
何かのウェブアプリを作りたいからphp学びたいんじゃないの?
せめて作りたいものの目標くらい無いとモチベーション続かないと思うんだけど。
なんか目的と手段が逆になってるような気がする。

304:nobodyさん
08/09/21 17:53:03
>>301
有能な君にはphpbb並の国産高機能BBSをぜひ作ってほしい

305:nobodyさん
08/09/21 18:30:23
>>301
隠れマルコフモデルを応用して、
形態素解析でインターネット上の情報サンプル集積でもやってみてくれ

306:nobodyさん
08/09/21 18:30:48
>>300
マニュアルに書いてあるぞ、無理ってな
strip_tagsの前後でHTMLコメントの置き換えて逃げるしかないだろうな


307:nobodyさん
08/09/21 18:31:56
誤字った
誤:strip_tagsの前後でHTMLコメントの置き換えて逃げるしかないだろうな
正:strip_tagsの前後でHTMLコメントを置き換えて逃げるしかないだろうな

308:nobodyさん
08/09/21 20:19:14 uUB1weY6
すみません、ほんとに基本の質問だと思いますが
.htmlファイルの中に
<?php
include('file.php?pass=123');
?>
としましたが、includeが実行されません
拡張子は常に.phpでなければいけないんでしょうか?前に試した出来たような気がしたんですが、、
また、上記のようなインクルードファイルに引数をつけた場合、
file.phpの中で$_GET['pass']としてを解釈することは出来るでしょうか?
どなたかご回答お願いします

309:nobodyさん
08/09/21 20:28:27
無理

310:nobodyさん
08/09/21 20:29:10
>>308
俺の経験では出来ない。

file.phpの中に関数f_fileを書いて以下の様にすればいい。

<?php
include('file.php'); f_file('123');
?>

311:308
08/09/21 20:49:34 uUB1weY6
>>309-310
ありがとうございました
phpは .htmlの拡張子のファイルでは動かないということでいいでしょうか?

また、二つ目の質問に関しては
URLリンク(okwave.jp)という解決法を見つけました
>>310さんの答えと合わせて考えたいと思います

312:nobodyさん
08/09/21 21:12:27
>>311
できる
addtypeでググってみ

313:300
08/09/21 22:14:17 G8wZRX1E
>>306
ありがとうございます。
自分の持ってるPHP辞典には記載されてなかったでわかりませんでした。
なんとも中途半端な仕様ですね。

314:nobodyさん
08/09/21 22:33:44 aDAFCUyF
しつもーん。
URLリンク(jp.php.net)
> 注意: PHP 5以降、デフォルトで値はリファレンス渡しとなります。

の、主語というか目的語というか、ナニのデフォルトが参照渡しになるんでしょか。

function alter($str){
$str = $str . '!';
}
$nya = 'nya';
alter($nya);
echo $nya;

は PHP 5.2.0-8+etch9~bpo31+1 (cli) では $strを 変更せずに nya が表示されました。

315:nobodyさん
08/09/21 23:03:33
それは日本語版スタッフの訳が悪いと思う。
原文読むといいかと。
URLリンク(jp.php.net)

316:nobodyさん
08/09/21 23:22:56
引数がデフォルトでリファレンスよ
やってみれば分かるが&付けなくても参照元の値も変わるぜ

余談だが
PHP4では 「&$arg=null」なんてデフォルト引数が使えないんだが、PHP5から問題なく通る
呼び出し時に引数指定したかどうかでスイッチしてんだろうなぁ

317:nobodyさん
08/09/21 23:29:51
>>314では&無しでは変わってなくないか?

318:nobodyさん
08/09/22 01:05:35
PHPで逆IP制限ってできる・・・?
変数$aに1が入ってる時だけ変数$bに入ってるIP以外からのアクセスがあった場合にifコマンド使って、
他の内容を表示するの。


319:nobodyさん
08/09/22 01:09:02
IP見て比較すれば普通にできるんでない?

320:318
08/09/22 01:10:00
if ( !strcmp ( $ip_address, $list_ip ) )
これ使っていけるかな・・・・・・?

321:318
08/09/22 01:10:58
>>319 それなぜか思いつかなかった。トンクス。

322:318
08/09/22 02:51:53
txtファイルから文字列読み込んだときに改行まで読み込まれて比較ができない。
どうすればよいですか?

323:nobodyさん
08/09/22 03:00:08
改行文字を除いてから比較すれば?

324:318
08/09/22 03:15:17
>>323どうもうまくいかなかった.........

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$str = "$ip";
$len = strlen($str);

$handle = fopen('ip.txt','r');
$contents = fread( $handle, $len );
fclose( $handle );
echo $contents."<br />\n";

if($ip==$contents){
echo "成功";
}
else{
echo "失敗";
}
?>

ipアドレスの文字数分引っ張り出して比較することで回避できた。

325:nobodyさん
08/09/22 03:21:01
ip.txtに入ってるIPの方が今アクセスしてる人のIPより長かったらどうすんの?

326:318
08/09/22 03:24:26
>>325 したら絶対IP違うからエラーでていいんでない?

327:318
08/09/22 03:27:42
一時的にip.txtの中に入ってる一番最初のIPの人以外見せたくないものを作るんだ。
処理が終われば解除されるようなかんじで。



328:nobodyさん
08/09/22 03:39:53
212.134.32.14

212.134.32.143


329:nobodyさん
08/09/22 06:54:54
>>317
変わってないな

330:nobodyさん
08/09/22 12:43:54
PerlのNet-CIDRを移植したら?

331:nobodyさん
08/09/22 15:10:26 EKIEGJ69
phpでカート作成のHP教えて

332:nobodyさん
08/09/22 15:12:32
>>331
URLリンク(www.nintendo.co.jp)

333:nobodyさん
08/09/22 15:19:02 EKIEGJ69
ありがとう><;

334:nobodyさん
08/09/22 16:42:16
ワラタ

335:nobodyさん
08/09/22 16:44:51
>>331
ショッピングカートの基本はセッションを上手く扱うことだと思う
具体的なカート作成のサイトはなくてもセッションに関する記事は多いから、そこから学べば良いかと
どうせ学習目的とかでしょ?

336:nobodyさん
08/09/23 01:10:46 KzC+qHTk
>>312
ありがとうございます! 助かりました!

337:nobodyさん
08/09/23 12:55:10 BK/ZFWc8
ちょっとまてよ、>>331はPHPを使ってカートを作るHPというのを教えて欲しいんじゃないか?

338:nobodyさん
08/09/23 12:59:43
さあ?

339:nobodyさん
08/09/23 13:06:07
>>331-333の流れでネタのようにしか思えん

340:nobodyさん
08/09/23 13:08:38
>>318は日本語の勉強から始めないと意図が伝わりにくいと思うが
まず何が目的で特定IP以外からのアクセスを制限したいかが不透明

内容からするに何らかの処理をしている期間は別の接続者を拒否したいって意味のようだが
その処理ってのが何度もリクエストを受けて完了するもだとしたら
---
アクセスがある

閲覧者IPのデータを確認する─(IP記録なし)→閲覧者IPを記録し結果表示
↓<(IP記録がある)
IP比較─(一致)→結果表示
└(不一致)→拒否
---
こんな感じでコード書けばいいだろ
記録IPをいつ削除するかは知らんけど、この処理書くどこで詰まってるの?

もし、一回のリクエストの結果表示までにすべて処理が終わってしまうようなものだったら
ファイルロックとかの方法でも調べれれ。IPを比較する意味ない

あとどうでもいいけど改行の削除は置換を使えよ

341:nobodyさん
08/09/23 13:10:56
<?php
echo(">>331\n");
echo("このサイトを見れ\n");
echo("URLリンク(www.nintendo.co.jp)");
?>

つまりこういうことだな

342:nobodyさん
08/09/23 14:16:43
echoで括弧を付けるのはダサい

343:nobodyさん
08/09/23 14:20:41
echoはカッコ付けなくてもエェ子やで

344:nobodyさん
08/09/23 18:25:40
PHPなんて久しぶりに書いたから忘れてたわw
えーこと聞いた

345:nobodyさん
08/09/23 19:38:04
fopenを使ってURLを開くとき
複数のURLに対して並列に処理を行いたいんだけど
どういう風にやればいいですかね?
最悪参考になりそうなサイト教えてください。

346:nobodyさん
08/09/23 19:52:08
fopenはブロックするから並列処理には向かない

347:nobodyさん
08/09/23 20:59:24
>>346
ブロック?とはどういうことでしょうか?
並列処理に向いているfopenに代わる関数を
教えていただけるとありがたいです。

348:nobodyさん
08/09/23 21:01:16
そんなのない

349:nobodyさん
08/09/23 21:05:07
じゃあfopenでがんばるとして
並列処理を行うにはどうすればよいでしょうか?

というかPHPでそんなことするなってことでしょうか?

350:nobodyさん
08/09/23 21:18:43
>>345
HTTPDのプロセスを複数起動

351:nobodyさん
08/09/23 21:31:31
>>345 ちなみにPHPではマルチスレッドはできない。
プロセスで何とかする。

352:nobodyさん
08/09/23 22:13:13
なるほどプロセスを複数起動ですか
とりあえずその方向でググったりしてなんとかしてみます
ありがとうございました

353:nobodyさん
08/09/24 23:43:55
$a=1;
$b=9;
$c=3;

「bが一番大きいです。」
と表示させたいのですが、maxだと数値しか返ってこないし・・・
教えていただけると幸いです。

354:nobodyさん
08/09/25 00:11:02
>>353
変数名を取得することは出来ないから値の管理方法を変えよう
出来ないなら諦めるしかないと思う

例: 連想配列
$var = array(
 'a' => 1,
 'b' => 9,
 'c' => 3,
);

355:nobodyさん
08/09/25 00:19:45
ありがとうございます!

356:nobodyさん
08/09/25 00:20:07
いいてことよ

357:nobodyさん
08/09/25 05:09:05
ちょっと疑問に思ったんだけど、
連想配列の場合、
$var = array(
 'a' => 1,
 'b' => 9,
 'c' => 3,
 'd' => 9,
);

この場合、どうなるんだろ?

358:nobodyさん
08/09/25 05:29:20
何がどうなるんだろなのかわからないけどこういうこと?

$var = array('a'=>1, 'b'=>9, 'c'=>3, 'd'=>9);
$keys = array_keys($var, max($var));
var_dump($keys);

359:nobodyさん
08/09/25 06:08:13
>>358
この出力結果ってb dってなるのかな?

360:nobodyさん
08/09/25 06:21:43
お前は何を言ってるんだ

361:テスト
08/09/25 23:34:41
てす

362:あ
08/09/25 23:39:24

てすと

363:nobodyさん
08/09/27 20:36:51 Zle5Z5JO
return文と返り値がよく分からないんですが
PHPのマニュアルを見てもさっぱりです
どなたかreturn文が詳しく書いてあるサイト知っていたら教えてください

364:nobodyさん
08/09/27 20:53:26
>>363
returnについてなんてマニュアル以上のことが書いてあるサイトはないと思うぞ
何が分からなくて、何が知りたいんだ?言ってくれれば答えるが

365:nobodyさん
08/09/27 21:09:22
function hoge() {

366:nobodyさん
08/09/27 21:15:49
$a = 'a';

367:nobodyさん
08/09/27 21:18:59
return $a;

368:nobodyさん
08/09/27 21:20:42
}

369:nobodyさん
08/09/27 21:27:34
$huga = hoge();

370:nobodyさん
08/09/27 21:31:06
この場合、$hugaには 「ああ゛っでるっ…!!たまみるくでるっ!! でっでるうっブリジットのこくまろミルクぅ」 が入ります

371:nobodyさん
08/09/28 21:34:07 +UcDtbz0
PHPの動作確認のページが
Not Found
The requested URL /phpinfo.php was not found on this server.
Apache/2.0.63 (Win32) PHP/5.2.6 Server at localhost Port 80
と出てしまいます。どなたか教えていただけませんか?

372:nobodyさん
08/09/28 21:37:11
マルチ乙

373:nobodyさん
08/09/28 22:52:10
>>371
「/phpinfo.phpが無い」って書いてあるじゃないか。
これ以上何を教えろというのか

374:nobodyさん
08/09/29 20:16:12
マンモス本2冊買った。1回一通り読んだけど、インストールからわけわからん。
なにをDLしたらいいのかさっぱりぜよ・・・。

375:nobodyさん
08/09/29 20:39:55
それはプログラミング以外に問題がありそうだが・・・

376:nobodyさん
08/09/29 22:54:33 ex4B3ZuI
PHPの確認動作で、phpinfo.php.txtとアドレスに表示されたまま、
画面には<? phpinfo(); ?>
と出てしまいます。
明らかに間違いですが、何がおかしいと思いますか?
どなたか教えてください。

377:nobodyさん
08/09/29 23:01:53
誰か、華麗に答えてやってくれ。華麗にだぞ?

378:nobodyさん
08/09/29 23:39:32
>>376
マルチ乙(どう?華麗でしょ

379:nobodyさん
08/09/30 00:43:56
>>374?



380:nobodyさん
08/09/30 16:45:48
>>376
拡張子txtがPHPのファイルとして定義されていないから。

381:nobodyさん
08/10/01 05:38:30 ggjV1Mvy
getMessage()について質問させてください

URLリンク(www.php-labo.net)
でgetMessage()が定義されてないのにエラー表示のときに表示するとありますが
どうしてなのでしょうか?
よろしくお願いします

382:nobodyさん
08/10/01 06:04:37
require_once 'DB.php';
してるから

383:nobodyさん
08/10/01 09:00:47 12eBxrbJ
URLリンク(www.php.net)
この辺のことだと思うのですが、質問させてください。

$a == $bのところで、日本語の文字を使うには、
$a == "日本語"のようにすると思うんですけど、
これは、「日本語」に等しいということですよね。

たとえば「日本」を含む文字列の条件を指定したいとき、
どうしたらいいでしょうか? 
条件の分岐で、「日本語」も「日本人」も「日本古来」もその他も
一括して指定したい、という感じなのですが。よろしくお願いします。
的をはずしていたらごめんなさい。

384:nobodyさん
08/10/01 09:22:18
mb_ereg_match

385:nobodyさん
08/10/01 10:43:40
できました! ありがとうございます。

もうひとつ合わせて質問なのですが、
完全に一致するものを、$a == "アメリカ"として
部分的に一致するのを、mb_ereg_match("[日本]",$a)として、
それぞれ処理をしようとしています。
else ifでつなげたほうがいいのですか? 
別のifとして分けたほうがいいですか?
それとも、どっちでもいいですか?

386:nobodyさん
08/10/01 11:56:07
>>385
分けるかどうかはやりたいことによって違うからなんともいえないけど、
今回の場合は分けなくていいでしょ。
分けちゃうと一回アメリカと完全一致したものをもう一回日本が含まれてるか
判定することになるから余計な処理になる。

387:nobodyさん
08/10/01 12:12:38
なるほどー! 
では、どんどんつなげていくことにしますね。
よく判る説明で、助かりました。ありがとうございます!

388:nobodyさん
08/10/01 12:54:11
>>387
注意
ヒント
ある文字列が他の文字列内に含まれているかどうかを調べるためだけに preg_match() を使うのは避けた方が良いでしょう。 strpos() か strstr() 関数を 使う方が速くなります。
URLリンク(jp.php.net)

389:nobodyさん
08/10/01 13:20:15
すみません、参照先を見たけど、書き方がよくわかりませんでした。

$aに入る文字列は数十文字くらいの短いもので、それを見ています。
早さはそんなに変わらないと思うので、このままで大丈夫ですよね?

390:nobodyさん
08/10/01 22:32:30 HCEY5R1b
質問させて頂きます。
基礎からのPHPorやさしいPHPを買おうか迷ってるのですが、
基礎からのPHPはアプリが動作しないと聞きました。
自分は、アプリの有無よりも文法やクラス(?)、データベースの基礎を学びたい
と思っているのですが、そのような場合はアプリの動作は気にしなくてもよいでしょうか?
その他の面(参考書としての面)では良いと聞くので。

書籍スレでの質問はナンセンスだと感じたのでこちらでさせて頂きました。
ご教授願います。

391:nobodyさん
08/10/01 22:49:30
動作しないわけないだろ

392:nobodyさん
08/10/01 22:56:32
マジレスすると(ry

393:nobodyさん
08/10/01 23:58:01
オライリーの初めてのPHP+mysqlがいいと思います。
もしくは実践マスターか。
基礎からのPHPorやさしいPHPは意味がないと思います。
特に基礎からのPHPはアプリが動作しませんでした。
びっくりです。
これは捨てました。
アプリを改造していくといろいろスキルがあがってくるので、
ただ本見てもおもしろくないと思いますし。
アプリが動くやつがいいと思います。
では


394:nobodyさん
08/10/02 10:20:57 Qa3+G5H3
あるphpで、別のphpを呼び出すのに、こうやって書いています。
<?php include('ini.php'); ?>

この、ini.phpを、別のサーバにおいて呼び出したいのですが、
<?php include('http://別のサーバ/ディレクトリ名/ini.php'); ?>
みたいにやっても、うまくいきません。

どこでつまづいていて、どうすればいいのか、教えてください。

395:nobodyさん
08/10/02 10:40:39
> どこでつまづいていて
基礎的な理解からつまづいてる

URLリンク(...)をinclude = webサーバ経由でinclude
= ini.phpの「実行結果」をinclude

ini.phpの「内容」をincludeしたいなら、ftp経由にするとか、
ini.phpをincludeしたい内容の文字列を返すものにするとか。

396:nobodyさん
08/10/02 10:59:48 Qa3+G5H3
ありがとうございます。もうちょっと勉強してみます。

397:nobodyさん
08/10/02 18:21:25
うまくいかないといってもパースエラーが出るのか空文字が返ってくるのか接続できないとWarningが返ってくるのか
によって全く違う。
こういうのが「うまくいかない」しか書かない心理って何なの?

398:nobodyさん
08/10/02 18:25:19
考えるのすら面倒なんでしょ

399:nobodyさん
08/10/02 20:57:18 JC9hPbTs
>>393
ありがとうございます。オライリーですか、参考にしてみます。
にしても、やさしいPHPのレビューってないですね。
あと基礎PHPとかはもう古いのかな‥

400:nobodyさん
08/10/02 21:31:32 PvYZxYkH
変数のスコープについての質問です。
mona.php
<?php
$a = 1;
include("giko.php");
include("fusa.php");
?>
giko.php
<?php
$b = 2+$a;
?>
ってあったときに$aがincludeされたファイル内でも利用だというのはわかったのですが
giko.phpの$bはmona.phpやfusa.phpで見れるのでしょうか?
ユーザー定義の関数の予定はないです。

401:nobodyさん
08/10/02 21:41:47
100回includeのページを読め

402:nobodyさん
08/10/02 21:55:19 PvYZxYkH
>>401
スコープの方を必死に検索かけてました
includeの方で調べればよかったんですね
ありがとうございます

403:nobodyさん
08/10/06 07:28:33 eMKnyKHT
PHPでpearのパッケージを利用したいのですが
インストールの仕方が分かりません
URLリンク(www.php.net)には拡張モジュールしかないので
よく分かりませんでした
URLリンク(pear.php.net)
に書いてあるように コマンドプロンプトを使えばいいのですが
コマンドプロンプトの使い方が分からないので
使い方を教えてください よろしくお願いします

404:nobodyさん
08/10/06 07:48:42
>PEAR インストールのアップデートを行うには、 URLリンク(pear.php.net) をブラウザで表示してその出力をローカルファイル
> go-pear.php に保存します。そして次のコマンドを Windows のコマンドプロンプトで実行してください。

405:403
08/10/06 07:56:08 eMKnyKHT
レスありがとうです
多分その上の行らへんでつまずいていると思います

>PHP をダウンロードしインストールが完了したら、
>バッチファイルを実行します。 というのはダブルクリックだけでいいんでしょうか?
するとコマンドプロンプトが出てくるだけですが


>インストールしたフォルダへのパスを
>PATH 環境変数に追加します。 手動で追加する
> (スタート > コントロールパネル > システム > 環境変数)
>以上で、Windows のコマンドプロンプトから pear コマンドを使い PEAR パッケージマネージャを実行できるようになります。

pealパッケージとは PHPをインストールした時点で使用できるわけではないと思うので
多分ここでつまずいてます
よろしくおねがいします

406:nobodyさん
08/10/06 08:05:35
バッチファイルの方はやらなくていいよ
go-pearの方保存して実行すればおk

407:403
08/10/06 08:13:05 eMKnyKHT
ありがとうございます
確認させてください
go-pear.phpというファイルを作ってそこに
URLリンク(pear.php.net)のソースをコピペ
そのあと保存先はC:\phpで
コマンドプロンプトで php go-pear.php
を実行するんですよね?

実行すると『内部コマンドや外部コマンド バッチファイルなどと認識されませんでした』
と表示されます
C:\PHP\PHP-pear.phpを実行しても
エディタが起動するだけでした

よろしくお願いします

408:nobodyさん
08/10/06 08:15:52
phpの実行ファイルがある場所に移動してから実行すべし

409:nobodyさん
08/10/06 08:19:25
> 実行すると『内部コマンドや外部コマンド バッチファイルなどと認識されませんでした』

C:\Documents and Settings\username>
で実行してるので php.exe が見つからないとかそういうオチなのかな。

410:403
08/10/06 08:38:03 eMKnyKHT
>>408-409
その通りです。。。
もう少しコマンドプロンプトの使い方勉強してきます

今から学校なので ありがとうございました


411:nobodyさん
08/10/07 10:08:44 rx4j8OHY
PDT + xDebugはここで大丈夫かなぁ?
どっちもインスコ、php.iniを書き換えるがうまくいかない。

下のように、extensionだと、phpinfo()にxDebugの項目が現れるけど、
extension=php_xdebug-2.0.3-5.2.5.dll

下のようにzend_extension_tsの指定ではうまくいかない。
[xdebug]
zend_extension_ts = c:\php\ext\php_xdebug-2.0.3-5.2.5.dll

DebugBuildはnoで、ThreadSaftyはenabledだから、後者の書き方の筈なのだが。

で、まぁ前者で行くとして、問題は、[xdebug]の中に書いた設定が全然反映されない...orz
xdebug.remote_enable=true
とかやっても、phpinfo()で見ると、offになってる。
他の設定も同じ。

なので、eclipseでブレークポイントで止まってくれない...orz

誰かお助けを~

412:nobodyさん
08/10/07 12:08:43
zend_extension_tsじゃないとダメよん

413:nobodyさん
08/10/07 12:35:01 rx4j8OHY
>> 412
どうもありがとうございます~。

414:nobodyさん
08/10/07 13:15:45 2lCZsXeT
PHPではサーブレットやmod_*、あるいはrailsなどのWebアプリのように
URIにコントローラやアクションを含めるような設計ってできるんでしょうか。
PHPのインスコ状況によるのかもしれませんが、どうも情報見つかりません。

415:nobodyさん
08/10/07 13:23:31
コントローラーからビューに変数を渡したいのですが、
コントローラーで$this->set('test', 10);と書くと
exception 'Zend_Controller_Action_Exception' with message 'Method "set" does not exist and was not trapped in __call()' ~
とエラーがでてしまいます。
setを使うのに宣言か何かが必要かと思い、調べたのですが何処を見てもsetを使えばできるとしか書いていません。
コントローラーで$test;や$test=3;はエラーが出なく、エラー文を見てもsetに原因がある気がするのですが、何が原因なのでしょうか?

416:nobodyさん
08/10/07 13:41:47
>>415
フレームワークのこと知らないので適当だけど、
メッセージを見るとsetが未定義で、call(多分ビルトインの)で
トラップ(多分、未定義のメソッドが呼ばれたときに適当なメソッドを割り当てる)もできないと言ってる。
多分$thisはControllerクラスのことだと思うので(多分ばっかですんまそ)

要するにControllerクラスにsetが定義されてないんじゃないかと思います。
クラス定義やメソッド一覧するメソッドがあると思うので、確認してみては?

ちなみに今気づいたんですが、フレームワークを使ってると>>414の質問の答えはYesでしょうか?

417:nobodyさん
08/10/07 14:12:15
>>414
「?name=value」が嫌ならmod_rewrite(Apache)で出来る

>>415
コントローラにsetがないってことじゃないか?
$thisじゃなくてビューのオブジェクトのsetを呼べばいいような気がする
ZendFWは使ったことないが、普通はそうだと思うぞ


418:nobodyさん
08/10/07 14:28:36
>>415
もしかしてキャメルケースのアクションで引っかかってない?

419:415
08/10/07 14:44:42
>>415
ご指摘どおり、thisはコントローラーでsetがありませんでしたので、
中身のないsetを作ってみたところエラーは出なくなりましたが、変数の受け渡しはうまくいきませんでした(空なので当たり前ですね)
これでエラーそのもの原因は分かったので次は変数が受け渡せるように頑張ります。

>>417
確かにコントローラーに無いのでthisだと自分で処理を書くか、何処かからコピーしてこないといけないようです。
何処かからコピーしてくるんならそれを使えよって話なので、まずビューからそれらしいのがないか探して見ます。

>>418
キャメルケースが何なのか分からないのでぐぐってみましたが、命名規則(camelCaps?)の事でしょうか。
とりあえず命名規則はチェックしましたが大丈夫でした。

420:nobodyさん
08/10/07 14:48:06
すまん先走ってた。俺が自分修正してるZFの不具合かと思った。
メソッド書いてないからメソッド無いと言われたっていう話ですか。(´Д`;)

421:416
08/10/07 15:26:57
>>415
今、どんなかなと思って近所でZendの本(緑のやつ)見てきました。
それで思ったんですが、set(value,value)って
Controllerクラスじゃなくレジスタクラス(?)のメソッドじゃないかな?
コントローラで
require "Zend::Registry" <-これ正確じゃないです。これ的な名前。
regist = new Zend::Registry(); #レジスタオブジェクト
regist.set('test', 10);
じゃないかと思います。
ただ、これはアプリ全体で共有したい変数を記憶しておくクラスということなので
このメソッドで即ビューに値が渡るかは分かりません。
Controllerクラスには$this->setBody(value)的なメソッド群がある模様。

しかし、フレームワークでの制作をコピペ等でこなすのは逆にけっこうな大冒険なのでは・・・


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch