【PHP】くだらねぇ質問はここに書き込みやがれpart4

このエントリーをはてなブックマークに追加
1nobodyさん
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
2nobodyさん:05/03/13 16:13:46 ID:???
おつ
3nobodyさん:05/03/13 16:28:43 ID:D632M8O2
日本語の文字列をPHPでURLエンコード・デコードするのって
urlencode/urldecode関数を使うだけじゃなくてもう一工夫必要ですかね?
文字化けしちゃうんですが。
環境はRedhatLinux、PHP4.3.10です。
4nobodyさん:05/03/13 16:55:32 ID:???
>>3
マルチバイト周りの設定の不備のような気もしますが、
bin2hex()を使って比較してみれば正確に渡っているかどうか確認できますよ
5nobodyさん:05/03/13 17:02:09 ID:???
Pukiwiki の スレ が キチガイ に占領されてるんですが、どうしたらいいですかね?
6nobodyさん:05/03/13 17:07:45 ID:???
>>5
おまえもキチガイになる
7nobodyさん:05/03/13 19:00:36 ID:???
>>6
ありがとうございました。長年の悩みが解けました。
8nobodyさん:05/03/13 21:01:59 ID:???
>>4
php.iniのmbstring.http_inputとかですかね?
ちょっとやってみます。
ちなみにFORMタグのデータは日本語でもちゃんと受け取れるのですが、
phpでURLエンコードしたデータは文字化けしてしまいます。
9nobodyさん:05/03/13 22:51:58 ID:nnVcNb6z
$a=半角の英字だけの文字列
"abc" "def" "ghi"を含まなければtrueとしたいのですが、

if(!ereg("abc"$a)||!ereg("def",$a)||!ereg("ghi",$a)){
echo true;
}

↑このように書いたところすべてtrueになってしまいました。
なぜですか?一個ずつ三回ifを書けば期待どうりの結果になります


109:05/03/13 23:05:50 ID:???
原因わかりました。
思いっきり勘違いしてました
11nobodyさん:05/03/13 23:08:30 ID:???
>>9
$a="abc"をそいつに放り込んでみると、
ereg("abc",$a) -> true , ereg("def",$a) -> false , ereg("ghi",$a) -> false
したがって、if(false || true || true) -> if(true) になる。
$a="xyz"を入れると同様にして
if(true||true||true) -> if(true) になる。
何も不思議はあるまい。
12nobodyさん:05/03/13 23:19:16 ID:???
というか、正規表現の使ってるいみないから。
13nobodyさん:05/03/13 23:20:25 ID:???
>>11
わかりやすい説明ありがとうございます。
|| ←これは左右のどちらかがtrueならtrueですよね?
だから || をいくつ並べても一つでもtrueがあればtrueですよね?
14nobodyさん:05/03/13 23:29:31 ID:???
>>13
論理演算でググれば絵付きで説明が見つかりますよ。

"abc" "def" "ghi"を含まない
= abcを含まない かつ defを含まない かつ ghiを含まない
= (! abcを含む) && (! defを含む) && (! ghiを含む)
= !(abcを含む || defを含む || ghiを含む) [ド・モルガン]
= !( ereg("(abc|def|ghi)",$a)) [正規表現のクラス化]
= !(abcを含む または defを含む または ghiを含む)
15nobodyさん:05/03/13 23:31:43 ID:???
教えてください、
PHP+MySQLで、MySQLに書き込む際にSJISの文字化けを起こしてしまいます。
クエリは"INSERT INTO table(name) VALUES('$name')" 、$name=mysql_escape_string($_REQUEST['name']); です。
$_REQUEST['name']='表示'とすると侮オになってしまいます。
文字コードはSJIS、magic_quotes_gpcはoffで変更は出来ません。
addslashes()を加えても駄目でした。どうすれば良いのですか?
16nobodyさん:05/03/13 23:34:23 ID:???
自ファイルの最終更新日を得るのに

<? print date('Y.m.d H:i', filemtime("このファイル.php")); ?>

と使ってるのですが、わざわざファイル名を指定せず、自ファイルの最終更新日を得る
スマートな関数って、ないんでしょうか?
SSI で云うところの、<!--#echo var="LAST_MODIFIED"--> みたいな奴。
17nobodyさん:05/03/13 23:45:47 ID:???
>>16
$_SERVER['PHP_SELF'] じゃ駄目なの?
18nobodyさん:05/03/13 23:46:31 ID:???
>>15
mb_language("ja");
mb_internal_encoding("SJIS");
mb_http_output("SJIS");
mb_http_input("auto");
19nobodyさん:05/03/13 23:50:12 ID:???
>>9
そいう場合はココを書き直したら、うまくいきました!

