くだすれPHP(超初心者用)4 at PHP
[2ch|▼Menu]
[1からを表示]
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
で〜き〜た〜!!!!
本当にありがとうございました!!


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

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