くだすれPHP(超初心者用)4 at PHP
[2ch|▼Menu]
1: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)
お好きなのをどうぞ


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

5369日前に更新/123 KB
担当:undef