とか書くと同じ悩みの人にもよろし。(今回はいないでしょうけど

皆様もよろしく。
20nobodyさん:05/03/14 00:02:48 ID:???
>>16
<?php
print date("Y年n月j日 H時i分", filemtime($SCRIPT_FILENAME)) ;
?>
--------------------------------------------------------------

<?php echo "最終更新時刻:".date("F d Y H:i:s." , getlastmod()); ?>
21nobodyさん:05/03/14 00:09:05 ID:???
imap関数で添付画像を取り出すにはどのようにしたらよいでしょう?
手持ちのマニュアルではimap_fetch_bodyで取り出せるようなことが書いてあるのですが
具体例がなく、またwebで探してみましたがみつかりません。
どなたかお力を・・
2216:05/03/14 01:34:39 ID:???
>>17
ファイル名が色々変わりうるならそれでもいいですね。

>>20
そ、それです。php 公式サイトマニュアルの filemtime() から参照してた…灯台もと暗し。
>>17 のfilemtime($_SERVER['PHP_SELF']) よりもスマートなので getlastmod() でいきます。
2321:05/03/14 04:34:04 ID:???
しつこくぐぐってたら見つけました。
24nobodyさん:05/03/14 08:24:46 ID:???
>>17
__FILE__
もヨロ
25nobodyさん:05/03/14 11:14:54 ID:???
前スレの>>986
>ツリーは検索できるんですが、同じパスワードで認証しようとすると行き詰まります。

パスワードの暗号方式が異なるのでは?
Active Directoryは確かKerberosを使っていたと思いますが。
26nobodyさん:05/03/14 12:39:35 ID:???
"1234","2649" など、ダブりのない4桁のランダム数値を得るにはどうしたら良いでしょうか?
27nobodyさん:05/03/14 12:52:03 ID:NwXBy3ub
test.php
$title = "test";
$file_r = file('./template.php');
$file = implode('', $file_r);
$file = ereg_replace('{(\$[[:alnum:]]+)}', "\\1", $file);
print $file;

template.php
<html>
<head>
<title>{$title}</title>
</head>
<body>
<h1>{$title}</h1>
</body>
</html>

test.phpを実行すると変数が置換されて({$title}をtestに)表示されるようにしたいのですが、"\\1"がおかしいのか
$titleのようにそのまま表示されてしまいます。どうしたらいいのでしょうか。
28nobodyさん:05/03/14 13:15:04 ID:???
>>27
preg使う
$file = preg_replace('/{(\$[[:alnum:]]+)}/e', "$1", $file);

または
$title = "test";
include('./template.php');
2928:05/03/14 13:16:40 ID:???
template.php
<html>
<head>
<title><?=$title?></title>
</head>
<body>
<h1><?=$title?></h1>
</body>
</html>
30nobodyさん:05/03/14 13:22:09 ID:???
>>26
ランダム数値を取得するのにmt_rand()やrand()を使うとして、
ダブらないようにするには、過去全ての数値を記録しておくより他は無い。

1. 数値を一個生成する度に過去の数値と比較して有効無効を判定。
 初めての数値だったら、記録用配列に保存。重複していれば再生成。
2. 重複しない数値を入れた配列を用意し、shuffle()を使ってかき混ぜる。
 最初から順番に使っていく。
31nobodyさん:05/03/14 13:52:38 ID:ac0vKofO
auのケータイのケータイプラネットで「今週のイチオシ」とか言うサイトの
着メロダウンロードしたんですけど、怪しいサイトの可能性はありますか?
32nobodyさん:05/03/14 14:16:22 ID:???
>>31
しらんがな(´・ω・`)
33nobodyさん:05/03/14 17:42:03 ID:R34xlKHj
文字列が格納された変数の末尾を切り取って、
切り取った物を別の変数に格納する関数はPHPに標準装備されてますか?
あれば名前を教えてください。
34nobodyさん:05/03/14 17:48:16 ID:???
>>33
   〃∩ ∧_∧
   ⊂⌒( ´・ω・`) くぜんぶマニュアルに書いてあんがな
     `ヽ_っ⌒/⌒c
ttp://www.php.net/manual/ja/ref.strings.php
ttp://www.php.net/manual/ja/ref.mbstring.php
35nobodyさん:05/03/14 17:50:58 ID:???
>>34
そのAAかわええ。
36nobodyさん:05/03/14 18:00:01 ID:9MS+lPog
日本語のファイル名でダウンロードさせたいのですが、
header( "Content-type: application/octet-stream;n" );
header( "Content-Disposition: attachment; filename="". urlエンコードした日本語 .""n" );
print ファイルの中身
とやっても、ファイル名がばけばけくんです。
sjisでもeucでもダメなのですが…

37nobodyさん:05/03/14 18:19:13 ID:???
>>36
urlエンコードはドッから沸いた。
38nobodyさん:05/03/14 18:33:20 ID:???
>>26

>>30 とは違う意味ならこんな感じか。

$nums = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) ;
shuffle($nums) ;
$numuniqs = 1000 * $nums[0] + 100 * $nums[1] + 10 * $nums[2] + $nums[3] ;
printf("%04d", $numuniqs) ;
39nobodyさん:05/03/14 19:01:29 ID:???
>>36
ブラウザによって全然違うので、これだ、という方法がありません。
40nobodyさん:05/03/14 23:19:48 ID:???
>>26
function getPassnum($keta='4'){
 if(!$keta) return False;
 srand();

 
}
41nobodyさん:05/03/14 23:21:18 ID:???
すまそ、書き中に送信しちまった。

>>26
function getPassnum($keta='4'){
 if(!$keta) return False;
 srand();
 $temp = shuffle(array(0,1,2,3,4,5,6,7,8,9));
 return (string) $temp[0].$temp[1].$temp[2].$temp[3];
}
42nobodyさん:05/03/15 11:47:18 ID:???
0123だと4桁?
43nobodyさん:05/03/15 13:21:19 ID:a8e+tPDr
windows+apacheなんですが、
実行中のphpをとめるにはどうしたらいいのでしょうか?
強引にでもプロセスとめたいです。
44nobodyさん:05/03/15 13:23:30 ID:a8e+tPDr
apacheとめたら大丈夫でした
45nobodyさん:05/03/15 13:48:08 ID:???
>>43
モジュールならapacheの一部だからな
46nobodyさん:05/03/15 14:37:59 ID:???
>>36
IE限定での話ならURLエンコードしないでSJISにすればOK。
47nobodyさん:05/03/15 16:05:59 ID:EikE9BP9
PHPでメールを送信する場合の設定についてですが、下の以外に何かありましたっけ?
最近OSを入れ替えたんですが(Fedora2→CentOS4)、
同じPHPスクリプトでメールを送れなくなってしまったもので。

<php.ini>
sendmail_path = /usr/sbin/sendmail -t -i -f自分のアドレス
※sendmailのパスはwhichで確認しましたので、間違いありません。
※メールサーバー(Postfix)はきちんと動いていて、メールの送受信が可能です。

<PHPスクリプト>
<?php
$email = "自分のアドレス";
$subject = "TEST";
$content = "This is test";
mb_send_mail($email, $subject, $content);
?>
※mbstring関係の設定も行っており、mb_ereg_replaceなど他のマルチバイト文字列関数は使えます。
※エラーメッセージの表示をオンにして確認してみたのですが、エラーは何も出ません。

何か根本的なことを見落としているのかも・・・
アドバイス願います。
48nobodyさん:05/03/15 16:22:57 ID:???
>>47
Centのpostfixの設定ファイルを読んだかい?
49nobodyさん:05/03/15 20:29:10 ID:???
くだらないんですが、
配列を空で初期化するのは、
$a = array();
でよいんでしょうか。

なにか正しいやり方あれば教えてください。
50nobodyさん:05/03/15 20:36:42 ID:???
>>49
配列の要素数を0にしたいのならそれでいい。

配列自体を無くしたい(メモリを開放したい)なら
unset($a);
5147:05/03/15 23:05:05 ID:EikE9BP9
>>48
レスどうもありがとうございます。なるほど、postfixのmain.cfを読むと、
sendmail_path = /usr/sbin/sendmail.postfix となっていますね。
で、この通りにphp.iniの方を書き換えて、apacheを再起動してみたのですが、
メールの送信はできませんでした。うーん・・・
52nobodyさん:05/03/15 23:38:55 ID:???
>>51
postfix のログを見るとか、下みたいな感じのスクリプトを
sendmail_path の先に置いて、こいつの結果をそのままその sendmail.postifxって
言うやつに食わせてちゃんと送るか確認するとか。

#!/bin/bash
OUT=/tmp/php_maildump
echo $0 $* > $OUT
cat > $OUT
exit 0
53nobodyさん:05/03/16 00:03:01 ID:oQ3Q5gEX
Pockey-GetHTMLというサイト一括ダウンロードソフト?を拒否するにはどうしたらいいでしょう
PHPのバージョンは4.3.10です。

if(getenv("HTTP_USER_AGENT")=="Pockey-GetHTML"){exit;} うーん?
5447:05/03/16 00:14:43 ID:???
>>52
レスどうもです。postfixのログには関連するものがなかったのですが、
apacheのログを再度見直してみたら、
sendmail.postfix: fatal: chdir /var/spool/postfix: Permission denied
というエラーを見つけました。これが原因でしょうか。

で、/var/spool/postfixのアクセス権を調べたところ、
所有者はrootで、アクセス権は755に設定されていました。
所有者以外のユーザーも読めるわけですが、何が問題なんでしょう。

試しに上記ディレクトリのアクセス権を777にしてみましたが、
結果は変わらず、エラーログも同じものでした。

あと、せっかくスクリプトを書いていただいたのに恐縮ですが、
後半のアドバイスは私にはちょっとわかりません。すみません。
55nobodyさん:05/03/16 00:14:45 ID:???
>>53
Web制作板から来た人かいな。
UA名はきちんと申告するらしいのでhtaccessで弾くのが手っ取り早いんだが。
「うーん?」つーのはどういう意味で書いているんだ?
5653:05/03/16 00:49:42 ID:???
>55
はい、移動してきました。
htaccessは使えないのでPHPでなんとかできないかと思ったんですが無理ですか?
うーん?というのは読み飛ばしてかまいません。深い意味はないです。
57nobodyさん:05/03/16 01:28:17 ID:???
>>56
Pocky-GetHTMLのUser-Agent名は、「Pockey-GetHTML/4.12.0 (Win32; GUI; ix86)」
ってな感じらしいので、>>53の書き方の「 == (等しい)」だとそこを通らない。
strstrやstrposのような文字列の中を検索する関数を使う。
ttp://www.php.net/manual/ja/tutorial.useful.php
58nobodyさん:05/03/16 07:58:31 ID:qOWGuaAh
XHTML宣言を書きたいのですがPHPとして解釈されてしまうので、
<? echo '<?xml version="1.0" encoding="Shift_JIS"?>'; ?>
とやるのはどうでしょうか?
ご意見をいただけると嬉しいです。
59nobodyさん:05/03/16 07:59:01 ID:qOWGuaAh
↑XML宣言を書きたい、の誤りです、、
60nobodyさん:05/03/16 09:54:48 ID:???
>>58
short_open_tagを無効にする。
61nobodyさん:05/03/16 10:11:58 ID:???
>>56
なんかググってみたけどモノ自体は判らなかったが
(今は配布されてないみたいだ)
相当に行儀が悪い振る舞いをするモノということだけは判った。

現物ないので、UAを偽装できてしまうのか判らんが。
>>57みたいに文字列検索で、正規表現で引っ掛けるか。
あとデフォルトのUA表示は「Pocky/〜」というのもあるみたい。
62nobodyさん:05/03/16 12:26:14 ID:???
>>53
GETHTML 4.13は持ってるよ
UAを変更する機能はないのでPockey-GetHTMLを含むものを拒否するだけでOKでしょう
それかrobots.txtを読み込むのでrobots.txtでも拒否できますよ。

一応4.13からは
(1) 同一サーバ(ホスト)への同時取得数が 1 に固定されました
(2) 同一サーバ(ホスト)への連続取得に対し、1秒の wait をデフォルトで入れました
という変更がされてるようです
6353:05/03/16 13:14:18 ID:???
うおーん、ありがとうございます。
モノが無いので挙動を確かめられんのですが
多分これでいけるんでしょう。次回の爆撃を楽しみにまっときます。

if(strpos($_SERVER['HTTP_USER_AGENT'],'Pockey-GetHTML')==true){exit;}
64nobodyさん:05/03/16 14:19:24 ID:???
>>63
まてまて、strposは先頭の文字の位置は0を返すぞ。
!==false じゃないかな。

UA偽装してアクセスするくらいのテストをした方が爆撃が楽しみになると思う。
6558:05/03/16 16:09:26 ID:???
>>60
それをヒントにいろいろ調べてみたらわかりました。
ありがとうございます。
66nobodyさん:05/03/16 17:00:56 ID:???
以下のようなエラーが発生したのですが、これはどういう事なのでしょう?
Webで翻訳してみたら「変数だけは、参照によって超えられることができます」と・・・
変数自体は$a[1]=array()しか存在していないはずなのです
意味がわからない

print_r($a);
Array ( [1] => Array())
Fatal error: Only variables can be passed by reference
67nobodyさん:05/03/16 17:14:15 ID:???
>>66
エラーの原因はわからないがプログラムするんならpass by valueとpass by referenceぐらい知っとけ
知らなければ調べとけ
68nobodyさん:05/03/16 17:28:28 ID:???
>>67
こんなエラーは私としては初めてみるのですが皆さんはエラーが発生する前にエラーの
文脈を理解されているのですね。流石にプロは違いますね。
文字が出る前に予測し意味を理解されているなんて!。
と煽ってみる^^。

69nobodyさん:05/03/16 17:41:54 ID:???
煽れてねえよ。むしろ墓穴掘ってるよ。
7066:05/03/16 17:53:51 ID:???
それにしても原因がわからないなぁ
count($a)は1ですし成立しているはずなのに致命的エラーで中止されてしまう
配列の作り方に問題があるのか・・・

print_r($a)
Array ( [1] => Array())
Fatal error: Only variables can be passed by reference

isset($rel[1]);
Fatal error: Only variables can be passed by reference
71nobodyさん:05/03/16 18:03:38 ID:???
>>66
passの意味が違う。ボールをパスするとか
(語源はいっしょだけど)
7266:05/03/16 18:09:10 ID:???
>>71
変数名を変更したら直りました・・・が、あぁ〜書き込む途中で何となく分かりました。
使っている変数名を初期化してなかった為に何処かで使っていた変数と被っていたのかも知れません。
しょぼい・・逝ってくる;;
73nobodyさん:05/03/16 18:18:13 ID:???
Fatal error: Only variables can be passed by reference
を出したくてチャレンジしてるのですができません。。 orz
よほど革新的なやり方に違いない。。
7466:05/03/16 18:39:26 ID:???
今、関数は除いてスクリプトを眺めてみたのですがエラーが発生していた変数を
使っている形跡がなかった。グローバルなんて使っていないし、わけがわからない・・。
7566:05/03/16 18:47:16 ID:???
致命的エラーで途中で処理を中断させたらデータくらいは狂わせる事が
出来るかもしれないな
ちなみにPHP Version 4.3.9です
76nobodyさん:05/03/16 22:45:43 ID:???
他板から来ました。
ローカルルール申請をする前に
知識のある方に確認して欲しいのですが
どちらで聞けばよろしいでしょうか?
77nobodyさん:05/03/17 00:18:17 ID:???
78nobodyさん:05/03/17 00:24:03 ID:???
>>76
ここは「PHP」のくだ質スレなんよ。
79nobodyさん:05/03/17 02:32:38 ID:pEdxtvRG
1、掲示板のログとかで、DB無しだと一行消すために全行書き直すことになると思うのですが、
  MYSQLとかだと一行消して間をつめるみたいに軽い処理でできるのでしょうか?

2、最近のサーバーなら5000行を超えるテーブルでも比較的軽く操作できますでしょうか?

3、カンマ区切りのテキストファイルをたくさん作るくらいならMYSQLにすべきでしょうか?

4、MS-ACCESSのようにテーブル作るたびにファイルができるのでしょうか?


webアプリを作っていて、できたのはいいもののデータファイルが1000行とか超えてくるとさすがに心配です。
ファイルロックをしてはいますがfrockでは完璧ではないようで・・

どなたかY/Nで結構ですので1〜4答えてください。
80nobodyさん:05/03/17 06:07:50 ID:???
>>79
ここはPHPのスレなのだが。。。。
81nobodyさん:05/03/17 09:10:33 ID:???
>>79
SQLite
82nobodyさん:05/03/17 12:31:19 ID:JSWrWrWk
すいません、教えてください。
現在PHPにPOSTでバイナリ画像データを投げています。
ところが、$ret = $_POST['ret'];
にした時にすでに、$retはデータに\0があった場合に切り詰められてしまいます。

これを回避してバイナリ画像データを
画像ファイル形式で保存するにはどうしたらいいでしょうか?
83nobodyさん:05/03/17 12:31:45 ID:JSWrWrWk
ddd
84nobodyさん:05/03/17 12:32:27 ID:???
>>83
ごめんなさい。
変なものも打ってしまいました。
85nobodyさん:05/03/17 12:54:39 ID:???
>>82
POSTでバイナリを投げる?
フォームからファイルアップロード?
だったら、普通にmultipart/form-data使えば?

それより、IDに感動した。
86nobodyさん:05/03/17 13:12:57 ID:???
>>85
フォームからではなくて、Iアプリから投げています。
Iアプリからはきちっと投げれているんですが、
PHP側で$ret=$_POST['ret'];
と、やろうものならもう文字がめちゃめちゃになっています。

なんとか回避できないでしょうか?
$HTTP_POST_FILESというのを試したのですが、うまくいきませんでした。
(FORMからファイルのアップはできました)
87nobodyさん:05/03/17 13:19:19 ID:???
文字がめちゃめちゃって?
88nobodyさん:05/03/17 13:20:29 ID:???
>>86
そのi-アプリはcontent-typeヘッダを出力してるのか
89nobodyさん:05/03/17 13:24:46 ID:???
お絵描きJavaアプレットから画像データを受け取るときは$HTTP_RAW_POST_DATAを使ったけどね
90nobodyさん:05/03/17 13:25:08 ID:JSWrWrWk
レス恐れ入ります。

ヘッダはこんな感じで出力してます。
con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
試しにmultipart/form-dataにしてみたんですが駄目でした。
ちなみに、ret='画像バイナリデータ'という感じでPOSTで渡しております。

文字が認識できないというのは、バイナリデータに\0が在った場合切り詰められてしまうことです。
$ret=$_POST['ret']; ←この時点で取得するときには勝手に切り詰めてくれます(涙
91nobodyさん:05/03/17 13:54:02 ID:???
レスありがとうございます。
$HTTP_RAW_POST_DATAをググったら解決できました♪
//うちの鯖では$HTTP_RAW_POST_DATAが使えませんでしたので
//ググって出てきたメーリングリストから転載します。
$buffer = "";
$stdin = fopen( "php://input", "r" );
if( !$stdin ){ die( "stdin open error!!" ); }
while( !feof( $stdin ) )
{
$buffer .= fgets( $stdin, 10000 );
}
fclose( $stdin );

これでPOSTデータを取得できました。
但し、もともと"ret=画像バイナリ"で送信していたので、
retをはずして"画像バイナリ"のみで送信しました。
折角、ハッシュになっていて便利なのですが、この際諦めます。
9279:05/03/17 14:12:39 ID:???
phpでデータたくさんのデータ保存するならどっちがいいのか知りたかったんですが
webprogの質問のほういきますね。
93nobodyさん:05/03/17 15:41:55 ID:???
>>91
Content-typeをapplication/octet-streamとかにすればalways_populate_raw_post_dataの設定にかかわらず
$HTTP_RAW_POST_DATAにPOSTデータがそのまま残ると思う。
94nobodyさん:05/03/17 15:59:35 ID:???
>>90
i-appli側も作ってるならi-appliのほうでmaltipart/form-dataの形式にして送ればバイナリデータもちゃんと遅れるでしょう。
application/x-www-form-urlencodedは文字通りurlエンコードして送るものですから
95nobodyさん:05/03/17 17:09:51 ID:???
自分とこのBlogっぽいスクリプトで、
http://foo.bar/index.php/20050401
って感じでindex.phpに日付っぽい文字列渡してるんですけど、
Hatenaみたく
http://foo.var/20050401
って感じで日付をスクリプトに渡すにはどうすればいいでしょうか。
やっぱApache側でなんとかしないとダメ?
96nobodyさん:05/03/17 17:40:17 ID:???
>>95
PHP以前の問題でapacheがどうするかつー話。
上のURLが使えるつーのもapache側でなんとかしてるよ。
自分が管理してる鯖なら「なんとかした」時のドキュメントを再度確認。
他人が管理してる鯖ならその人に相談してみれ
97nobodyさん:05/03/17 18:34:04 ID:???
>>96
うへぇ。やっぱApache側ですか。
> 自分が管理してる鯖なら「なんとかした」時のドキュメントを再度確認。
Apache側の設定はデフォのままです。
上のURLみたいにやってるサイト見て、試しに自分とこのでも似たようなURL入れて飛んでみたらありゃアクセス出来んじゃんって。
じゃあ$_SERVER['PHP_SELF']から文字列取得すりゃどうにでもなるじゃん、って感じで適当に書いただけなんで。

んー、mod_rewriteあたりでなんとかなりますかね・・調べてみます。
98nobodyさん:05/03/17 19:12:45 ID:???
文字列の比較について質問させてください。
パスワードの比較をしたいのですが
半角の英数のみの文字列を比較する場合
== === strcmp などどれがよいのでしょう?
9998:05/03/17 19:13:20 ID:???
==は余計でしたね。
100nobodyさん:05/03/18 01:16:38 ID:???
自分でサーバ動かして、ドキュメントルートフォルダ以下にhoge.phpファイルを置いた場合と、
ホスティングのレンタルサーバで、自分のディレクトリ以下にhoge.phpファイルを置いた場合に、

同階層のinc.phpを読み込むには、
require_once($_SERVER['DOCUMENT_ROOT'].'/inc.php');
これで行けてるんですが、

自分でサーバ動かして、ユーザ/public_html/以下のディレクトリにhoge.phpを置いた場合は、
パス的に違うところ(ドキュメントルートの方)を見に行ってしまってinc.phpが無いという
エラーになってしまいます。

当たり前と言えば当たり前な気がするんですが、こういう場合、今いる位置を取得するような記述に変えるものでしょうか?
(そんなものがあれば、ですが。)

もしくは、apacheの設定でどうにかする問題でしょうか?
101nobodyさん:05/03/18 01:20:05 ID:???
>>100
__FILE__
102nobodyさん:05/03/18 02:04:42 ID:???
同階層なら./inc.phpでよいんでないの?
103100:05/03/18 02:11:52 ID:???
>>101
ちょっと調べてみます。使い方がよくわからんので。

>>102
まじすか?じゃあ元から
require_once('./inc.php');
ってやっとけば良かったのかなぁ。後でやってみます。
104nobodyさん:05/03/18 13:36:47 ID:???
ごめん自信ないけど
require_once('inc.php');
はだめなのかな
105nobodyさん:05/03/18 15:45:07 ID:???
imagefttextについてですが、
携帯サイトで画像に文字を入れるサイトを作っています。
imagefttext ($im, $size, $angle, $x, $y, $col, $font_file, $text)
を全て変数にしてformを使った選択式にしています。
PCからアクセスするとすんなり行き、画像に文字が入って表示されます。サイズ、位置、色、フォントの種類も全てOKです。
しかし携帯(auのA3012CA)からアクセスすると画像は表示されますが、文字が描画されていません。
これは無理なんでしょうか?
106nobodyさん:05/03/18 16:08:50 ID:???
>>105
ここで聞く前に色々出来る事があるだろう?
$textに文字列がちゃんと入ってるのかとかさぁ。
携帯の時の画像をファイルに落としてそれをPCで確認してみるとかさぁ。
107nobodyさん:05/03/18 17:02:27 ID:???
ツワ
108nobodyさん:05/03/18 17:37:43 ID:???
PHP4.3.10とMySQL3.23.49での質問です。

+--+--------+-----+------+
| id | leader  | sub_l | sub_l2 |
+--+--------+-----+------+
| 01 | 山田   | 本田 | 上田  |
| 02 | 上田   | 藤本 | 山本  |
| 03 | 山田   | 藤本 | 田中  |
+--+--------+-----+------+
こんなテーブルで、各列の名前をひとつの配列に格納したいのですが、
つまづいてしまったので質問させてください。

$result = mysql_query (SELECT leader FROM table, $conn);
$leader = mysql_fetch_array ($result);
これだと、
Array( [0] => 山田 )
Array( [0] => 上田 )
Array( [0] => 山田 )
の様に、行ごとの配列になってしまいます。

これを、Array ([0] =>山田 [1] => 上田 [3] => 山田)
の様にしたいのですが、どうすれば良いでしょうか?
109nobodyさん:05/03/18 17:52:34 ID:???
>>108
while ($row = mysql_fetch_row($result)) {
$leader[] = $row[0];
}
mysql_resultでもいいけど。
mysql_fetch_array()した後で新しい配列を作るのもありかな。
110108:05/03/18 18:00:14 ID:???
>109
うおー!できました!
whileが浮かばなかったです。。。

こんな短時間に答えてもらってめっちゃ嬉しいっす。
dクス!
111nobodyさん:05/03/18 18:13:55 ID:???
ううう、基本だと思うk度
112nobodyさん:05/03/18 18:54:53 ID:???
スミマセンorz
113100:05/03/18 21:41:06 ID:???
すみません、また質問なんですが、
今いるページ(動的)を表示させるにはどうしたもんでしょうか?
$_SERVER['PHP_SELF'];
や、
$_SERVER['PATH_TRANSLATED'];
だと、そのファイル自体が出てしまいますが、
http://xxx.com/hoge.php?huga=1&hage=2とか
.htaccessでちょっと違う渡し方(http://xxx.com/1/2/みたいな感じ)をしてたりするので、
つまりは、アドレスバーに出ているパスがわかる手法なんてありませんですか?
114100:05/03/18 21:42:08 ID:???
うわ↑実在だった…宣伝じゃないス
115nobodyさん:05/03/18 22:01:03 ID:???
あ、REQUEST_URIってので出来そうな気がしました。
116nobodyさん:05/03/18 22:36:14 ID:???
>>100
ここはお前のチラシの裏じゃねぇ。
117nobodyさん:05/03/18 22:42:36 ID:???
>>739
最後ギガワロスwwwwwwwwwwwwwwwww
義兄さんいいやつカッコイイwwwwwwwwww
↓の1とは大違いだwwwwwww
http://ex10.2ch.net/test/read.cgi/news4vip/1111083418/
118nobodyさん:05/03/19 17:26:13 ID:???
>>116
お前のレスは、くだらねぇ質問ですら無いな。
チラシやろうか?
119nobodyさん:05/03/19 20:15:14 ID:+syTbEnI
質問です。
PHPスクリプトからパスワード入力が必要なページにアクセスするのはどうやればいいんでしょうか?

[パスワード認証ページ]
pass.php ($_POST['pass']に対応した入力ボックスがある)
120nobodyさん:05/03/19 20:18:19 ID:???
>>119
cURL使うのが楽でいいんじゃないか。
POSTで色々投げられるし。
121119:05/03/19 20:29:22 ID:???
>>120
レスどうも!
CURLというのは「libcurl」というライブラリですよね?
ちょっと調べてみます。
122119:05/03/19 21:31:07 ID:+syTbEnI
>>120
教えて頂いたcURLを使用して以下の様なコードを作成して実行したのですが
「ERROR!」が表示されてしまい、どうも上手く行きません…
スクリプトで指定したパスワードをコピー&ペーストで手動でボックスに入力して
ログインすると問題ないので、パスワードは間違ってないはずなのですが…
どこが悪いのでしょう??

-------------------------------
[access.php]
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.******.***.login.php');
curl_setopt($ch, CURLOPT_POST, 'test_pass');

curl_exec($ch);

curl_close($ch);
-------------------------------
[login.php]

if($_POST['password'] == 'test_pass'){
print("OK!\n");
}else{
print("ERROR!\n");
}
-------------------------------
123nobodyさん:05/03/19 21:42:05 ID:???
>>122
curlは使ったこと無いからぱっと見の印象だけど、
passwordという文字がどこにも無いのにそれがPOSTで割り当てられるとは到底思えない。
そう思って本家のマニュアルを見てみれば、user notesにサンプルまであったよ。
124119:05/03/19 22:04:12 ID:???
>>123
そうですよね… アホなコード書いてしまってた…
以下で問題なくアクセス出来る様になりました。
どうもありがとうございました!

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.******.***.login.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'password=test_pass');

curl_exec($ch);

curl_close($ch);
125nobodyさん:05/03/20 00:17:39 ID:Agj+ehs1
関数から配列をreturnする時って
ポインタのみ返される(=配列が巨大になってもコストは変わらない)
のでしょうか?
それともまるまるコピーされるのでしょうか?
126nobodyさん:05/03/20 01:09:28 ID:???
ポインタとは少し違いますが参照渡しできますよ
127nobodyさん:05/03/20 01:42:16 ID:HpwY0q6P
趣味の範囲でlinux自作鯖を立て、perlをwebで、あるいは、
鯖管理のスクリプトとして使ってました。
このたびphpを勉強しようと思うのですが、お勧めの書籍などあれば
教えていただきたいのですが。
128nobodyさん:05/03/20 01:53:14 ID:???
PHP は公式マニュアルが使えるから、基本が分かってれば特に本を読む必要は無いと思う。
不安になったら既存のスクリプトを読むとか。
あとは何がしたいかによるけど。
129nobodyさん:05/03/20 01:58:29 ID:HpwY0q6P
そうですか。ありがとうございます。
130nobodyさん:05/03/20 02:17:44 ID:???
>>127
なんだったら、こっちで訊いて
PHP関連の書籍(但しPHP出版系お断り)
http://pc5.2ch.net/test/read.cgi/php/985315574/893-
バカが沸いて最後変になってるけど。
131nobodyさん:05/03/20 04:41:31 ID:06hYr4Ff
実行結果を別の.htmlファイルに書き出そうとしています。
書き出すのは上手くいったのですが、
もっとスマートな書き方があるかもしれないと思い、質問です。

自身のファイルに書き出す場合なら
echo = 'hoge';
echo = 'hage';
のところを、一番最初に $kakikomi = ""; とした上で
$kakikomi .= "hoge";
$kakikomi .= "hage";
と$kakikomiに追記を繰り返し、最後に
fputs ( "test.html", $kakikomi );
で出力しています。

変数に追記していく点が、どうかなぁと思うのですが
いかがでしょうか???
132nobodyさん:05/03/20 05:54:38 ID:???
>>131
そんなんで良いんでね。
行間がどれ位離れてるのか隣接してるの判らんし。
他には隣接してるならヒアドキュメント使うとか、
array_push()使って溜めて、最後にjoin()して書き出しとか。
133131:05/03/20 10:11:25 ID:otGG2Eg1
>132
ありがとう。
ヒアドキュメントは使えるところには使ってみました。
なるほど、array_pushも使えますね。。。メモメモ
134nobodyさん:05/03/20 11:35:21 ID:???
掲示板を作っています。htmlを無効にしようとして
htmlspecialchars()を使ったのですが\nと\rを<br>に置き換えているためか
改行されず、そのまま<br>と表示されてしまいます。
うまく表示するためにはどうしたらよいのでしょうか?
135nobodyさん:05/03/20 12:33:41 ID:???
え、<br>に置き換えてるなら
136nobodyさん:05/03/20 12:54:44 ID:???
// 改行処理
$comment = str_replace("\r\n", "\r", $post['comment']);
$comment = str_replace("\r", "\n", $comment);//改行文字統一
$comment = preg_replace("/\n{2,}/", "\n\n", $comment);//2行以上の改行を2行に
if (substr_count($comment, "\n") > MAXBR) error("えら!");
$comment = eregi_replace("&([0-9a-z#]+);", "&\\1;", $comment);
$post['comment'] = str_replace("\n", "<br>", $comment);//\nをbrに
137nobodyさん:05/03/20 13:28:23 ID:???
>>133
array_push()は、$array[]='hoge';でも等価。
あと結果用の自前のクラス作って、そこにpushとwriteってメソッド付けるとか。
(関数でもいいけど。巷のログ出力用のクラスを参考に)
138nobodyさん:05/03/20 17:08:29 ID:MmiCb60C
PHPコンパイル時のオプション指定の説明をまとめて書いてあるところって、
どこかにありますか?
139papupapu:05/03/20 17:11:22 ID:???
PHP5の勉強をしたいのですが、何から勉強したらいいのでしょうか?アドバイスお願いします。
140nobodyさん:05/03/20 17:25:26 ID:???
>>138
./configure --help

>>139
マニュアル読んでサンプル動かす。
141nobodyさん:05/03/20 17:27:41 ID:???
>>139
具体的な目標を持つこと。
142nobodyさん:05/03/20 17:33:11 ID:???
>>138
PHPのマニュアル、喪前のHDDの中
./configure --help
143nobodyさん:05/03/20 17:34:03 ID:???
やっぱ被るか...
144nobodyさん:05/03/20 21:32:17 ID:???
教えてください。
イメージディレクトリからファイル名を指定して探し出しURLとして表示させたいのです。

img.phpで以下を保存し、ファイル名の指定はimg.php?aaa.jpg等としたいです。
このときのOOOOをどう表現すればいいのでしょうか?
$dir = "./img/";
$file = strstr(OOOO, '?');
glob("$dir/$file");
145nobodyさん:05/03/20 22:29:13 ID:???
>>144
img.php?file=aaa.jpg

$file = $_GET['file'];
146nobodyさん:05/03/20 23:07:33 ID:???
>>145
ちゃんとGETをちゃんとチャックしないとものすげぇ怖いなそれ
147nobodyさん:05/03/20 23:29:17 ID:???
拾ったものを食べちゃいけません。
洗ってから食べなさい。
148nobodyさん:05/03/20 23:45:27 ID:???
$file=$_SERVER['argv'][0];
149nobodyさん:05/03/20 23:58:57 ID:???
>>146
>145を見てチェックせずに使うようなやつは死ねばいいんだ。
150149:05/03/20 23:59:40 ID:???
あ、死ぬのはサーバね。
151nobodyさん:05/03/21 00:13:04 ID:???
>>150
サーバモジュールPHPで共有サーバ運営してても
流石にそこまで駄目駄目な状態な鯖は無い...と思いたい。
152nobodyさん:05/03/21 01:46:48 ID:???
PHPでIP規制をしたいのですが
eregで判別するのと「.」をトークンとして分割しその値を==で判別するのでは
どちらが効率が良いですか?
153nobodyさん:05/03/21 01:55:46 ID:???
>>152
「.」区切りを整数になおす関数もあるぞ。んで、サブネット指定できる。
その辺をうまくやりくりしてくれる関数は前に誰かに質問されて、
こっちかホンスレに書いた。DAT落ちしててみれないかもだけど。

あと、逆引きできるならリモートホストの後方一致って手もある。
154153:2005/03/21(月) 04:13:25 ID:MBpHY0ek
すみません。へっぽこデザのものです。
WebProg板は不慣れなのでお手柔らかにお願い申し上げます。

PHPとHTML混在の為、文字コードをEUCにして
すべてのページを作成していますが、
内部ページとボタンのポップアップメニューが
文字化けがでたりでなかったり、ひどいです。

DreamWeaverテンプレートをEUCで作成して、
そこから全ページEUC(.htmlのページも.phpのページも)
で読み出して作成しています。これが文字化けの原因なのでしょうか。
それともPHP自体テンプレートから引き出して作らず個別で製作したほうが良いのでしょうか?
もちろんPHPが画面上にPrintする部分は編集可能領域にしてあります。

それとも、ふと思ったのですが、
テンプレートもそこから新規作成するページもShift-JISで作成し、
挿入>PHP>PHPインクルード+PHPページエンコーディングで

<?php include(mb_http_input("EUC-JP"); mb_http_output("EUC-JP");); ?>

といれればそれで良いのでしょうか。

DWの機能も内容にはいっていて
板違いは承知ですが、質問させてもらいました。
これだからデザは、、などといわれるのは覚悟の上ですが、
知識ございますかた、ご教授ください。宜しくお願い申し上げます。
155nobodyさん:2005/03/21(月) 04:26:03 ID:???
>>154
それでオイラはどっちのスレで答えればいいのかね ゚・(ノД`)・゚・
ttp://pc5.2ch.net/test/read.cgi/hp/1106804437/713
DWのEUC対応が不完全なせいじゃないかなぁ。
バージョン上がる度にEUCの問題を起こしてる気が。

HTTP入出力をEUC、スクリプトをSJIS(HTMLに埋め込みっぽいから)にすると
トラブルの原因にもなるので、EUCに統一した方がよいかと。
で、DWでSJISで作って 出来上がったファイル(s)をなんらかのツールで
EUCに変換するのが楽じゃないかなぁ。
156153:2005/03/21(月) 05:20:19 ID:???
>>154
人の番号名乗ってんじゃねぇヽ(`Д´)ノウワァン
157154:2005/03/21(月) 05:25:47 ID:???
>>155
おっしゃる通りです。
マルチです。申し訳ありません。どちらに書いたらいいのか判断がつかなかったので
ご容赦ください。

(1)同一サイト内で文字コードを変える(.htmlはShift-Jis、.phpはEUC)ということは
ブラウザに迷わせてしまうので避けるべきですよね?

(2)それと.phpのページに対してDWのテンプレート機能は使用しても問題ないのでしょうか

とりあえずご教示いただいた通り、S-JISにて作成して、秀かMiにて、
文字コード変換を手動ですることにします。

>>153
ゴメソ
158nobodyさん:2005/03/21(月) 05:47:40 ID:???
>>157
マルチはやめろ。
判断つかないならサイコロでも何でもいいから1つに決めて質問しろ。
不適切ならきっと誘導してくれる。
159154:2005/03/21(月) 06:28:46 ID:???
すみません。マルチ謝罪して誘導してきました。
http://pc5.2ch.net/test/read.cgi/hp/1106804437/715

みなさんレスいただきましてありがとうございます。
おそらく期末前で徹夜で仕事しながら私の質問をみていただいている方も
大勢いらっしゃるはず。反省しております。

再度整理して質問させてください。

(1)同一サイト内でページごとに文字コードを変える(.htmlはShift-Jis、.phpはEUC)ということは
ブラウザに迷わせてしまうので絶対避けるべきでしょうか?

(2).php等のサーバーサイドの動的コンテンツに対してDWのHTMLテンプレート機能は使用しても問題ないのでしょうか

以上です。宜しくお願い致します。
160nobodyさん:2005/03/21(月) 06:40:40 ID:???
>159
1しかわからんけど。
ちゃんと文字コードを指定してたら問題ないんじゃないか?
フレームとかincludeさせちゃうとダメだろうけど。
161nobodyさん:2005/03/21(月) 11:31:46 ID:Xj0YOktX
ユーザーにアップロードさせるディレクトリではphpを無効にしたいんですけど、
拡張子を.phpにしてアップさせなければいいのではというの以外に、
.htaccessなんかで設定できるディレクティブはありませんか?
162nobodyさん:2005/03/21(月) 11:42:47 ID:???
>>161
AddType
163144:2005/03/21(月) 12:37:17 ID:???
>>145-149
ありがとうございました。
できました!!
164161:2005/03/21(月) 12:55:21 ID:???
>>162
ありがとう。
.htaccessに
AddType text/html .php
だけ書き込んだら、できたよ。
最初、internal server errorが出たんで、???って思ったけど、htttpd.confで
AllowOverride Fileinfo
を付け加えたよ。

ちなみに、php addtypeでググったら
ttp://nanakorobiyaoki.at.infoseek.co.jp/etc/phpdeny.html
が出て来た。検索しづらいなーって思って↑を作ってくれたみたいだけど、
162に教わった後だからあんまり意味なかった。
165nobodyさん:2005/03/21(月) 13:04:31 ID:???
>>153
さんくす。参考になりました。

リンクをクリックしたかどうかを判別する何かいい方法はありませんか?
携帯向けだからリファラでは判別できないし
やはりユニークIDを付けてリンク先に飛ばす前にファイルに書き込むしかないでしょうか?
166166:2005/03/21(月) 13:08:34 ID:???
自分のアップロード用のディレクトリは
Options -ExecCGI
AddType text/plain .php .html .cgi .css
IEだと意味無い部分もあるけど自分はIE使ってないので変なブラクラ踏まされることも無い
167nobodyさん:2005/03/21(月) 14:14:44 ID:???
>>159
(1) ちゃんとhttpdの設定でHTTPヘッダに適正な文字コードの出力がなされ、
かつHTMLドキュメントのMETAの方でも適正な文字コードが指定されてれば
まず問題はないので絶対とは思わない。しかしブラウザによってはPOSTする
文字コードが混乱して変なことになったことがあるので、
余り混在させるべきではないと経験的に考える。
(2) DWを知らんので回答できず
168nobodyさん:2005/03/21(月) 14:24:10 ID:???
>>165
素直にセッション使ってSIDをURLに付加すればいいと思う。
169nobodyさん:2005/03/21(月) 18:49:50 ID:???
echo ltrim('web_content/text','web_con');
echo ltrim('web_content/text','web_cont');

上と下では結果が結構違うんだけども・・
何故に?

あ、やりたいことは親ディレクトリ名を切り取りたいだけです。。orz
170nobodyさん:2005/03/21(月) 19:05:27 ID:???
>>169
どうおかしいと感じたのか書いてないので想像するしかないですが、
ltrimの2つ目のパラメータの意味を勘違いしているものと思われます。
ltrimの2つ目のパラメータは「削除したい全ての文字をリスト」したものです。(not 文字列)

1つ目のltrimは、8文字目のtでパラメータに無い文字を発見するので、それ以降の文字が返されます。
2つ目のltrimは、12文字目の/でパラメータに無い文字を発見するので、それ以降の文字が返されます。
目的にそぐわない関数だと思われます。
171nobodyさん:2005/03/21(月) 19:27:49 ID:???
>>169
指定するパラメータは「文字列」でなくて「文字リストの列」なんだが理解してる?
172nobodyさん:2005/03/21(月) 19:35:59 ID:???
トリミングをそういうふうに使うのもめずらしい
173nobodyさん:2005/03/21(月) 20:59:31 ID:???
あー、なるほど。本に
ltrim($xxx, "-");
って載ってるから同じような物かなーと思ったけど、
第2パラメータの文字列が配列として1文字ずつ比較(?)されてたから、
第1パラメータのみに存在する文字が出た時にそこから後ろが抽出された訳・・かな?

>>170 (なんかカコイイ。。Thanks!)
>>171
>>172
ありがとうございました。
と、言うわけで質問します。

カレントディレクトリ名を取得する関数などはあるのでしょうか?
フルパスではなくて、ディレクトリ名です。
www.xxx/php/index.htm の場合、 php とディレクトリ名を取得したい。
174nobodyさん:2005/03/21(月) 21:04:01 ID:???
PHP5ってのがあるけど
これってPHP4のスクリプトは書き換えないと使えないの?
175nobodyさん:2005/03/21(月) 21:39:18 ID:???
>>173
$path = "www.xxx/php/index.htm";
echo basename(dirname($path));
176131:2005/03/21(月) 23:25:37 ID:???
>137
亀レスですが、ご丁寧にありがとう。
まだPHPを触り始めて1週間とかなので、
非常に参考になります!
177nobodyさん:2005/03/22(火) 18:29:04 ID:LgrnIX4+
前スレ636です。
ログファイルに<!--- --->で囲まれた部分を複数出力する方法を
お尋ねしたところ
$reg = "/<!--- (.+?) --->(.+?)<!--- \/\\1 --->/";
preg_match_all($reg, $RetrieveFile, $DataPrint);
と御教授いただいたのですがechoの書き方がわからず参ってます。
echo $DataPrintと書いてもecho $DataPrint[0とか1とか2とか]書いても
全てArrayになるのですが、$regの2番目の(.+?)に該当する部分を
出力するにはどうしたらいいのでしょうか?
178軟式PHP:2005/03/22(火) 18:53:07 ID:???
とりあえずprint_rなりvar_dumpなりしてみて自分で考えれ。
179nobodyさん:2005/03/22(火) 22:34:54 ID:???
>>177
つミ
 print_r($DataPrint);
180nobodyさん:2005/03/22(火) 23:19:38 ID:???
すまん、自身の変数名を文字列として取得する方法(関数)ってあったけ?
181nobodyさん:2005/03/22(火) 23:23:26 ID:???
string getMyName(string varname) だったとして、どうやってその関数を使うつもりなんだろう。。
182nobodyさん:2005/03/23(水) 21:06:12 ID:???
匿名関数じゃ駄目なのかな
183nobodyさん:2005/03/24(木) 12:27:03 ID:uQ7Kwr2a
連想配列って英語で何ていいますか。
184nobodyさん:2005/03/24(木) 12:50:25 ID:???
associative array
185nobodyさん:2005/03/24(木) 16:11:55 ID:cbGEPWrc
http://hoge.com/?foo=1&bar=2&null=0
といったように複数の条件を指定して、その値に従ってページを遷移するPHPスクリプトはご存じでしょうか?
探したのですが、レッツPHPのダウンロードカウンタは1つの条件しか持てないようなので・・
http://php.s3.to/data/#dl
186nobodyさん:2005/03/24(木) 18:50:34 ID:???
>>185
詳しく
187nobodyさん:2005/03/24(木) 19:18:33 ID:???
>>185
フレームワーク使ったら?
188nobodyさん:2005/03/24(木) 19:58:00 ID:???
>>185
ページを遷移する、という意味が分からないんだが…
こんなのが欲しいんか?

<?php
$foo = ceil($_GET['foo']);
$bar = ceil($_GET['bar']);
$null = ceil($_GET['null']);

//リダイレクトするURL
$urls[0][0][0] = 'http://www.google.co.jp/';
$urls[0][0][1] = 'http://www.yahoo.co.jp/';
$urls[1][1][0] = 'http://www.goo.ne.jp/';



header('Location: '.$urls[$foo][$bar][$null]);
?>
189185:2005/03/24(木) 20:42:36 ID:???
>>188
そういう感じです。
何処を見ていいかわからなかったもので検索後もいろいろ試してみたんですが・・
やってみます、ありがとうございました。
190185:2005/03/24(木) 20:50:30 ID:???
一応書いておきますけど、下のようにソフト名・OS・バージョンにより、ダウンロードページに移動させるスクリプトの予定です。
http://hoge.com/?product=foo&version=1.2&os=mac
191nobodyさん:2005/03/24(木) 21:36:58 ID:???
>190
それリダイレクトなんかじゃなく
ちゃんとデータベース作ってやった方がいいですよ
192nobodyさん:2005/03/25(金) 01:01:55 ID:???
>>191
何言ってんだお前
193nobodyさん:2005/03/25(金) 03:25:56 ID:EQZt/eu0
popenを使ったPHPスクリプトにチャレンジしてます。
以下のようなスクリプトをシェル上で実行すると ghijk がちゃんと
出力されるのですがweb経由でスクリプトにアクセスすると何も表示されません。
どうすればwebでも読めるようになりますか?

<?php

$data = "abcdef\nghijk\nlmnopqr";

$fp = popen("/usr/bin/grep 'i'", "w");
fputs($fp, $data);
pclose($fp);

?>
194nobodyさん:2005/03/25(金) 03:55:14 ID:???
>>193
環境。
195193:2005/03/25(金) 07:21:03 ID:???
>>194
失礼しました。環境は
OS: FreeBSD、PHPバージョン: 4.3.10
です。
196nobodyさん:2005/03/25(金) 14:33:31 ID:???
変数に評価式を入れて
それをifに渡してやることって可能ですか?

以下のようなイメージです。

$f = 'is_string($str) && strlen($str) > 0';
if($f){
  // 文字列
}else{
  // それ以外
}
197nobodyさん:2005/03/25(金) 14:48:19 ID:???
>>196
eval使えばできないことは無いと思うが用途がわからん
if(式)じゃなんでだめなの
198nobodyさん:2005/03/25(金) 15:13:24 ID:???
>>197
ユーザに評価式を入力してもらいたかったんです。
evalで出来そうですね。
199nobodyさん:2005/03/25(金) 15:30:26 ID:???
そ、それはセキュリティ的に恐ろしいぞ。
200nobodyさん:2005/03/25(金) 15:42:25 ID:???
>>195
そういう意味じゃなくて、194はコンソールアクセス(成功した方)と
同等の環境(権限とかパスとか)をWebアクセスにも与えろってことだと思うよ。
201nobodyさん:2005/03/25(金) 15:55:13 ID:???
>>198
入力されたものをevalするのはやめろ
readfile(\"/etc/passwd\");
とか入力されるぞ
202nobodyさん:2005/03/25(金) 16:06:32 ID:???
>>201
今時シャドーだけどな
203nobodyさん:2005/03/25(金) 16:21:45 ID:???
>>199,201
どうもです。確かにそうですね。
204193:2005/03/25(金) 19:31:21 ID:???
>>200
えっと、grepのパスも/usr/bin/grepとフルパスで指定しているし
grepのパーミッションも-r-xr-xr-xの状態ですけど、これ以外にも
環境を合わせないといけないところがあるということでしょうか?
205nobodyさん:2005/03/25(金) 19:38:48 ID:???
>>193
何も表示されないとか意味の無い情報じゃなくて、
実際はどんなエラーが出てるの?
206193:2005/03/25(金) 20:22:33 ID:???
>>205
とりあえずerror_logには何も残ってません。
ブラウザー上にはエラーさえも出ません。
念のためtelnetでwebサーバーにつなげてみましたが以下の通り
ヘッダ以下には何も書いてありませんでした。
$ telnet www 80
Trying xxx.xxx.xxx.xxx...
Connected to www.
Escape character is '^]'.
GET /~myuser/test.php HTTP/1.0

HTTP/1.1 200 OK
Date: Fri, 25 Mar 2005 11:16:58 GMT
Server: Apache
X-Powered-By: PHP/4.3.10
Content-Length: 0
Connection: close
Content-Type: text/html

Connection closed by foreign host.
$
207nobodyさん:2005/03/25(金) 20:55:19 ID:???
>>206
error_logには何も残さず、HTTPでも何も吐かないように
設定していると通常はそうなります。
208193:2005/03/25(金) 21:11:43 ID:???
>>207
なるほど。そういうものだったんですか。
サーバー管理者ではないのでphp.iniとかの書き換えはできませんが
error_reporting(E_ALL);
を付け加えてやってみました。error_reporting関数を使っても
エラーは何も出てこないですねー…
209nobodyさん:2005/03/25(金) 21:36:57 ID:???
>>208
display_errorsやほかその他エラー関連の設定は?
エラー関連の設定はほぼ全部ini_setで変更できる
210nobodyさん:2005/03/25(金) 23:41:48 ID:???
/usr/bin/grepなんて家にはないがSELinuxが絡んでるかもね
211nobodyさん:2005/03/26(土) 02:13:41 ID:???
>>193
popenで開いて、開いたプロセスに$dataを入力として渡してるが、
プロセスからの出力は、拾ってないぞ?
popenは一方向のパイプしか扱えないから、
proc_openをつかえ。
んで、fputsで$data渡した後、fgetsなりなんなりして結果を取得してくれ。
proc_openの使い方はpopenとは異なるからマニュアル嫁よ。
212193:2005/03/26(土) 06:11:40 ID:???
>>209
ini_setで変更できるの初めて知りました。
とりあえず以下を追加しましたがやはり何もエラーは残りませんでした。
ini_set("display_errors", "on");
ini_set("log_errors", "on");
ini_set("error_log", "log.txt");
213193:2005/03/26(土) 06:12:06 ID:???
>>211
proc_openのマニュアルttp://php.s3.to/man/function.proc-open.html
を読みました。よくは理解できなかったのでサンプルを参考に作ってみました。
やはりシェル上では動きますがweb上では何も表示されませんでした。
<?php

$data = "abcdef\nghijk\nlmnopqr";

$descriptorspec = array(
 0 => array("pipe", "r"), // stdin is a pipe that the child will read from
 1 => array("pipe", "w"), // stdout is a pipe that the child will write to
 2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
);

$process = proc_open("/usr/bin/grep 'i'", $descriptorspec, $pipes);
if (is_resource($process)) {
 fputs($pipes[0], $data);
 fclose($pipes[0]);

 while(!feof($pipes[1])) {
  echo fgets($pipes[1], 1024);
 }
 fclose($pipes[1]);
 proc_close($process);
}

?>
214nobodyさん:2005/03/27(日) 12:04:17 ID:VfQV7VpE
ホームディレクトリ以下の特定ディレクトリ内でのみ
phpを使えるように設定しているのですが、どうも期待通りに動いてくれません。

/home/*(username)/public_html/php以下でのみphpを動かしたい
open_basedir = php
user_dir = public_html
とやってみたのですがダメでした。

どの辺の設定をいじればいいのでしょうか?
215nobodyさん:2005/03/27(日) 12:50:21 ID:???
>>214
・「期待通りに動かない」とはどうなるのか。
・そのopen_basedirとかは何の設定なのか。
216nobodyさん:2005/03/27(日) 17:08:31 ID:???
>>214
それはPHPじゃなくてhttpサーバの仕事だよ
Apacheなら.htaccessで設定できるから該当のスレにどうぞ
217nobodyさん:2005/03/27(日) 18:30:34 ID:o5yBDsfR
例えば、下記のようなコード時に、

$a = new TestClass();
$b = &$a;

$aと$bが同じものかどうか(内容が同じというわけではなく、
指し示すメモリの場所が同じ)を検知したいのですが、
なにか良い方法はあるのでしょうか?

どうかご教示下さい。お願いします。
218nobodyさん:2005/03/27(日) 18:40:49 ID:???
>>217
PHPでは不可能だったような希ガス
219nobodyさん:2005/03/27(日) 18:51:03 ID:???
>>217
メモリのマッピングをになっているリファレステーブルで
同じ値が割り当てられていることをもって、指し示す
メモリの場所が同じと見なすしかないと思う。

それとも「同じ値が割り当てられている」ことを調べたいのかな?
220nobodyさん:2005/03/27(日) 19:16:43 ID:o5yBDsfR
>218,219
やはり無理っぽいですね・・
どうもありがとうございます。
221nobodyさん:2005/03/27(日) 22:18:46 ID:???
>>219
>それとも「同じ値が割り当てられている」ことを調べたいのかな?

どうかご教示ください。お願いします
222nobodyさん:2005/03/27(日) 22:49:37 ID:???
自動で他人のサイトへのアクセス数を増加させるプログラムは可能でしょうか?
可能だとしたらどうやったらいいのかまったくわかりません。
どなたかご教授よろしくお願いします。
223nobodyさん:2005/03/27(日) 23:26:06 ID:???
>>222
意味不明。
田代砲?
224nobodyさん:2005/03/28(月) 00:50:15 ID:???
田代砲久し振りに聞いたw

サーチかなんかのランキング上げたいんジャマイカ?
225nobodyさん:2005/03/28(月) 01:31:41 ID:???
>>222
知ってても教えない。
226nobodyさん:2005/03/28(月) 07:35:35 ID:???
>>223>>224
そうです。でも田代砲まで強力じゃなくて。
10分間に1アクセスくらいでいいです。
PHPじゃなくてJavaScriptで作れるんですか?
PHPで簡単に作れないでしょうか?
作り方のヒントだけでも教えてください。お願いします。
227nobodyさん:2005/03/28(月) 12:02:19 ID:???
$dat = "
1
2
3
4
";

$dat = preg_replace("/1(.*)4/","",$dat);

結果が以下のようになりそうでならないのですがどうしてでしょうか?
1
4

228nobodyさん:2005/03/28(月) 12:11:23 ID:???
>>227
ヒント:
改行にマッチさせるためにはオプションが必要です
229nobodyさん:2005/03/28(月) 12:47:19 ID:???
preg_replace("/1(.*)4/m","",$dat)
preg_replace("/1(.*)4/m","",$dat,'m')でもダメでした^^;
洗濯物を干しながら考えてみます
230nobodyさん:2005/03/28(月) 12:52:21 ID:???
>>226
ヒント:「PC常時起動」「META」「リロード」
231nobodyさん:2005/03/28(月) 13:02:34 ID:???
>>226
バカ?
田代砲のパラメータを書き換えればいいだけだろ。
232227:2005/03/28(月) 13:26:01 ID:???
$dat = preg_replace("/\n/","",$dat);
$dat = preg_replace("/1(.*)4/m","\\1",$dat);
とすれば結果が23となるので改行が問題なのはわかるのですが/mをつけても
複数行にはマッチしないようです。複数行の解釈を間違えているのでしょうか?。
233nobodyさん:2005/03/28(月) 13:30:50 ID:???
>>232
.(ドット)を改行にマッチさせるのはsです
$dat = preg_replace("/1(.*)4/s","\n",$dat);
234232:2005/03/28(月) 13:37:54 ID:???
↑じゃ意味無いな
$dat = preg_replace("/1(.*)4/s","$1",$dat);
235227:2005/03/28(月) 13:43:42 ID:???
>>233
ありがとうございます
236nobodyさん:2005/03/28(月) 16:29:39 ID:AxvngZW7
設定ファイルのようなものを作ろうと思うのですが、
今まではクラス化されてないPHPコードべた書きのファイルを作り、
グローバル変数として使うというやり方をしていました。
しかしより洗練されたやり方をと思い、設定ファイル自体を
クラス化し、ゲッター(セッターは必要ないですよね)で値を取得
というやり方を考えました。

前者が駄目なやり方とは思いませんが、後者のやり方は一般的な
オブジェクト指向プログラミングにおいて正しいやり方でしょうか?
オブジェクト指向プログラミングにまだ慣れていないので変な質問かも
しれませんが指揮者のご意見をお聞かせいただければと思います。
237236:2005/03/28(月) 16:35:37 ID:???
イメージ的には以下のような感じを考えています。

class Config {
 var hoge;
 var fuga;

 // コンストラクタ
 // ここで値をセットするのでセッターはいらない?
 function Config() {
  hoge = "hoge";
  fuga = "fuga";
 }

 // ゲッター
 function getHoge() {
  return $this->hoge;
 }

 function getFuga() {
  return $this->fuga;
 }
}
238236:2005/03/28(月) 16:45:56 ID:???
コンストラクタの部分は$this->が抜けていました。
失礼しました。
ちなみに今回お聞きしたいのはどちらかというと小規模な開発
というよりも中規模・大規模開発を視野に入れた保守性重視の
オブジェクト指向ガチガチの開発の場合を想定しています。
239nobodyさん:2005/03/28(月) 17:24:23 ID:???
>>236
別に決まりは無いので好きなように作ればいいと思いますよ。
自分の場合は値の変わらない設定値は定数にしてます。
240nobodyさん:2005/03/28(月) 18:06:19 ID:???
>>238
だったらフレームワークを使え。
241nobodyさん:2005/03/28(月) 19:44:33 ID:???
テーブルに2次元配列にして10行10列位表示したいのですけど、
どのようなやり方になるのでしょうか?配列に慣れていないので
よくわからないのです。ご指導宜しくお願いします。
242nobodyさん:2005/03/28(月) 19:51:02 ID:???
>>241
配列に慣れてないのは構わないんだが、
それ以前に自分の伝えたいことを書き表すのに慣れてないような気が。

そこで指し示す"テーブル"とは具体的に何?
243nobodyさん:2005/03/28(月) 20:02:18 ID:???
>>242
具体的にはexcelのワークシートです。
(0.0)、(0.1)、(0.2)のように入れていきたいんです
244nobodyさん:2005/03/28(月) 20:26:42 ID:???
>>243
htmlのテーブルを使って素直に書くと、
<table>
<tr><td><?php echo $array_data[0][0]; ?></td><td><?php echo $array_data[0][1]; ?></td>〜</tr>
<tr> 〜</tr>

</table>
つー風にも書けるけど、それさえも分からんってことじゃないでしょ?
何に困ってるのかよく分わかんないよ。
245226:2005/03/28(月) 23:06:17 ID:???
田代砲ってどこにありますか?
探したけど見つかりませんでした。
246nobodyさん:2005/03/28(月) 23:11:38 ID:VOOnUpPo
PHPで.htmlファイルを出力させられる?
indexファイルがindex.htmlじゃないとダメで、
テンプレ部分とかいちいち書き直すの面倒なんです
247nobodyさん:2005/03/28(月) 23:21:42 ID:???
>>246
datファイルの出力もできますし、htmlファイルの出力もできます。
248nobodyさん:2005/03/29(火) 10:39:10 ID:???
ログファイルの一番上の1行だけ読む関数って無いのか?
249nobodyさん:2005/03/29(火) 11:40:58 ID:???
>>248
fopen
fgets
fclose
あーはん?
250248:2005/03/29(火) 11:50:32 ID:???
>>249
あんだーすとぅっど。dクス。
251nobodyさん:2005/03/29(火) 13:10:08 ID:???
>>243

>244とヘッダーにおっすおらエクセルよろしくな!って書けば終わりじゃね?

それ以外だとエクセル調べるしかないのでスレ違いだと思われ
252nobodyさん:2005/03/29(火) 13:31:54 ID:???
>>251
>おっすおらエクセルよろしくな!
いっちょやってみっか じゃないのか。
253nobodyさん:2005/03/29(火) 14:02:19 ID:fSc5qMir
フォームから受け取った文字列に含まれる全角スペースを
すべて取り除きたいのですが、下のようにしても取れてないようです。
どこが間違えてるんでしょうか?

$hoo=$_POST['hoge'];
$hoo=str_replace(" ","",$hoo);
254nobodyさん:2005/03/29(火) 14:56:39 ID:???
合ってるよ、文字コードの問題じゃないのかね。
255nobodyさん:2005/03/29(火) 17:06:13 ID:???
質問です。
当方、PHP 4.3.9 を先日インストールしました。

<?php

$name = $_SERVER["PHP_SELF"];
echo $name;

?>

と書いても何も表示されません。
スーパーグローバル変数がPHP 4.1.0 から使用できることは知っているのですが、
それ以外にphp.iniの設定などがあるのでしょうか?


256nobodyさん:2005/03/29(火) 17:22:55 ID:???
まずは
<?php
phpinfo();
?>
257nobodyさん:2005/03/29(火) 18:11:22 ID:???
>>255
サーバーがAn HTTPD だったりしないか?
258nobodyさん:2005/03/29(火) 18:42:20 ID:3cB8cobm
$array = array(
"a" => "10",
"b" => "20",
"c" => "30"
);

$pop = array(
"20",
"30"
);

という二つの配列があって、$arrayから、$popの値が同じデータを削除したいのですが
なんか上手い方法ないですか?
259258:2005/03/29(火) 19:01:41 ID:???
あ、ちなみに自分で考えた方法は
foreach($array as $key => $val){
$flag = 0;
foreach($pop as $del){
if($val == $del){
$flag = 1;
}
}
if($flag != 1){
$newArray[$key] = $val;
}
}
です。
260nobodyさん:2005/03/29(火) 19:10:51 ID:???
$array = array_diff($array, $pop);
じゃだめ?
261nobodyさん:2005/03/29(火) 19:23:44 ID:???
foreach($pop as $value){
print array_search($value,$array);
}
てのもありかと。
262261:2005/03/29(火) 19:25:18 ID:???
あ。重複を見つけたいんじゃなくて削除だったか。スマソ
263nobodyさん:2005/03/29(火) 21:47:23 ID:???
>>259
array_search を使ったら?
264nobodyさん:2005/03/30(水) 02:30:53 ID:???
foreach ループを途中で抜ける命令ってあったっけ?
265nobodyさん:2005/03/30(水) 02:48:37 ID:???
break;
266nobodyさん:2005/03/30(水) 02:52:54 ID:???
>>265
トン
267nobodyさん :2005/03/30(水) 03:58:20 ID:VK+XSbsa
携帯電話用の画像掲示板作りたいんだけど、これってqmailの設定と
やる必要あるの?
268nobodyさん:2005/03/30(水) 04:16:45 ID:???
>>267
qmailの設定変更ができない状況であれば、代替手段を考えればよい。
制約条件が多くなるほど使える手段が減り、最終的に実現不可能ということになる。
269nobodyさん:2005/03/30(水) 05:00:37 ID:???
>>267
いらね。つかなんでケータイとqmailが関連するのやら
270nobodyさん:2005/03/30(水) 08:03:08 ID:???
>>269
qmailである必要はないが、携帯で画像アップする方法に、
メールを使う以外、なにかあるなら言ってみろ。
ワカランチンが余計なことほざくな。タコ。
271nobodyさん:2005/03/30(水) 08:25:56 ID:???
>>270
それでPHPとqmailの関係は何
272nobodyさん:2005/03/30(水) 09:30:31 ID:PFZcR5nD
PHPからMySQLにバイナリデータを挿入する時に特殊文字をエスケープする為の関数って
PHPに用意されてる?あったら教えて欲しい。
273nobodyさん:2005/03/30(水) 09:41:09 ID:P9xGS9Mv
Vine Linux 2.5+Apache 1.3.27+PHP 4.3.10です
error_log()で日本語のログを書き出してるんだけど、ある時期から
日本語が文字化けするようになりました

前:[error] エラー
今;[error] \xa5\xa8\xa5\xe9\xa1\xbc

何がきっかけでこのようになり始めたのかは正直わからないんですが
対処する方法はありませんか?
PHPソースはEUCで、error_log()に渡す際にエンコードはしてません
274nobodyさん:2005/03/30(水) 12:14:27 ID:???
>>271
qmailからのパイプにて、phpスクリプトで添付データを処理
(PHPである必然性は何処にも無いが…)

って、>>267の質問からは大きく逸脱するが(w
275nobodyさん:2005/03/30(水) 14:22:47 ID:LVdKz7n5
4月から、初めてPHPをするのですが、
includeとrequireの違いがわかりません。
お忙しいとは思いますが、なにとぞ、よろしくお願いします。
276nobodyさん:2005/03/30(水) 14:38:17 ID:???
>>275
マニュアル読め、詳しく書いてある。
277nobodyさん:2005/03/30(水) 15:06:42 ID:zj/psBx6
データベースであるテーブルのレコード数を数えたい時,
上手いやり方が分からないので

$rs=mysql_query("select * from hoge");
$cnt=0;
while($row=mysql_fetch_assoc($rs)){
$cnt++;
}

などとやってるのですが、もっと効率のいい方法は無いのでしょうか。
count($rs)とかcount($row)とかやってみたんですが
正しく帰ってきてないみたいです。

php4とMySQL4.0を使ってます。よろしくお願いします。
278nobodyさん:2005/03/30(水) 15:09:08 ID:???
>>277
とりあえず、$rsに何が割り当てられているのか勉強すると良いよ
想い違いしてるし
279nobodyさん:2005/03/30(水) 15:09:26 ID:???
>>277
select count(*) from hoge
280255:2005/03/30(水) 15:38:29 ID:???
>>257
 そうです。サーバはAN HTTPDを使ってます。
 AN HTTPDだと使えないんでしょうか?
281nobodyさん:2005/03/30(水) 15:55:53 ID:???
>>280
$_SERVERはwebサーバ依存だから表示されないんなら使えないんだろうよ
設定でどうのこうのは無かったと思う
282nobodyさん:2005/03/30(水) 16:12:38 ID:LjnlbFKQ
ちょっと教えていただきたいのですが、
sendmailを使ってクライアントへ日本語テキスト+csv形式の添付ファイルをつけたものを送信したいのですが、
クライアントの環境がwindowsXP、IE、そしてメールソフトがノーツなのです。
ノーツ以外のメールソフトで受信すると正常なのですが、ノーツでは文字化けするといわれました。添付ファイルは普通に読めているようです。
本文のヘッダの関係なのかな、と思ったのですが、charsetはISO-2022-JPです。

途方に暮れてるんですが、どうしたらいいでしょうか。
板違いだったらごめんなさい&誘導してくださると助かります。
283nobodyさん:2005/03/30(水) 16:31:04 ID:LjnlbFKQ
282です。
ごめんなさい自己解決。
本文のcharsetをUTF-8にしたら普通に見れたみたいです。
お騒がせしました。
284nobodyさん:2005/03/30(水) 16:49:27 ID:zj/psBx6
>>278
なんか配列みたいのが帰ってきてるのかと勘違いしてました。
下のようにしたらできました。というかmysql_num_rowsを知らなかった・・・。

$rs=mysql_query("select * from hoge");
$cnt=mysql_num_rows($rs);

>>279
mysql_query(select count(*) from hoge)として
レコード数を直に受け取る方法はあるのでしょうか?
285nobodyさん:2005/03/30(水) 16:56:37 ID:???
>>279
$cnt = mysql_result( $rs );
286nobodyさん:2005/03/30(水) 17:15:38 ID:???
長過ぎる文字列を"..."で省略したいんですが、
文字列を先頭から何バイト目まで表示、以降は任意の文字列に置き換えっていう関数があったと思うんですが、何でしたっけ?
どうもみつけられず。
287nobodyさん:2005/03/30(水) 17:20:25 ID:???
$str = mb_strcut( $str, 0, 100 )."...";
でいいんじゃないの
288nobodyさん:2005/03/30(水) 17:20:30 ID:???
substr_replaceかな?
289286:2005/03/30(水) 17:31:10 ID:???
なるほど、n文字目以降を、任意の文字に置き換えというより、
先頭からn文字まで表示して、任意の文字列を足す、と考えればいいんですよね、ありがとうございました!
290nobodyさん:2005/03/30(水) 18:54:13 ID:???
>>270
今時のケータイは普通にアップできるだろ?
291nobodyさん:2005/03/30(水) 19:24:05 ID:???
すいません、頭パンクしてます。
特定のディレクトリから下層のディレクトリまで全部の可視ファイルを検索、そのファイルの作成日時か更新日時を取得して、現在の日時に近い順にソートしてhtmlにリンクで出力させるって可能ですか?
素直にsqlの方がいいのでしょうか?
うちのいつもタコ管理者(鯖ダウンさせる天才)に言ったらsqlで自分でやってと言われますた。
っつか、sql使った事ないので分かりません。phpのみでって出来ます?
292nobodyさん:2005/03/30(水) 19:33:42 ID:???
>>290
ハァ?
293nobodyさん:2005/03/30(水) 20:01:29 ID:???
>>290
普通ってなんだ。
294nobodyさん:2005/03/30(水) 20:03:52 ID:???
>>290
今時のケータイのみ対応したい場合はそれでもいいね。
それ以前の携帯もターゲットに含む時はメール「しか」手段が無い。

>>291
そこに書いてある通りの事を管理者に言って、「SQLですれ」って返されたのなら、
「えええええええ(AA略)」って顔で反応すべきだったな。
PHPのマニュアルの「ディレクトリ関数」「ファイルシステム関数」の関数を幾つかと
再帰処理を使えば、PHPだけでも可能。
295nobodyさん:2005/03/30(水) 20:07:45 ID:???
>>291
PHPの関数のみで、そんなに苦労しなくても出来る。
296nobodyさん:2005/03/30(水) 20:10:31 ID:???
>>294
そっか...可能なのか...ちょっとマニュアル見て頑張りまつ。(´・ω・`)
...っつか簡単な掲示板しか作ったこと無い漏れにできるだろうか。

やはりうちの鯖管はダメポなんだな...大丈夫かうちの会社...
297nobodyさん:2005/03/30(水) 20:38:24 ID:???
PHPでポリモーフィズムってどうやって実装するのかな?
298nobodyさん:2005/03/30(水) 20:41:18 ID:???
>>296
まぁ、望む事はPHPのみで実現可能だが、
巨大なサイト(対象ファイルが多数)の場合なら、
深夜帯などに定期的にDB化しておいて、表示の際にはSQL使ったほうが、
鯖負荷は低くて済むかも。あくまでもケースバイケース。
299nobodyさん:2005/03/30(水) 21:28:38 ID:???
DBにファイルのリストを入れといてSQLで取り出しHTMLにすれって事なんだろうか?
どうやってDBに入れるんだろ?
300nobodyさん:2005/03/30(水) 21:29:51 ID:4FafkLm/
電子手帳用OS、WindowsCEでローカルファイルの
PHP拡張子ファイル、を閲覧するようにできるでしょうか?

301nobodyさん:2005/03/30(水) 22:09:00 ID:???
>>300
とりあえずphpインストールしてみれば
302nobodyさん:2005/03/30(水) 22:48:14 ID:???
>>299
ファイルパスと、filemtimeでも放り込んでおけば、
後は如何様にも・・・
ってDBとの接続の仕方とかから説明が必要?
303nobodyさん:2005/03/31(木) 01:19:34 ID:???
フォームを使って、クライアントブラウザからサーバへXMLデータを送信することはできますか。
あるいはXMLでなくても任意のテキストファイルを送信することはできますか。

通常、フォームを使うとデータは param1=value1¶m2=value2&.... という形で送信されます。
しかしこの形式だと、入れ子になったデータを表現するのが難しいです。
そこで、もしフォームデータをXML形式でサーバに送信できたら、入れ子になったデータが簡単に扱えるようになるんじゃないかと思ってます。
HTTPは任意のデータを送信できるので不可能ではないと思うのですが、HTMLとブラウザを使っているかぎりはどうしたらよいのかわかりません。
304nobodyさん:2005/03/31(木) 01:40:43 ID:???
>>303
JavaScript を使えばできる
305303:2005/03/31(木) 01:52:15 ID:???
>>304
そこをもうちょっと、具体的に。ヒントお願い。
306286:2005/03/31(木) 01:56:00 ID:???
すいません、先ほど解決したと思ったんですが、どうもおかしいところがあるので再度質問させてください。
$str = mb_strcut( $str, 0, 100 )."...";
こうしたんですが、テキストに日本語が混ざっている場合、考慮されずに2バイト中の1バイトの部分でぶった切られたりしますか??
日本語英数混在しているんですが、どうもそれが原因で後のhtmlに影響が出ているっぽいんです。

こういった場合、どうしたらいいものでしょうか??
307nobodyさん:2005/03/31(木) 01:59:27 ID:???
POSTでどうぞ。
textareaにガリガリとXMLを書けw
308nobodyさん:2005/03/31(木) 02:00:15 ID:???
>>306
実際に$strがどうなっているか見るべし
309286:2005/03/31(木) 02:04:37 ID:???
>>308
htmlソースを見ると、文字じゃない文字になってます。
ブラウザ上では表示されません。

ココにコピペしようかと思いましたが出来ませんでした。

環境:
MacOSX safari 文字コードはUTF-8です。
310nobodyさん:2005/03/31(木) 02:06:08 ID:???
>>303
FROM要素のenctype属性で指定できる仕様になってる。
実装は知らん。
PHPの話じゃないので続きはほかでやってくれ。
311286:2005/03/31(木) 02:26:17 ID:???
問題を切り分けた所、文字列の中に入っているhtmlタグが途中で省略されてしまうためのようでした…
そのあたりちゃんとやってまだダメだったらまたお願いします。
312nobodyさん:2005/03/31(木) 04:05:22 ID:Bkn1FNJU
array_uniqueでデータの重複を取り除いた配列の
インデックスをちゃんとゼロから順に直すにはどうしたらいいでしょうか。
重複を削除してくれるのは便利なんですが、
インデックスが飛び飛びになるので具合が悪いです。
313nobodyさん:2005/03/31(木) 04:21:46 ID:???
>>312
array_values()
314nobodyさん:2005/03/31(木) 04:27:40 ID:???
>>313
thx!
315nobodyさん:2005/03/31(木) 06:15:20 ID:???
「文字列」から複数種の「文字」を一度に取り除く関数ってないですか?
今の所、str_replaceなどで一種類ずつ地道に消してるのですが、
上手い方法があったら教えて下さい。
316315:2005/03/31(木) 06:24:58 ID:???
あ、str_replaceは配列で指定できたみたいです。
消したい文字を配列に全部突っ込んで指定したらちゃんと取り除いてくれました。
317nobodyさん:2005/03/31(木) 09:57:40 ID:???
>>315
ereg_replace();
preg_replace();
318nobodyさん:2005/03/31(木) 10:26:20 ID:???
おまいら!
レンサバ上のmysqlバックアップどうしてますか
myphpadminでダンプしてもアップの上限は2メガまでだし…
どうしたらいいものか
319nobodyさん:2005/03/31(木) 10:50:51 ID:???
strip_tags() を使うと、取り除かないタグを指定して HTML タグを削除できるけど、
例えば、 <a> を残したいけど、属性として残したいのは href だけで、
他に( onclick とか target とか)ついててもばっさり削除、
とか言う場合はどうすればいいんですかね?
320nobodyさん:2005/03/31(木) 11:27:00 ID:LwnfmyDs
メールマガジン等の配信についてですが、購読者リストをforeachさせつつ
mail関数で逐次送信するのと、リストをすべてbccで送るのとどちらが
サーバの(phpサーバ、メールサーバ、回線等)負荷は低いのでしょう?
また、bccで送る場合、何件づつ程度が適当なのでしょう?
321nobodyさん:2005/03/31(木) 11:32:03 ID:???
>>318
普通にmysqldumpだけど
アップの上限って何のこと
何か制限があるのならdumpファイルから必要な部分だけ切り取ってアップすればいいんじゃないの
322nobodyさん:2005/03/31(木) 11:41:11 ID:???
>>319
preg_replace
str_replace
323nobodyさん:2005/03/31(木) 11:42:18 ID:???
>.321
多分、PHPでアップロードできるファイルサイズ制限のことだと思われ。
324319:2005/03/31(木) 11:47:07 ID:???
>> 322
つまり便利な関数は無いってことで FA?
325nobodyさん:2005/03/31(木) 13:23:41 ID:???
>>324
便利な関数があるとすれば、>>319がマニュアルを見た時に気づいてるべ。
326nobodyさん:2005/03/31(木) 13:56:20 ID:???
自作の日記プログラムに独自タグみたいな機能を作っているところです。


[url]http://2ch.net[/url] -> <a href="http://2ch.net">http://2ch.net</a>

ところが、

[search]ほげほげ[/search] -> <a href="./search.php?q=(エンコードされたほげほげ)">ほげほげ</a>

というのをやろうとして、

$text = preg_replace("/\[search\](.+?)\[\/search\]/i", "<a href=\"./search.php?q=".urlencode(\\1)."\">\\1</a>", $text);

とやってもうまく行きません。
urlencodeの部分を、urlencode("\\1")とかurlencode(${1})とか試してみたのですが、ダメでした。
preg_replaceの置換後のテキストの部分で関数は使えないのでしょうか?
327nobodyさん:2005/03/31(木) 14:08:02 ID:???
>>326
preg_replace_callback かな
328nobodyさん:2005/03/31(木) 14:20:28 ID:???
>>327
PHPマニュアルのpreg_replace_callbackの頁を見て作り直したらうまく行きました。
すばやい返答ありがとうございました。
329nobodyさん:2005/03/31(木) 16:20:58 ID:???
携帯サイトにアンケートフォームを設けたのですが、データが送信されません。
どういう風にしたら良いですか?
330nobodyさん:2005/03/31(木) 16:24:20 ID:???
>>329です。
<TITLE>登録</TITLE>
</HEAD>
<BODY>
<BR><FORM action="mailto:***@***.co.jp" METHOD="post" enctype="text/plain">
氏名:<INPUT TYPE=TEXT NAME="name"><BR>
メールアドレス:<INPUT TYPE=TEXT NAME="number"> <BR>
ホームページURL:<INPUT TYPE=TEXT NAME="number"> <BR>
在住市名<BR>
<SELECT NAME="市名">
<OPTION VALUE="***市">***市
<OPTION VALUE="**市">**市
<OPTION VALUE="**市">**市 
<OPTION VALUE="その他">その他</SELECT><BR>
ご意見・ご感想をお寄せ下さい。<BR>
<TEXTAREA NAME="感想 rows=" COLS=10 5"></TEXTAREA><BR>
<BR>
当サイトを知ったきっかけは?<BR>
<INPUT TYPE=RADIO NAME="きっかけ" VALUE="検索">検索サイト<BR>
<INPUT TYPE=RADIO NAME="きっかけ" VALUE="友人・知人">友人・知人<BR>
<INPUT TYPE=RADIO NAME="きっかけ" VALUE="雑誌">雑誌<BR>
<INPUT TYPE=RADIO NAME="きっかけ" VALUE="広告・チラシ">広告・チラシ<BR>
<INPUT TYPE=SUBMIT VALUE="送信"><INPUT TYPE=RESET VALUE="やり直し"><BR>
</FORM></BODY>
</HTML>
一応タグです。
331nobodyさん:2005/03/31(木) 16:27:50 ID:???
> action="mailto:***@***.co.jp"
何これ、ふざけてんの?
332nobodyさん:2005/03/31(木) 16:32:34 ID:???
>>331
真剣です。
333nobodyさん:2005/03/31(木) 16:33:56 ID:???
>>330
携帯電話でform actionにmailtoは使えないよ。
フリーのメールフォームCGIなり探してくるべし。
334nobodyさん:2005/03/31(木) 16:33:57 ID:???
>>331
仕方教えて下さい
335333:2005/03/31(木) 16:35:00 ID:???
>>333
失敬
×:メールフォームCGI
○:フォームメールCGI
336nobodyさん:2005/03/31(木) 16:39:38 ID:???
>>335
フォームメールCGIってサーバーにあるのですか?
337333:2005/03/31(木) 16:58:43 ID:???
338nobodyさん:2005/03/31(木) 16:59:45 ID:???
FORM action="mailto:***@***.co.jp"なんて、何か久しぶりに見た気がする
339nobodyさん:2005/03/31(木) 17:07:31 ID:???
>>337
ほ・ほ・ほんとうに有難うございます。
340ああ:2005/03/31(木) 19:10:01 ID:tGTdWeYS
冷静な意見をブログにお願いします。
http://blogs.yahoo.co.jp/livinonaprayerjp/MYBLOG/yblog.html
341nobodyさん:2005/03/31(木) 19:24:33 ID:???
>>340
「戦争犯罪と歴史問題」
342nobodyさん:2005/03/31(木) 19:42:05 ID:???
すみません。
価格など、1000の位でカンマ入れたいんですけど
関数ってありますか。
343nobodyさん:2005/03/31(木) 20:00:28 ID:???
>>342
ある
344nobodyさん:2005/03/31(木) 20:27:22 ID:???
>>342
number_format()
345nobodyさん:2005/03/31(木) 20:41:57 ID:???
毎度有難うございました。
346nobodyさん:2005/03/31(木) 20:53:13 ID:???
またのお越しをお待ちいたしております。
347nobodyさん:2005/03/31(木) 21:24:01 ID:???
ほんと下らん質問で申し訳ないです。
サバはLinux、apacheです。
アップローダーを作ってみたんですが、
アップロードして保存先ディレクトリにコピーしたら
そのファイルの所有者がapacheの動作権限者になってしまうのですが、
所有者権限をユーザー(user_dirの)にするにはどうすればいいのでしょうか。
348nobodyさん:2005/03/31(木) 21:25:55 ID:JFqGEsJm
こんなCGIありませんか スレって無くなったの?
見つからないCGIがあるんだが…
349nobodyさん:2005/03/31(木) 21:28:52 ID:???
>>348
【CGI】こんなCGI探してますver.16
http://pc8.2ch.net/test/read.cgi/hp/1106947416/
350347:2005/03/31(木) 21:30:29 ID:???
所有者権限を、じゃない所有者を、だ
351nobodyさん:2005/03/31(木) 21:55:47 ID:???
>>347
モジュール(Apacheの一部)として動作してるからね
CGI(SuEXEC)で動かせば所有者権限で実行、ファイル作成できるけどだめかね
352347:2005/03/31(木) 22:06:35 ID:???
>>351
ありがとう。
chmodで所有者権限だけ変更しとけば後々のことに問題ないですよね?
あまり深く考えずにchmodだけしときます。

chmodの引数paelと逆なんですね。
あとperlだとcgiでうがかしてる関係で所有者がusr_dirの人と同じになるんですかね?>>351
353nobodyさん:2005/03/31(木) 23:13:50 ID:???
PHPってスレッドセーフな言語にする予定はありますか?
354nobodyさん:2005/03/31(木) 23:36:33 ID:???
週末暇なのでスレッドセーフな言語にしてみようかなって思ってます
355nobodyさん:2005/03/31(木) 23:44:08 ID:???
>>354
ヨロシコ
356nobodyさん:2005/04/01(金) 00:01:31 ID:???
くだらない質問でもOKのスレということで質問させていただきます。
PHPのコーディング規約を見ていたらインデントはスペース4つが推奨で
タブは使わないほうがよいとのことなのですが、皆さんはどうされてますか?
個人的にスペース4つなんてどうかと思うのですが。
357nobodyさん:皇紀2665/04/01(金) 00:36:57 ID:???
>>356
俺はTAB(4)派だな。
358nobodyさん:皇紀2665/04/01(金) 00:43:33 ID:???
オイラも普段はtab(4)。でも他人が絡んでくる時はspace(4)にして渡す。
htmlを書く時はspace(2)。

インデントに思い入れのある人達が集まっているスレ
ttp://pc5.2ch.net/test/read.cgi/prog/1063471069/
359nobodyさん:皇紀2665/04/01(金) 01:12:11 ID:???
phpinfo()
で表示されるページの右上の哺乳類は何ですか?
360nobodyさん:皇紀2665/04/01(金) 01:15:14 ID:???
>>356
xyzzyのphp-modeのデフォのインデントだな。space(4)かな。
361nobodyさん:皇紀2665/04/01(金) 02:38:48 ID:???
>>358
そのスレ今見たけどタブ派スペース派真っ二つだね。
今までインデントはタブというのが常識だと勝手に思ってたけど
世の中は違ったんだな。
362nobodyさん:皇紀2665/04/01(金) 02:45:37 ID:???
>>359
つちのこ
363nobodyさん:皇紀2665/04/01(金) 03:24:19 ID:???
>>359
おいらのインストールした鯖は
http://www3.nhk.or.jp/anime/nadia/
を仕込んでありまつ。
(無許可版権モノ)
364nobodyさん:皇紀2665/04/01(金) 07:11:42 ID:???
mysql_query で帰ってきた結果を、
一行ずつ読むんじゃなくて
1つの大きな array とかにできる関数とかないのかな?
365nobodyさん:皇紀2665/04/01(金) 08:01:17 ID:???
>>364
マニュアル嫁
366nobodyさん:皇紀2665/04/01(金) 08:05:24 ID:???
今日質問したら嘘教えられそうだなーw
367364:皇紀2665/04/01(金) 08:06:18 ID:???
>>365
え?こんなのを作った俺は馬鹿ななのか?
マニュアル一通り読んだつもりなんだが…

function DBresource2array( $rsc_id ){
$result = array();
while ($line = mysql_fetch_row($rsc_id)) {
array_push($result, $line[0]);
}
return $result;
}
368nobodyさん:皇紀2665/04/01(金) 08:13:31 ID:???
>>367
悪い、文意を取り違えていた。フェッチしないで一気に
多次元配列かなんかに取りたいってことね。

それは、mysql関数には無い(と思う)

369367:皇紀2665/04/01(金) 08:17:47 ID:???
>>368
なるほど。
っていうかやりたい事は検索なので、
MySQL に普通に query を投げるというコトになりました。orz
370nobodyさん:皇紀2665/04/01(金) 08:55:47 ID:???
>>369
アフォか
371nobodyさん:皇紀2665/04/01(金) 09:00:14 ID:???
初心者の素朴な疑問なんですが、Array に値が入ってるかどうかって
どうやってチェックしてますか?
今僕がやってるのはみんな
$array = array();
$array = somefunction();
if (count($array)>0 ){
 //処理。
}
ってやってるんですけど。。
372nobodyさん:皇紀2665/04/01(金) 09:01:29 ID:???
373nobodyさん:皇紀2665/04/01(金) 10:23:04 ID:???
値が入ってるかどうかをチェックするのに何個も手順を踏む必要があるから面倒、
というなら理解できるけど
if文一個のワンステップでできてることを、それ以上にどう簡略化したいというのか。
374nobodyさん:皇紀2665/04/01(金) 10:26:19 ID:???
>>371
is_arrayじゃ駄目?
375371:皇紀2665/04/01(金) 10:26:57 ID:???
>>373
簡略化したいなんて言ってないです…
これがスマートなやり方かどうかわからないから聞いてみたんですが…
376371:皇紀2665/04/01(金) 10:28:11 ID:???
>>374
is_array だと、array として初期化している変数には true が返ると思います。
377nobodyさん:皇紀2665/04/01(金) 10:43:05 ID:???
if (count($array)){
 //処理。
}

で、少しスマートな感じ
378nobodyさん:皇紀2665/04/01(金) 10:49:59 ID:???
count だと文字が入っていても true になることあるね.

if (is_array($array) and count($array)) {

とする必要あり?
379nobodyさん:皇紀2665/04/01(金) 10:51:28 ID:???
>>371
if(implode("", $array)){
  echo'何か入っているよ〜〜〜';
}
380nobodyさん:皇紀2665/04/01(金) 11:18:18 ID:???
>>378
$array = array();
と宣言してるんだから
is_array($array)はいらないだろ
>>377>>379より意味がわかりやすくていいんじゃないの
381nobodyさん:皇紀2665/04/01(金) 11:31:55 ID:???
>簡略化したいなんて言ってないです…
>これがスマートなやり方かどうかわからないから聞いてみたんですが…

同じことやん。
382nobodyさん:皇紀2665/04/01(金) 11:36:25 ID:AcRtwYxM
$_POST["hoge"]
などのデータを、一括で
$hogeに入れ直す関数ってありましたよね…?
教えてください。
383nobodyさん:皇紀2665/04/01(金) 11:42:12 ID:???
>>382
extract($_POST);
384nobodyさん:皇紀2665/04/01(金) 11:49:16 ID:AcRtwYxM
>>383
これです!
ありがとう!
385nobodyさん:皇紀2665/04/01(金) 12:42:37 ID:???
エロサイトとかでZIPのエロ動画をダウンロードするときに多重ダウンするとエラーを表示するのってどうやるのですか?
.htaccessで制限かけるのですか?
エロイ人教えてください
386nobodyさん:皇紀2665/04/01(金) 12:53:49 ID:???
>>359
5.0.3はウサギ?
5.0.4にしたら犬になった(テリア?)
4.3.11インストールした人教えて
387nobodyさん:皇紀2665/04/01(金) 16:50:32 ID:???
最近のブログ(amebaやnaverなど)で、テキストエリアの部分に
画像とか、太字とかが反映されてるのはどういった技術を使ってるんでしょうか?
適切なスレッドが分からなかったのでとりあえずここで質問しました。
388nobodyさん:皇紀2665/04/01(金) 17:03:35 ID:???
jcode.plの設置ついて質問なのですが
CGIを多数設置した場合、それぞれ同じディレクトリにjcode.plがあって
容量を圧迫するので、一つ上のディレクトリにjcode.plを置き
各CGIから読み込ませても平気ですか?

それともやはり、一つ一つ同じディレクトリにjcode.plを置いた方がいいのでしょうか?
389388:皇紀2665/04/01(金) 17:05:34 ID:???
すみません。スレタイの【PHP】ってのを見逃してました。
他のスレで聞いてきます。
390:皇紀2665/04/01(金) 17:53:47 ID:wSz0R7pa
photoshop8のシリアルnumber期限切れのしか見つからないんです。
どなたか期限切れてないの知りませんか?
391nobodyさん:皇紀2665/04/01(金) 18:35:35 ID:???
>>390
メールアドレス教えてくれたら、どうしたら良いか教えてあげるよ。
392nobodyさん:皇紀2665/04/01(金) 20:26:04 ID:???
>>386
cvsからロゴを引っ張ってくるとこんな感じになってる。

リビジョン ロゴ PHPver.(ブランチ)
1.5    おっさん
1.6    茶犬
1.6.2.1  黒犬    4.3
1.7    茶犬
1.8    茶犬
1.9    うさぎ
1.10   .うさぎ
1.11   .うさぎ
1.12   .うさぎ   5.0
1.12.2.1 .黒犬    5.0
1.13   .黒犬

やった手順は、
ttp://cvs.php.net/php-src/main/logos.h から各リビジョンのファイルをDLしてきて、
PHPの配列風に手作業で加工 ($php_egg_log = array( 〜 )の形式)。

gif画像の1バイトごとの値を10進数で書いてあるので、
for($i=0;$i<count($php_egg_log);$i++){ $data .= pack("c",$php_egg_logo[$i]); }
てな感じにして、$data をバイナリで保存。
393nobodyさん:2005/04/03(日) 01:40:23 ID:???
$array = (
  [0] => Perl
  [1] => C
  [2] => PHP
)

という配列を、
$array = (
  [0] => PHP
  [1] => C
  [2] => Perl
)
と、"PHP" を一番上にした配列に組みなおしたいのですが、どうすればいいんでしょうか。
394nobodyさん:2005/04/03(日) 02:05:44 ID:???
>>393
「PHPを一番上にした配列」というのは他にも幾つか考えられるけど、
それらのうち PHP C Perl の順になるのは何か条件があるの?
PHP Perl C の順になる場合もあるよね。
要素数n個の配列だと (n-1)! 個のパターンがあるような。
395nobodyさん:2005/04/03(日) 03:38:42 ID:???
readline サポートを使わないで使える readline ってない?
while ($line = readline($text) ) {
 ほげほげ;
}
とかしたい。
396nobodyさん:2005/04/03(日) 04:30:24 ID:???
>>395
標準入出力

GPLのreadlineをPHPライセンスのPHPとリンクするのはけしからん、
という話であればBSDライセンスのlibeditというものがある。
397393:2005/04/03(日) 09:12:02 ID:???
説明不足ですみません。
配列からPHP を一度削除して、配列の一番上に入れたいだけで、特に以下(Perl,C)の配列の位置は問いません。
398nobodyさん:2005/04/03(日) 09:27:48 ID:???
>>397
array_pop
array_unshift
array_splice
399nobodyさん:2005/04/03(日) 09:43:18 ID:IY142z6m
誰かやってみねえか?俺は無理だったorz


【一攫】解けたら賞金300万円のクイズ【千金】
http://game9.2ch.net/test/read.cgi/bgame/1107733523/
400nobodyさん:2005/04/03(日) 11:54:58 ID:EIV0TS0d
WEB上で、オンラインゲームみたいにチャットと移動が出来る
ものを作るにはどうすれば良いんですか?
一時期話題になった「タキビ」の動けるのを設置したいんですが…
401nobodyさん:2005/04/03(日) 12:12:46 ID:K0aP+PxK
>>400
移動の意味わからんがなー
IRCでも使えば良いんでない?
移動の意味わからんけど
402nobodyさん:2005/04/03(日) 21:18:09 ID:???
>>400
クライアント側の動作がhtmlだけでは対処できない場合はflash等のActiveXやアプリケーションを使う事になる。
同様に鯖側の動作もhttpだけで対処できない場合はsocketを張ったままでデータのやり取りをする事もある。

どういう仕組みを使えば自分のやりたい事を実現できるかをまず調べてみれ。
403nobodyさん :2005/04/03(日) 22:49:40 ID:MM89HE2P
すみません。すごく簡単な事だというのはわかるのですが
どうにも動かないので、助けてください。

フォームで、セレクトフィールドこんな感じ↓で作って
<select name="kazari">
<option values="0"></option>
<option values="1">ピアス</option>
<option values="2">イヤリング</option>
<option values="3">指輪</option>
<option values="4">へそ用</option>
<option values="5">鼻用</option>
<option values="6">その他</option>
</select>
404403です続きです:2005/04/03(日) 22:50:06 ID:MM89HE2P
POSTでBのPHPファイルに飛ぶようにして
BのPHPファイルないで、受け取った$_POST['kazari']
の値によって、一覧表示するMySQLのテーブルを変更させたいのです。
if($_POST['kazari'] == '1'){
$stt = "SELECT * FROM syouhin,kakaku WHERE syouhin.id = kakaku.id
AND syouhin.no =".$_POST['kazari']."ORDER BY syouhin.name";
}elseif(略
$res = mysql_query($stt, $conn);
while($row = mysql_fetch_arry($res)){
print(略)

syouhin.no = の後ろに、1とか2などの数字を入れて試して
見た時は、ちゃんと選択されるのですが、変数を入れようとすると
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
というエラーが出るのです。

どうかご指導よろしくお願いいたします
405nobodyさん:2005/04/03(日) 22:50:26 ID:???
>>403
で?
406403です:2005/04/03(日) 23:17:24 ID:MM89HE2P
>>405さん

すみません。質問がまわれくどかったですよね。

ええと、SELECT文のなかに、変数を入れたいのですが、
>>404の方法しかわからなくて、回避策を教えて
頂きたいのです。
407nobodyさん:2005/04/03(日) 23:18:52 ID:???
>>403
基本的なことだが、SELECTタグが間違ってるよ
http://www.htmq.com/html/select.shtml

てか、
print_r($_POST);
してpostデータの内容を見てごらん。
408nobodyさん:2005/04/03(日) 23:23:21 ID:???
>>404
mysql_queryの前に、print $stt; exit; を入れて、
数字を直接入れた場合と、変数に設定した場合との違いを調べる。
つーか違いが必ずある筈だから、その原因を print 変数名; てな感じでどんどん遡って調べていく。
409403です:2005/04/04(月) 00:12:07 ID:r/hNOQjg
>>407さま
>>408さま
むっちゃ阿呆な事をしていたのだと、やっとわかりました。
ご指導感謝いたします。
ありがとうございます。
410403です:2005/04/04(月) 00:44:20 ID:r/hNOQjg
何度もすみません。
PHPのマニュアル本とサイトでPOSTで受け取る内容の
説明の所を探してみたのですが、select内のvalues="数字"を
受け取る方法が見つけられなくて・・・。

$_POST['kazari']だとselect name="kazari"のkazariが
返されているので、SQL文がエラーをはいているのだと
言うのは理解できたのですが、valuesの中の値を拾いたい
場合は、どのように記述すればよいのでしょうか・・?
411nobodyさん:2005/04/04(月) 00:55:44 ID:???
>>410
option のアトリビュートは、value's' じゃ無く、value だよ。

適当なHTMLヴァリデータでも通せば、教えてくれるんじゃ無いの。
412403です:2005/04/04(月) 02:48:51 ID:r/hNOQjg
>>411さま

すみません。
ありがとうございました。
やっと、SQLのselect内に、関数を入れて欲しい情報を
一覧表示させる事ができました。
本当に、ありがとうございました。
413nobodyさん:2005/04/04(月) 07:07:25 ID:???
smarty のページを読んでるんだけど、
ttp://smarty.php.net/sampleapp/sampleapp_p2.php
インスタンス化する所で、
$guestbook =& new Guestbook;
ってしてるじゃん。=& ってどういう意味ですか??
414nobodyさん:2005/04/04(月) 07:20:47 ID:???
なめた口調。
415nobodyさん:2005/04/04(月) 07:27:49 ID:???
416nobodyさん:2005/04/04(月) 08:54:15 ID:???
前から思ってたのだが、php のコミュニティってなんで続かないのかね?
どこも無惨に放置プレイばっかじゃん。
417nobodyさん:2005/04/04(月) 08:56:03 ID:???
>412
リクエストされた値をそのままSQLに渡すのイクナイ
418nobodyさん:2005/04/04(月) 10:52:35 ID:???
>>416
親切なマニュアルあるし
親切な関数あるし
回答者は糞だし
419nobodyさん:2005/04/04(月) 14:32:38 ID:???
外部サーバにあるphpに値を投げるにはどうしたらいいでしょうか?
下記のようにすると、実現されて入るのですが、スマートじゃないような気がするんです。

$file = "http://外部サーバURL/hoge.php?a=1&b=2";
$fp = fopen( $file ,"r");
$rere = fread( $fp , 100000 );
fclose( $fp );

hoge.phpはgetで受け取った値を元に実行されます。
ログ書き込み等なので、表示はされず、呼び出し元とは完全に独立して動いています。

が、fopen等は本来そういった機能では無いような気がするので、もっといいやり方は無いでしょうか?
420nobodyさん:2005/04/04(月) 15:04:52 ID:???
>>419
fopenはそういう使い方(httpやftp等のwrapper)も考慮して作られているので
気にしなくていいんじゃないかな。
真面目にやりたい(or 直接ソケットを触りたい)場合には、fsockopenてのも用意されてるけど。
421nobodyさん:2005/04/04(月) 15:10:31 ID:???
>>419
他人が作ったもんを使いまわすためのスマートじゃないプログラムなんだからそれでええやん。
なんか困ってんの?
422nobodyさん:2005/04/04(月) 18:35:49 ID:???
define() で定義した内容を全て表示させる関数は無いのでしょうか。
423nobodyさん:2005/04/04(月) 18:42:40 ID:???
最適なアクセス制限を考えてるんだが、これで問題ないだろうか。

$dame_ip = array('127.0.0.1','localhost');

if(in_array($_SERVER['REMOTE_ADDR'],$dame_ip)){
   echo "<p>アクセスが許可されていません</p>\n";
   exit;
}
424nobodyさん:2005/04/04(月) 19:00:30 ID:r/hNOQjg
こんばんは。
すみません、教えて下さい。
3つの入力された数字を3で割って、小数点以下の
割り切れない数字を、四捨五入したいのです。
色々調べて試してみたのは
$hoge = (($suuti1)+($suuti2)+($suuti3))/3;
$hoge1 = round($hoge,1);
なのですが、一見意図した小数点第一までの表示で
第二の数字を四捨五入している感じなのですが、
割り切れた場合にも、繰り上がってしまうのです。
($hogeが10の場合、print '$hoge1';で11になってしまう)
なにか良い回避策は無いでしょうか・。
どうかご指導よろしくお願いいたします。
425403=412です:2005/04/04(月) 19:09:58 ID:???
>>417
ご心配頂ありがとうございます。
フォームフィールドからPOSTで受け取って来た変数が
textからの時は
$auth = mysql_escape_string($_POST["auth"]);
$auth = str_replace("%","\%",$auth);
としてから、使うようにしております。
これで、大丈夫なのですよね?
もし大いなる勘違いでしたら、ご指導いただけると
幸いです。 よろしくお願いいたします。
426nobodyさん:2005/04/04(月) 19:25:41 ID:???
427nobodyさん:2005/04/04(月) 19:32:02 ID:???
>>424
%で余りを求めて、条件分岐
428424:2005/04/04(月) 20:00:45 ID:r/hNOQjg
>>427
頂いたご指導から、考えてみたのですけれど・・・。
$suuti7 = '3';
$suuti8 = '3';
$suuti9 = '3';

$hoge5 = (($suuti7)+($suuti8)+($suuti9))/3;
$hoge7 = (($suuti7)+($suuti8)+($suuti9))%3;
if($hoge7 ==2){
$hoge6 = round($hoge5,1);
}else{
$hoge6 = $hoge5;
}
print '<br>割り切れない値IFの練習です<br>';
print ($hoge6);
上記で、なんとなく出来たような感じなのですが、
あっていますでしょうか・・・?
429nobodyさん:2005/04/04(月) 20:30:30 ID:yZDujDw2
PHPでパッケージを作ろうと思っているんだけど、PHPだとソースを
そのままお客に渡さなければいけないですよね?
ソースを盗まれたくないんだけど、いい方法ありますか?
430nobodyさん:2005/04/04(月) 20:42:01 ID:???
>>429
「php ソース 暗号化」で具具ってみ。
431nobodyさん:2005/04/04(月) 22:08:21 ID:???
phpBB で見かける、

[url]アドレス[/url]
   → <a href="アドレス">アドレス</a>
[url=アドレス]hogehoge[/url]
   → <a href="アドレス">hogehoge</a>

と変換する方法がわかりません。
どのように組めば実現できるでしょうか?
432nobodyさん:2005/04/04(月) 22:27:51 ID:???
phpBBのソース見れば?いや、まじで。
433nobodyさん:2005/04/04(月) 23:28:24 ID:???
>>431
正規表現
434419:2005/04/04(月) 23:39:28 ID:???
>>420
なるほど、ありがとうございます。

>>421
いや、他人というわけじゃないんですが…。
複数のサーバのアクセスログを一つのサーバに累積させたく、作っている所です。
435nobodyさん:2005/04/05(火) 00:04:06 ID:???
オブジェクト継承しすぎで、わけわからなくなりました。
どうしたらいいですか。
436nobodyさん:2005/04/05(火) 00:36:32 ID:???
オブジェクト作るのが悪い
437nobodyさん:2005/04/05(火) 02:00:55 ID:???
3回以上の継承はあまりお勧めできない。
ってのは常識だろ。
438nobodyさん:2005/04/05(火) 02:12:32 ID:???
それが常識なのかどうかは知らんが、
継承を辿って調べないと恐くて使えないような設計には問題があるな
リファクタリングすれ
439nobodyさん:2005/04/05(火) 02:34:52 ID:???
オブジェクトを使う理由
なんとなく、今風。
なんとなく、かっこいい気がする。
440nobodyさん:2005/04/05(火) 10:49:23 ID:???
JAVAに慣れすぎてもとの書き方ができなくなった
441nobodyさん:2005/04/05(火) 17:38:16 ID:???
>>429
自分で鯖用意

管理費(ウマー(*´∀`*)、バージョンアップも確実に自分に来る(ウマー(*´∀`*)
442nobodyさん:2005/04/05(火) 19:57:36 ID:???
メンバ変数の名前が長すぎて入力するのが面倒。どうしたらいいんだろ?
$b = &$foobar->baz;
とかやんないほうがいい?
443nobodyさん:2005/04/05(火) 20:25:16 ID:???
zend studioがいいよ。
メソバを候補で上げてくれるから。
444nobodyさん:2005/04/05(火) 21:03:20 ID:???
xyzzy とか emacs 系なら dabbrev で補完とか
445nobodyさん:2005/04/06(水) 18:00:09 ID:???
<form action="***"method="post>
選択名<BR>
<select name="数字">
<option value="1">1
<option value="2">2
<option value="3">3
</select><BR>
<input type="submit" value="OK">
</form>
1を選択した時に1が表示出来るようにしたいのですが、***のスクリプトが
わかりません。どなたか教えて下さい。
446nobodyさん:2005/04/06(水) 18:16:03 ID:???
>>445
マルチうざい
447419:2005/04/06(水) 21:20:38 ID:???
アクセス解析を作っていて、再度質問なんですが、
検索エンジンからのリファラ検索文字列がどうも文字化けしてしまいます。

$referer = $_SERVER['HTTP_REFERER'];
$referer = mb_convert_encoding($referer, "EUC-JP", "auto");
で、その後別サーバへ結果を送っています。

yahoo経由はOKなんですが、googleがダメみたいです。

別サーバで結果を表示させた時に、ブラウザの文字コードをUTF-8にすると、検索文字列がちゃんと表示される
(その他の部分は当然、逆に文字化けしますが)ので、mb_convert_encodingが、UTF-8をEUC-JPに変換してくれていないのかなぁ、
と不思議に思っています。

どうしたら、文字化けさせないように出来るでしょうか?

↓phpinfo Configure Command
'./configure' '--enable-mbstring' '--enable-mbstr-enc-trans' '--enable-mbregrex'
448nobodyさん:2005/04/06(水) 22:56:12 ID:???
mb_detect_encoding
449nobodyさん:2005/04/07(木) 00:49:50 ID:???
セッションってブラウザ閉じると消えるけどアクセス日から1日
保存しておきたいんだかどうするんだ?
450nobodyさん:2005/04/07(木) 04:55:28 ID:???
>>449
http://jp2.php.net/session

セッションの寿命を1日以上に延ばす。
あと保存場所をデフォの/tmpにしてる場合、
システムで1日程度で掃除してないかも注意。
451nobodyさん:2005/04/07(木) 07:21:24 ID:???
>>447
urlencodeされた文字列は自動で文字コード判別できない(半角英数記号のみだから)
urldecodeしてからmb_convertでどうでしょう
452nobodyさん:2005/04/07(木) 12:55:01 ID:???
>>450
サンクス
453nobodyさん:2005/04/07(木) 15:07:37 ID:2aRnQEib
PHPプログラムを呼び出しているHTMLファイルのTITLE情報を文字列で抽出する
方法は無いでしょうか?たとえば以下の場合は、

<HTML>
<HEAD>
<TITLE>素晴らしきかな我がホムペ</TITLE>
</HEAD>

<? php
(TITEL名を文字列として使いたい)
?>

</HTML>

PHPのプログラムの中で「素晴らしきかな我がホムペ」という文字列を使いたいです。
454nobodyさん:2005/04/07(木) 15:17:20 ID:???
>>453
<?php $title = "素晴らしきかな我がホムペ"; ?>
<HTML>
<HEAD>
<TITLE><?php echo $title; ?></TITLE>
</HEAD>
<?php
すきにしなはれ
?>
</HTML>
455447:2005/04/07(木) 15:48:22 ID:???
>>451

//送信php
$referer = $_SERVER['HTTP_REFERER'];
$referer = mb_convert_encoding($referer, "EUC-JP", "auto");
$referer = urlencode($referer);
//↑ここまでは今までやっていた部分

データ送信

//受信php
$referer = urldecode($referer);
$referer = mb_convert_encoding($referer, "EUC-JP", "auto");//←これを足した

これで見事に解決しました。ありがとうございます!
送信phpのmb_convertはいらないのかな、とも思いましたが、まあいいかな、と。
456nobodyさん:2005/04/07(木) 18:28:28 ID:???
>>454
<?php $title = "素晴らしきかな我がホムペ"; ?>
<HTML>
<HEAD>
<TITLE><?php echo $title; ?></TITLE>
</HEAD>
<?php
どうもでやす
?>
</HTML>
457nobodyさん:2005/04/07(木) 18:34:30 ID:jm/6lRT+
この度、会社でHPを作る事になりました。サーバはソネットのビジネス版
なのですが、業者から、ソネットはCGiが使えないから、サーバーを業者指定の
物(ファーストサーバー)に変えてほしいという申し出がありました。
調べたところ、ソネットでcgiが使えないという事はなく、業者が自分の
使えるcgiがソネットで使えるか未確認なので変えてほしいという事みたいです。
もし、使えなかった場合は、外注になると言っていまあす。
簡単なアンケート程度の物で、そんな事あるんでしょうか?
私には、サーバーを変えるより、業者を変えた方がいい様に思えるのですが、
ソネットは使えないサーバーですか?
458nobodyさん:2005/04/07(木) 18:50:06 ID:???
>>457
「業者を変える」に一票

ってか、ソネットビジネスホスティングって、PHP使えんの?
>CGI環境:Perl 5.6.0 / Python 1.5
って書いてあるな。
その業者、perlの実績が無かったりして。

そして、あなたはスレ違い
459457:2005/04/07(木) 21:11:57 ID:jm/6lRT+
>>458 ありがとうございます。くだらない質問という文字だけ見て
書き込んでしまいました。CGIのスレで質問するべきでした。
ごめんなさい。
460nobodyさん:2005/04/08(金) 11:16:53 ID:???
Perl->PHPに移植中なんですが、Perlでいうとこの$val ||= 1はどう書くんでしょうか?
461nobodyさん:2005/04/08(金) 11:32:52 ID:???
$var = ($var) ? $var : 1;
の関数化するとか
462nobodyさん:2005/04/08(金) 11:38:17 ID:???
http://www.itmedia.co.jp/enterprise/articles/0504/07/news088.html

こういう記事サイトの最後の方にある

■ この記事についてのご感想 【必須】
役に立った 一部だが役に立った 役に立たなかった
■ コメント
送信

のようなご意見ボックスを自分のサイトにもはっつけてみたい。
PHPでこの機能を実現の仕方を解説しているサイトとかって無い?

余談だけどこういう機能って格好いいよね。
匿名だから送信する方も気兼ねなく好きな言葉送れるし。
463nobodyさん:2005/04/08(金) 11:42:31 ID:???
どこが悪いか教えて下さい
<form action=htto://www.test.com/test.php method="post">
選択名<BR>
<select name="num">
<option value="1">1
<option value="2">2
<option value="3">3
</select><BR>
<input type="submit" value="OK">
</form>


test.php

<?php
if ( $_POST["num"] == "1" ) {
header("LOCATION:http://www.test.com/1.html");
}elseif ( $_POST["num"] == "2" ) {
header("LOCATION:http://www.test.com/2.html");
}elseif ( $_POST["num"] == "3" ) {
header("LOCATION:http://www.testcom/3.html");
}else {
header("LOCATION: form.html");
}
?>
464nobodyさん:2005/04/08(金) 12:04:13 ID:???
>>462
つまり管理人しか読めない掲示板ですね
465nobodyさん:2005/04/08(金) 12:05:52 ID:???
>>463
htto => http
466nobodyさん:2005/04/08(金) 12:12:31 ID:???
>>463
どういう動きを意図していたのに、どういう挙動をした。というのを書いてくれた方がレスする方も楽なんだけどね。
action部分の httoがおかしい。特に理由がなければ" "で括っておくことが望ましい。
header("Location: http:〜"); Location:の後に空白が必要。
467nobodyさん:2005/04/08(金) 12:21:26 ID:???
>>464
まぁそういうことよ。
ブログ全盛のこのご時世だがやっぱプライバシーってのは守られてしかるべきなんだな。
468nobodyさん:2005/04/08(金) 12:31:37 ID:???
>>463
ホスト名に仮の名前を使うときはtest.comじゃなくてexample.comを使いましょう
469nobodyさん:2005/04/08(金) 12:44:41 ID:???
>>463
だから、てめぇはJSでやれっつってんだろ!
470nobodyさん:2005/04/08(金) 13:37:23 ID:???
>>465>>466
有難うございます。早速試したみます。
471nobodyさん:2005/04/08(金) 14:12:57 ID:???
$_SERVER['QUERY_STRING']にはhttp://?abcのabcは入ってもPOSTで送信された
データーは入らないんでしたっけ?
472nobodyさん:2005/04/08(金) 14:24:13 ID:???
>>471
GETの時は環境変数QUERY_STRINGに入り、POSTの時には標準入力STDINに入ります。
でも、phpを使う時はそんなことを意識しなくても $_GET,$_POST etc.を使えば良いのでは?
473nobodyさん:2005/04/08(金) 16:29:23 ID:???
>>472
ありがとうございます。

ディレクトリやファイルをパスに含めてアクセスさせるので不正に変なファイルを
アクセスさせないように複数の変数を一度にチェックしたいと想いました。
$_SERVER['QUERY_STRING']はGETだけなのでリクエストをチェックした方が
良いみたいですね。
474460:2005/04/08(金) 17:55:07 ID:???
>>461
返信ありがとうございます。

> $var = ($var) ? $var : 1;
↑の手法も良く使うのですが、やはりif文しかないのでしょうかね。
毎回のif文は冗長なので関数にしてみたりしました。
475nobodyさん:2005/04/08(金) 18:18:47 ID:???
ビルダーでPHPスクリプト作れますか?
476nobodyさん:2005/04/08(金) 18:25:08 ID:???
>>475
やってやれない事は無い。
やらずに出来る事は無い。
477nobodyさん:2005/04/08(金) 18:34:09 ID:???
>>476
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
が、必ず一番上にきますが、差し支えないでしょうか?
478nobodyさん:2005/04/08(金) 18:41:16 ID:???
>>477
無問題。
479nobodyさん:2005/04/09(土) 01:46:33 ID:???
この板の質問スレはここでいいのでしょうか…?
ttp://www.supra.cx/joyful2chMe/
この掲示板を設置しようとしているのですが、設置はできてもスレ立て・投稿をすると
本文が文字化けしてしまいます。config.cgiが原因らしいことはわかったのですが
それ以上のことがわかりません。余計なところはいじっていないつもりなのですが…
どなたか詳しい方、ご覧になってどのあたりが原因かご教授いただけないでしょうか。

元のconfig.cgi ttp://aploda.org/dat4/upload41470.txt
カスタマイズした(文字化けを起こす)config.cgi http://aploda.org/dat1/upload41471.txt

もしスレ違い・板違いでしたらご迷惑おかけしますが誘導お願いします。
480nobodyさん:2005/04/09(土) 01:47:49 ID:???
すみません、age忘れました
481nobodyさん:2005/04/09(土) 02:20:14 ID:P2wkPAu1
http://php.eweb-design.com/0209_tmp.php
を参考にテンプレートを使ってHPを作っています。
そこでお聞きしたいのが、テンプレートにPHP更新履歴スクリプト(レッツPHP)を
挿入したいので、テンプレートファイル(html)をphpに変え、スクリプトをincludeして
みたのですが、できてないようで更新履歴は表示されませんでした。
phpファイルだからincludeできるとばかり思ってたのですが・・・
無理なのでしょうか?それとも他に挿入できる方法はありますか?
ご教授下さい。宜しくお願いします。
482nobodyさん:2005/04/09(土) 02:53:40 ID:???
>>479
設置だけならWeb制作。

>>481
テンプレートの意味をわかってない。
483nobodyさん:2005/04/11(月) 00:12:38 ID:n2r9fgnb
一番後ろの字が「1」でなければ「←合格」を付け足すような流れにするつもりで
以下の文を書いたのですがうまくいきません。

$text = preg_replace("^(1$)", "←合格", $text);

鈴木1
佐藤
田中
山本1

↓スクリプト実行

鈴木
佐藤←合格
田中←合格
山本

このような結果を出すためにはどのように書き換えたらよいでしょうか?
484nobodyさん:2005/04/11(月) 00:51:27 ID:6yyE9tWD
俺のIDがPHPなんですが?
485nobodyさん:2005/04/11(月) 00:51:50 ID:6yyE9tWD
ID変わってる((;゚Д゚)ガクガクブルブル
486nobodyさん:2005/04/11(月) 01:29:31 ID:7J6f5Hz+
サーバOSとるにはどうしたらいいですか?
487nobodyさん:2005/04/11(月) 01:36:39 ID:???
>>486
とりあえず日本語勉強してみては?
488nobodyさん:2005/04/11(月) 01:54:56 ID:???
>>486
phpinfo()
489486:2005/04/11(月) 02:15:33 ID:???
>>488
サンクスコ。やっぱりphpinfoのSystemのとことるしかないんですかね。
>>487
バーカ
490nobodyさん:2005/04/11(月) 10:36:59 ID:???
>>489
人を貶す前に日本語勉強してこい。
それだとrootkitが欲しい厨房と読める。

PEARとか作ってる人は大抵、定義済み定数「PHP_OS」を使う。
491nobodyさん:2005/04/11(月) 12:06:12 ID:???
includeやrequireに失敗した時に、
Locationでエラーファイルに飛ばすにはどのようにしたら良いですか?
ifやorを試してみましたができませんでした。
492nobodyさん:2005/04/11(月) 12:28:15 ID:???
天下とるにはどうしたらいいですか?
493nobodyさん:2005/04/11(月) 13:13:32 ID:???
>>492
外でうんこする
494nobodyさん:2005/04/11(月) 13:24:21 ID:???
>>491
エラーハンドラ(マニュアルのエラー処理およびログ記録関数あたり)を自分でカキカキすればできるような気がするけど、
そんなことをするより、includeやrequireする前に file_exist()を使ってファイルの存在チェックをすればいいような・・
495nobodyさん:2005/04/11(月) 18:00:37 ID:???
皆さんはどれくらいの期間でそこそこ(掲示板作ったり)できるようになりましたか?
漏れは1ヶ月掛かってもできません|д゚)...
しかもプログラムは初めてです。
496nobodyさん:2005/04/11(月) 18:13:51 ID:???
>>495
掲示板ってのは、最初みんな作ろうとするんだが、
思いの他、色々な知識やテクニックが必要なのさね。
(だからこそ、きちんとした掲示板が作れれば、それなりのスキルがついたともいえる)

なので、ただ書かれた物を羅列表示するだけなら、PHPに触れてから1か月ぐらいでも作れたが
(きちんとした)掲示板を作れるようになるまで、オイラは1年以上かかったな。
497nobodyさん:2005/04/11(月) 18:19:57 ID:???
Apacheのサイトだったか忘れたけどプログラミング暦25年の初心者って人がいたからそれなりに作れるようになるには結構かかるんだろうよ。
全くプログラミング経験が無い場合は小さなものを作るだけでも3ヶ月〜1年はかかりそうな気がするけどな。
まあ、他人のものは俺のもって言うんなら1週間でも可能だとは思う。
498nobodyさん:2005/04/11(月) 18:35:09 ID:???
>>496-497
そうですか...
早く覚えたいのはやまやまだけど、所謂Linuxタコなんで(笑)いろいろ調べて頑張ります。
人真似でも人によってコードの書き方や処理が違うので、あんま勉強になりません。
それ以前に、「何でこういう処理するのか」とか「なぜこんな風なロジックなのか」で迷います。
一年か...|彡サッ
499軟式PHP:2005/04/11(月) 18:43:31 ID:???
ガンガレ。
とりあえず最初は深く考えずに作る楽しさを覚えた方がいいと思う。
500nobodyさん:2005/04/11(月) 19:20:15 ID:???
HTMLだと
<a href="index.html#name">go name</a>
で<a name="name"></a>したポイントへいけるけど、
index.php#nameだといけない。
これはPHPじゃできないのですか?
501nobodyさん:2005/04/11(月) 19:30:24 ID:???
             . ィ   >>500
.._ .......、._    _ /:/l!  またまたご冗談を
 :~""''.>゙' "~ ,、、''‐'、|         _      
゙、'、::::::ノ:::::::_,.-=.  _〜:、         /_.}'':,
 ``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
 ,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:'  ノ゙ノブ     
"   .!-'",/  `'-‐'') /\ `/ でノ-〈
 .-''~ >'゙::    ‐'"゙./  ヽ.,'   ~ /
   //:::::       ',    /    ,:'゙
502500:2005/04/11(月) 19:37:31 ID:???
ってよーく見たら自分のミスでしたorz
失礼しました。
503447:2005/04/11(月) 19:56:13 ID:???
>>494
491じゃないけど、ファイルが存在してパス指定も合ってればエラーは起きないのかな。

エラーになった事が無いから、ちょっと疑問にオモタ
対象がローカルだとしてね。
504nobodyさん:2005/04/11(月) 22:03:04 ID:OM1k7qLv
phpってチャットで作られてるのはみたことーあるけど
CGIとどうちがうんだもらぁー

詳しく教えれ
505nobodyさん:2005/04/11(月) 22:21:24 ID:???
>>504
うん、レスつかないな、それは。
506nobodyさん:2005/04/12(火) 00:16:57 ID:???
最低限日本語で書かないとな
507nobodyさん:2005/04/12(火) 01:04:55 ID:???
date("I") でかえってくる値って、サーバーに設定されてる時刻設定に関係あるの??
日本に置いてあるサーバーでやると、0 でアメリカに置いてあるサーバーだと1がかえってくる。。
508nobodyさん:2005/04/12(火) 04:49:43 ID:UCe7BGgZ
windows2000、apache2、php4.311な環境なんだけどphp.iniをデフォルト以外の場所で読み込ませるにはどうしたらいい?
D:\PHPにphp入ってるんでphp.iniもそこにおいて読み込ませたい
509nobodyさん:2005/04/12(火) 06:10:09 ID:???
>>508
自分でcompile
510nobodyさん:2005/04/12(火) 06:34:56 ID:???
511nobodyさん:2005/04/12(火) 09:48:50 ID:???
アンケートを作ってみました
<FORM ACTION="http://www.example.com/example.php.htm" METHOD=POST>
氏名:<INPUT TYPE=TEXT NAME="name"><BR>
メールアドレス:<INPUT TYPE=TEXT NAME="email" ISTYLE=3> <BR>
<BR>
選択<BR>
<SELECT NAME="test">
<OPTION VALUE="a">A
 
<OPTION VALUE="b">B
 
<OPTION VALUE="c">C
 
</SELECT><BR>
<BR>
テスト<BR>
<TEXTAREA NAME="impression"  rows=" COLS=10 5"></TEXTAREA><BR>
<BR>
テスト<BR>
<INPUT TYPE=RADIO NAME="test1" VALUE="a">A<BR>
<INPUT TYPE=RADIO NAME="test1" VALUE="b>B<BR>
<INPUT TYPE=RADIO NAME="test1" VALUE="c">C<BR>
<INPUT TYPE=RADIO NAME="test1" VALUE="d">D<BR>
<BR>
<INPUT TYPE=SUBMIT NAME="submit" VALUE="送信" id="submit"> <INPUT TYPE=RESET VALUE="やり直し"><BR>
<BR>
<BR>
</FORM>
内容を一度確認して送信するようにするには、どうすればよろしいですか?
512nobodyさん:2005/04/12(火) 10:13:11 ID:???
>>511
HTMLとしておかしい場所が数箇所あるので、直しておいたほうがいいかと。
確認をしたい時には、確認用のスクリプト(or ロジック)を書く必要があります。
513nobodyさん:2005/04/12(火) 12:31:16 ID:???
そしてhtmlを大文字で書くヴォケ
514nobodyさん:2005/04/12(火) 12:36:19 ID:???
>>513
何か問題でも?
多くのHTMLエディタが大文字で吐いてるぞ
うちは手書きなので小文字がほとんだが・・・
515nobodyさん:2005/04/12(火) 12:55:40 ID:???
xhtml絡みで小文字にしる、って言ってるのかな。
まぁ今回は見当外れもいいところだが。

オイラはcaps lockを押すのが面倒なので普段は小文字。
DreamWeaverも使うけど小文字で吐くように設定してあるなぁ。

>>507
鯖のライブラリを使って時間を取得して、そのライブラリ内で定義されているdst(夏時間)を使うから、
鯖の設定や環境に依存するよ。
516nobodyさん:2005/04/12(火) 13:42:35 ID:???
これからphpをはじめたいと思っているのですが、
phpはデータベースの連携にすぐれてると聞きました。
phpもデータベースもよく知らないのですが、
会員登録系にある、個人情報,指定したLoginID,LoginPassなどは
データベースに格納されて、認証時に引き出してくるものだと思うのですが
php+DBで、そのようなことは可能でしょうか?
会員登録した人だけが書き込みできるようなことをしたいので、
ログインシステムみたいなものを作ってみたいと思っています。
知識はhtmlぐらいしかないのですか、
超初心者〜中級者と、幅広く参考になるページも教えていただけると助かります。
517nobodyさん:2005/04/12(火) 13:43:57 ID:???
「英知体絵夢得」

ソースとして記述する場合は小文字「html」。
マークアップランゲージの固有名称として記述する場合は大文字「HTML」。

で、FA?
518nobodyさん:2005/04/12(火) 13:46:59 ID:???
>>516
やっぱマンモス本から入るのがいーんじゃねーの?
519516:2005/04/12(火) 14:02:58 ID:???
>>518
レスどうもありがとうございます。
マンモス本調べてみました。
php+DBのよさそうな教材ですね。
php4とphp5両方買ったほうがいいですかね?
MySQLを勉強しようと思っていましたが、
PostgreSQLに変更してみたいと思います。
520nobodyさん:2005/04/12(火) 14:11:26 ID:m58tL93L
いきなりですが質問します。

CSVファイルを出力するプログラムで
「ファイルのダウンロード」ダイアログ→「開く」を選択した場合
POSTの場合はダイアログが2回表示されるのはなぜでしょう?
POSTで1回のみにできないのでしょうか?


test.htm のソース
--------------------------------------------------------------------------------
<form action="download.php" method="get">
<input type="text" name="data" value="test">
<input type="submit" value="GETでダウンロード">
</form>

<form action="download.php" method="post">
<input type="text" name="data" value="test">
<input type="submit" value="POSTでダウンロード">
</form>
--------------------------------------------------------------------------------

download.php のソース
--------------------------------------------------------------------------------
<?php
header("Content-Disposition: attachment; filename=test.csv");
header("Content-type: application/x-csv");

print $_REQUEST['data'];
?>
--------------------------------------------------------------------------------
521520:2005/04/12(火) 14:15:26 ID:???
あーごめんなさい!
もしかしたらスレ違いかも知れません。
522nobodyさん:2005/04/12(火) 15:23:11 ID:???
>>519
PHP4徹底攻略ならpdfがうpされているので、それで勉強すると良いと思う。
PHP5はもう少し本が出そろってからでもいいのではないかと思う今日この頃・・・
523nobodyさん:2005/04/12(火) 17:15:20 ID:???
$data = "./data/userlist/list.cgi";
$list = file($data);
$count = count($list);
$in = 2;
for($i = 0; $i <= $count; $i++){
print "$id";
print "$id2 <BR>";
print "$pass";
print "$pass2 <BR>";
list($number2,$id2,$pass2,$sex2,$time2) = split( ",", $list[$i]);
if (($id == $id2) && ($pass == $pass2)){
$in = 1;
}
print "$i";
print "$in <BR>";
}
if($in == 1){
print "ログインしました";
}else{
print "ログインできません";
}

と打ってみたんだんですが、$idと$passが空白のとき一番最後の周期で必ず$inに1が代入されます。
空白でないときはちゃんとなるんですが・・・
524nobodyさん:2005/04/12(火) 17:16:14 ID:???
質問です。
phpで、外部サイトのソースの一部を読み込むことってできますか?
例えば、www.hogehoge.comのソース内に
 <!--今日の日記、毎日更新-->
 日記の内容
 <!--今日の日記ここまで-->
という記述があったとして、その記述を
www.mogemoge.net/indexphpのページの一部に
埋め込むといった感じです。
525523:2005/04/12(火) 17:18:20 ID:???
どうやら周期が1回多いみたいでした
すみません、自己解決しまいsた
526nobodyさん:2005/04/12(火) 17:18:47 ID:???
>>524
includeではだめでしょうか?
527nobodyさん:2005/04/12(火) 17:25:52 ID:???
includeで外部ファイルって読めたんだ?

ところで外部ってLAN内の外部?
それとも地球の裏の鯖?
528524:2005/04/12(火) 18:27:34 ID:???
>>527
どっちかっていうと、地球の裏側です。
読売新聞のサーバから産経新聞のサーバのデータを読み込む様な。

>>526
includeですか、外部サイトのデータも読み込めるんでしょうか?
でもヒントになりそうです、調べてみます。

ありがとうございました〜。
529nobodyさん:2005/04/12(火) 19:15:08 ID:jjWsVBo6
http://www.p-world.co.jp/index.html
↑このくらいのサイトを作るのにはいくらくらいかかるもんなんですか?
530nobodyさん:2005/04/12(火) 19:15:57 ID:???
>>529
サブコンテンツが多すぎるから100万↑
531nobodyさん:2005/04/12(火) 19:21:22 ID:jjWsVBo6
>>530
製作を依頼すると100万円かかるということでしょうか?
532nobodyさん:2005/04/12(火) 19:26:06 ID:???
>>529
業者乙。どのくらいPV稼げましたか?(w
533nobodyさん:2005/04/12(火) 19:27:36 ID:???
個々のスクリプト作成よりも仕様決定だけで半分くらい時間とられそうな・・
全く同じもの(裏の管理者用のページも含めて)を作るとしたら、そんくらい取られるだろうね。
つーか取りたくなるね。
534nobodyさん:2005/04/12(火) 19:29:55 ID:jjWsVBo6
>>533
仕様決定ってなんですか???
そういう作成業者でいいところってないですかね?
535nobodyさん:2005/04/12(火) 19:39:38 ID:???
おひおひ、あれだけのもの100満程度で受けちまうのか?兵だな。

よくよく見てみると、巨大データベースからチャットから都道府県別BBS、
オマケの諸々・・・

仕事で受注するなら、400〜600万、システム周りの構築から含めると、
1000万超の見積もり出すぞ、うちの会社なら。
536nobodyさん:2005/04/12(火) 19:41:32 ID:???
例えば、a.php は POST で値を受け取るとする。
a.php の中で、いくつか処理して、b.php に redirect して、
処理した値をまた POST で送りたい。
大事なのは、ユーザ的には form.html -> b.php に見えるっつぅことです。
そういう場合はどうしたらいいんですか?
今 pear の HTTP_Client を読んでる所なんですけど…
537nobodyさん:2005/04/12(火) 19:58:52 ID:jjWsVBo6
>>535
1000万ですか。
どういう部分で高くなるんですか??
538nobodyさん:2005/04/12(火) 20:47:46 ID:???
>>537
535じゃないけど解説。

>仕事で受注するなら、400〜600万、システム周りの構築から含めると、
>1000万超の見積もり出すぞ、うちの会社なら。

開発だけで400〜600ってのは設計からプログラミング、テストに至るまでの期間による。
大手SI企業(例えばIBM)とかだと1人が1ヶ月付きっきりだと200万ぐらいかかるが、
普通の企業で計算しやすく1人月100万とする。
そうすると、人間1人が4ヶ月から6ヶ月で作成できる規模ということになる。
(当然人間が2人でやれば2〜3ヶ月)

開発費用がこの程度なら妥当な値段。
それにシステム周りの構築、つまりサーバなりも含めると1000万近くになる。
真面目な構成のサーバを用意すると、それだけで数百万掛かる。
まぁ、この部分は実際のマシン代と考えればいい。

それと、問題はデータだな。
>>529のサイトはデータがあるからこそのシステムだと思う。
お前さんがどんなシステム欲しいか知らないが、データはあるのか?
データを集める、もしくは買うとなると、データの種類にもよるが
それでけでも数千万〜数億単位で金が掛かるぞ。
539nobodyさん:2005/04/12(火) 20:55:29 ID:jjWsVBo6
>>538
なるほど。ご丁寧な解説ありがとうございます。

つまり>>529くらいのwebを作成するにはそのくらいかかると、、
普通のHPと>>529の違いというのはどこからなのでしょうか?
ちょっと手の込んだHPというわけではないってことですよね・・・
540nobodyさん:2005/04/12(火) 21:02:18 ID:???
>>539
少しこの業界の事がわかっていないようで・・・

普通のHPだろうとPHPを使った開発だろうと、
値段は作る為に、『何人がどれ位の期間掛かったか』という事。
541nobodyさん:2005/04/12(火) 21:09:33 ID:jjWsVBo6
>>540
なるほどぉぉ。
そういうのは普通業者に頼むものなのでしょうか?
一般の腕利きでそういうことができる人も少なからずいますかね?
542nobodyさん:2005/04/12(火) 21:17:44 ID:???
>541
オメェは何の目的で何が知りたいんだ?
単なる興味本意なら、とりあえず社会に出て働け
仕事の発注先を探しているなら、悪いことは云わん。
上司に頼んで担当替えてもらえ
543nobodyさん:2005/04/12(火) 21:20:13 ID:???
>>541
頼む相手は、作りたい物による。

普通のHPならWebデザイナーやらに頼めばいい、
何かしらのシステムを作りたいならシステム開発会社に頼む。
デザインにこだわりたければ、システム会社に依頼しても、
デザイン部分はWebデザイナーに委託したりしてくれるから、
その辺は打ち合わせとか金次第。

一般の腕利きでそういうことをできる人が居るかだが、普通に居る。
ただし、一般といってもピンキリ。
元々はシステム開発会社に勤めてたって奴も居れば、
本業はシステム開発会社に勤め、副業としてバイト感覚でやってる奴も居る。
全くの独学でやってる奴もいる。
544nobodyさん:2005/04/12(火) 21:32:43 ID:???
>>542
どのみち>>541は、
スレ違いだ!失せろボケ!
って事ですね。
545nobodyさん:2005/04/12(火) 22:11:03 ID:ZbNIWkrh
楽天ビジネスにhttp://www.p-world.co.jp/index.htmlとおんなじやつ
作ってほしいって見積もりだしてる人いるねw
546nobodyさん:2005/04/12(火) 22:41:27 ID:???
ifから抜ける命令ってありますか?
547nobodyさん:2005/04/12(火) 22:52:40 ID:???
break
548nobodyさん:2005/04/12(火) 22:52:44 ID:???
break('if')
549nobodyさん:2005/04/12(火) 22:52:50 ID:???
>>546
ループから抜けるのはbreakなわけだが。。。
ifから抜けるの意味がわからん。
550nobodyさん:2005/04/12(火) 22:54:47 ID:???
function &hogehoge

ユーザー定義関数の頭についてる&ってどんな意味があるんですか?
551nobodyさん:2005/04/12(火) 22:56:11 ID:???
foreach(){
if(){
if() $a=true; (この部分で抜けたい)
}
error();
}

あ、break;でいいのか・・・
確かにifから抜けるっていうのは意味不明でした。
552nobodyさん:2005/04/12(火) 22:58:43 ID:???
if(condition){
..処理1
// ここで抜ける
..処理2
}
// ここへ抜ける

ってことだよね?そういうのは無かった気が。
最初から処理2を書かなきゃいいだけのような・・・
ある条件を満たした時に抜ける(ifの中にさらにif)だとしても、
処理2の部分を2つ目のifのelseの中に持っていくとか。
って、書いてる間に解決してたか。まぁループ以外で抜ける時の参考ということで。
553551:2005/04/12(火) 23:26:12 ID:???
結局うまくいかなかったので仕様変更して切り抜けました。
みなさんありがとうございました。
554nobodyさん:2005/04/12(火) 23:52:59 ID:9LvPVNuj

Configuで設定を変えたいのですが鯖にphp.iniがありません。
whichで探すとphp4というファイルがあるだけでした。

こういう場合PHPを再インストールするしかないのでしょうか?

555nobodyさん:2005/04/13(水) 00:04:31 ID:???
>>554
詳しく
556nobodyさん:2005/04/13(水) 00:28:26 ID:???
>>554
whichじゃなくてfindで/から探したら?
FHSレイアウトだと/etcに置くのが普通かな
557nobodyさん:2005/04/13(水) 00:34:18 ID:???
>>554
phpinfo();
で設定表示して「Configuration File (php.ini) Path 」ってところにあるはず。
なければ「php.ini-recommanded」っていうテンプレートファイルがどっかにあるから
findで探してコピーする(まあ大抵は展開したソースディレクトリの中に入ってるけどね)。
558554:2005/04/13(水) 01:20:13 ID:???
>>557
phpinfo();で見つかりましたm(_ _)m
559nobodyさん:2005/04/13(水) 02:11:07 ID:???
昨日からphpを勉強しはじめ、初めてのプログラム(?)を書きました。
しかしながら、LINE5でエラーがでます。

test.htmlの内容(htmlなど一部タグ省略)
<form method="get" action="test.php">
<input type="text" name="tasu0">+<input type="text" name="tasu1"><br>
<input type="text" name="hiku0">-<input type="text" name="hiku1"><br>
<input type="text" name="kake0">+<input type="text" name="kake1"><br>
<input type="text" name="waru0">+<input type="text" name="waru1"><br>
<input type="submit" value="計算">
</form>

test.phpの内容
<?php
$tasu = $_GET['tasu0'] + $_GET['tasu1'];
$hiku = $_GET['hiku0'] - $_GET['hiku1'];
$kake = $_GET['kake0'] * $_GET['kake1'];
$waru = $_GET['waru0'] / $_GET['waru1'];
print <<<EOF
足し算の実行結果 {$tasu}<br>
引き算の実行結果 {$hiku}<br>
掛け算の実行結果 {$kake}<br>
割り算の実行結果 {$waru}<br>
EOF;
?>

というような、計算機みたいのを作りました。
LINE5ということは
$waru = $_GET['waru0'] / $_GET['waru1'];
の部分ですが、どこが悪いのでしょうか?
長々とすみませんが、アドバイスお願いします。
560559:2005/04/13(水) 02:29:39 ID:???
すみません。test.htmlの部分が少し間違えていました。
<input type="text" name="kake0">+<input type="text" name="kake1"><br>
<input type="text" name="waru0">+<input type="text" name="waru1"><br>
この部分なんですが、<input>+<input>の部分は+ではなく、
kakeのほうは*、waruのほうは/です。
最初の+のやつをコピペしたので、修正忘れてました。すみません。
561nobodyさん:2005/04/13(水) 03:29:07 ID:???
waru1が0だから、とか言う落ち?
562559:2005/04/13(水) 03:39:35 ID:???
>>561
詳しく教えていただけませんでしょうか?

一応エラーには
Warning: Division by zero in test.php on line 5
とあるので、0が関係しているようなので、
>>561さんの言うとおりだと思うのですが
どういうことなのでしょうか?
563nobodyさん:2005/04/13(水) 04:18:39 ID:???
>>562
詳しくって…
エラー(つうか警告)そのままだろ。0で割ってるよって事だ。
564559:2005/04/13(水) 04:33:48 ID:???
>>563
値を入れたら、正常なんですが
何も入れないとこのようなエラーが出てしまうので、
文法とかにエラーがあると思ったんですが、そういうわけではなかったんですね。
0/0がおかしいってことですか。
エラーを吐かなくするような、演算子(?)のようなものが
今みてる本の、10ページぐらい前に書かれてたようなきがするので、
ちょっと見直してみます。
どうもありがとうございました。
565nobodyさん:2005/04/13(水) 06:51:53 ID:WcJtctkN
phpの掲示板の作り方を教えているサイトって
ありませんか?
566nobodyさん:2005/04/13(水) 07:38:09 ID:tWz+dwtY
567nobodyさん:2005/04/13(水) 12:52:09 ID:???
>>564
if($_GET['waru0'] && $_GET['waru1']){
 $waru = $_GET['waru0'] / $_GET['waru1'];
}else{
 $waru = '割れね';
}
568nobodyさん:2005/04/13(水) 13:03:01 ID:???
0.0 なんかの場合に失敗するよ。
569nobodyさん:2005/04/13(水) 13:50:22 ID:160fl1OF
PHPで携帯用URLを自動返信させたいんですけど
送信されるところまでできたのですが
送信元がAPACHになっちゃいます。。
sendmailの設定をいじるコントロールパネルがあるのですが
どこをいじっていいのか教えてください!
570nobodyさん:2005/04/13(水) 14:21:56 ID:???
>>569
sendmailの設定でも可能だが、そのどこの誰が作ったとも分からんコントロールパネルとやらで
それができるかどうか分かるわけが無かろう。
mail関数を使う時にenvelope-fromが正しく設定されているか、
そのenvelope-fromの設定がsendmail側で拒絶する設定になっていないか、
チェックすべき事がまだまだある。つーかマニュアルにもその事の記載がある。
571559:2005/04/13(水) 14:46:09 ID:???
>>567
コードどうもありがとうございます。
なるほど、こういうところでif構文を使うんですねぇ。
そのコードを組み込んでみたところ、
parse error, unexpected '@'というエラーがでてしまいました。
エラーの場所はわかるのですが、エラーの意味がよくわからなくて、
せっかくエラーを吐いてくれるのに、修正できないでいます。orz
勉強不足なので、勉強してまたで直したいと思います。
どうもありがとうございました。
572nobodyさん:2005/04/13(水) 15:10:27 ID:???
>>567
> parse error, unexpected '@'
パース(ソースを構文解析)している時にエラーが発生した。「@」はここに出てくる筈が無いのだが。(超訳)
>>564 で書いている演算子(@)の位置が悪いかと。

まぁ根本的な問題の解決には、0かどうかで処理を分岐する、
言い換えれば0の時にどうするかを明確に決める、つーのがいいんだけど。
573569:2005/04/13(水) 15:17:27 ID:160fl1OF
>>570ありがとうございます。
ini_setにてfromの設定をしてみたのですが無理でした。
envelope-fromというのは_ENV["HOSTNAME"]のことでしょうか?
これの設定の仕方を調べているのですがわかりませんTT
コントロールパネルはensimのものです。
これだけじゃ無理っぽいですね・・^^;
574nobodyさん:2005/04/13(水) 15:36:52 ID:???
>>571
全角スペースを□とかで表示できるエディタを使ったほうがいいよ。
デバッグが楽になるから。
575nobodyさん:2005/04/13(水) 15:38:43 ID:c/E+T1wC
PHP4にてセッションが切れたときにメッセージを表示させたりすることって可能なんでしょうか?
576567:2005/04/13(水) 15:54:38 ID:???
>>571
悪ィ!
条件式は、
if($_GET['waru0'] || $_GET['waru1']){
だわ。andじゃ無くってorね。

ってか、これは
parse error, unexpected '@'
には関係ないな…

このエラー、大抵の場合、セミコロンが無かったりってことが多いので、
ソースを小一時間眺める由。それでも駄目なら、近辺のソース全部貼り。
577567:2005/04/13(水) 15:55:47 ID:???
あああああ、ばっかじゃん。
if($_GET['waru0'] && $_GET['waru1']){
で良いんだよ。andで・・・

吊って来るor4z
578559:2005/04/13(水) 16:04:29 ID:???
皆様ご丁寧にどうもありがとうございます!
>>572
昨日あの後本を読み返したんですが、エラーをはかなくする
演算子が見つかりませんでした。@だったんですね。ありがとうございます。
>>576
ソースまで書き換えていただいてありがとうございました。
>>574の全角スペースをヒントに原因が判明しました。
>>567
if($_GET['waru0'] && $_GET['waru1']){
 $waru = $_GET['waru0'] / $_GET['waru1'];
}else{
 $waru = '割れね';
}
これの
 $waru = $_GET['waru0'] / $_GET['waru1'];
部分にエラーがでていまして、
なんとなく$の前に空いていた全角スペースを削ってみたら、
見事に動作しました。
本当に皆様どうもありがとうございました。一歩前進できました。
メモ帳を使っていたので、ちゃんとしたエディタに換えます。
579nobodyさん:2005/04/13(水) 16:30:49 ID:???
全角スペースはシフトジスで0x81,0x40
で@が0x40という話でした。
580nobodyさん:2005/04/13(水) 17:14:58 ID:???
PHPだけって訳では無いのですが質問させてください。

PHPのソースファイルや表示文字などはphp.iniで設定すれば
文字化けを回避できる事は分かりました。

そこで疑問なのですが、データベースを使う場合は何か注意点が必要なのでしょうか?
例えば、PHPのソースファイルや表示時はEUCでデータベースではUTF8の場合、
PHPから発行するSQLはUTF8で行わないと行けないのでしょうか?
また、SQL発行後、取得した結果はUTF8となるのでしょうか?
581nobodyさん:2005/04/13(水) 17:18:06 ID:???
>>580
言ってることが滅茶苦茶になってるよ
582nobodyさん:2005/04/13(水) 17:21:09 ID:???
>>580
yes!
yes!
583580:2005/04/13(水) 17:28:35 ID:???
>>582
なるほど。

つまり、文字コードが異なるDBへSQLを発行するときは、
SQLをmb_convert_encodingで変換しないといけないし、
取得した結果もmb_convert_encodingで変換しないといけないんですね。
584nobodyさん:2005/04/13(水) 17:38:13 ID:???
>>567

まぁまぁ。
それでも数値文字列以外がつっ込まれたら
エラー出ちゃうんだけどね。
585nobodyさん:2005/04/13(水) 17:59:09 ID:???
>>584
じゃ
if(is_numeric($_GET['waru0']) and is_numeric($_GET['waru1']) and $_GET['waru1'] != 0) {
$waru = $_GET['waru0'] / $_GET['waru1'];
}
586nobodyさん:2005/04/13(水) 18:01:59 ID:RAtZXMfH
aa,"aaa
bbb
ccc",aaaa

となっていて、""内の改行を全て<BR>に置換するにはどうすればいいでしょうか?
587586:2005/04/13(水) 18:09:03 ID:RAtZXMfH
あ、改行の数は不明です。
588nobodyさん:2005/04/13(水) 18:25:34 ID:???
>>586
"が必ず2つ存在(1個以下でも無いし、3個以上でも無い)のなら、
explodeでちょっきんして、nl2brでぱたぱたして、implodeでぺたぺたしてもいいんじゃないかな。
CSVっぽいので "の扱いに疑問が残るけど。
589nobodyさん:2005/04/13(水) 21:05:02 ID:???
質問です。正規表現の使い方で分からない事があります。
$messageという変数に半角文字が30文字以上空白無しで続いたら
切り取って再代入する方法はありますか?

ex)
$message = askldnasdafvaiohdfahv;haifv.,aosdlihadfnvafXC

↓ 再代入

$message = askldnasdafvaiohdfah..

出来れば↓とする方法はありますか?

$message = askldnas....hadfnvafXC
590nobodyさん:2005/04/13(水) 22:43:01 ID:???
くだ質の典型になってますが....
配列同士を連結するにはどうすればいいでしょうか?
perlにおける@a=(@a, @b); あるいは push(@a, @b); と同じことをしたいです
591nobodyさん:2005/04/13(水) 22:48:31 ID:???
マニュアル
592nobodyさん:2005/04/13(水) 22:51:10 ID:???
array_merge をやっと見つけた......
perlのpushと混同していたのですぐに分からなかったorz
593nobodyさん:2005/04/14(木) 01:43:03 ID:OcmzBqS0
simplet board という掲示板スクリプトを配布している
DESIGNLAB. というサイトがnot foundなんですが
どなたか詳細ご存知?
594nobodyさん:2005/04/14(木) 02:37:35 ID:???
>589

・半角文字が30文字以上連続していたら
if (preg_match("/[\w,.+-]{30,}/", $message)
# 半角文字の指定は適当なので好きにして

・文字列の一部を取り出す
substr()

・文字列の連結
$a = $b . $c
595nobodyさん:2005/04/14(木) 04:03:07 ID:Pq56Nx3S
〜のエイリアスってどういう意味ですか?

fputs
fputs -- fwrite()のエイリアス

こんな感じに説明されているんですが
よく分かりません
596nobodyさん:2005/04/14(木) 04:55:39 ID:???
>>595
fputsはfwriteとまったく同じ関数ということ
597nobodyさん:2005/04/14(木) 07:21:37 ID:???
>>595
a・li・as
n., ad. 別名[偽名].
598nobodyさん:2005/04/14(木) 08:57:56 ID:???
何が書いてあるのかさっぱり分からない
599nobodyさん:2005/04/14(木) 10:25:04 ID:???
今実行中の php ファイルを取得する方法として、
$GLOBALS にある $_SERVER[”SCRIPT_FILENAME”]
を使おうとかと思ってましたが、
その値がある環境とない環境があるみたいなんですけど、
これってコンパイル時に決める事なんですかね?
600nobodyさん:2005/04/14(木) 11:07:26 ID:???
>>599
webサーバが決める($_SERVERだもんね)
Apacheなら多分大丈夫
601nobodyさん:2005/04/14(木) 11:20:26 ID:???
>>599
$_SERVER['PHP_SELF']
602nobodyさん:2005/04/14(木) 11:28:15 ID:???
ファイルロックされているかどうかをチェックだけしたいんだけど
どうしたらいいかな
実際にファイルロックはしたくない
603nobodyさん:2005/04/14(木) 11:34:25 ID:???
シュレディンガーの猫ですな
604軟式PHP:2005/04/14(木) 11:36:34 ID:???
そうなのか?w
605599:2005/04/14(木) 11:39:31 ID:???
>>600
なるほど。だから debugger だとなかったのか…
>>601
Linux 2.4.20-28.7 で php v.4.1.2 なサーバーではそれも出ないねぇ…
606軟式PHP:2005/04/14(木) 11:42:28 ID:???
>>605
__FILE__は?
607軟式PHP:2005/04/14(木) 11:43:33 ID:???
↑だけど、
もし、include,require内で実行中を知りたいのだったら調べてみらんとわからん
608605:2005/04/14(木) 11:52:13 ID:???
>>606
そもそも __FILE__ なんて値無いんだけど??どうやって使うの??
609軟式PHP:2005/04/14(木) 11:52:57 ID:???
定数ってやつだよ。そのまま書けばいいよ。
print __FILE__;
みたいに。詳しくは↓
http://php.s3.to/man/language.constants.predefined.html
610軟式PHP
毎度すまそ。
http://www.php.net/manual/ja/language.constants.predefined.php
こっちのが正式なマニュアル。