トップページ⇒php
1001コメント331KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん05/02/07 21:47:15ID:???
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
0421nobodyさん05/02/18 16:45:50ID:???
>>418
マジレスすると全ての日本語をデータベースにでも保存しておいて
文字列に含まれているか一個ずつ全部チェックすればいい
0422軟式PHP05/02/18 17:01:10ID:???
>>410
オブ脳読むより、憂鬱なプログラマ〜の方がOOP分かりやすいよ。
オブ脳はぶっちゃげすぎてる部分があるし。
0423nobodyさん05/02/18 17:08:14ID:???
>>418
マジレスするとUTF-8に日本語って定義がない
違いはシングルバイトコードかマルチバイトコードの区別だけだ

PHP固有の質問でもないから、あとはgoogleで調べてくれ。
0424nobodyさん05/02/18 17:40:35ID:???
>>420
ドイツ語だ。どあほ
0425nobodyさん05/02/18 17:41:42ID:???
>>424
m9(^Д^)プギャーーーッ
0426nobodyさん05/02/18 17:51:21ID:???
フォームで送った内容を次のページでチェックされた状態にしたいです。

はじめ送られてきたフォーム内容を解析して、<input ... checked>などで
書こうとしたのですが、手元のPHP本を読んだらセッションを使った方法が
書いてありました。

この2つの方法の違いというか、メリット、デメリットはなんでしょうか?
0427nobodyさん05/02/18 17:59:13ID:???
>>426
2ページならセッションの出番が無いと思われ。

フォーム -(1)-> フォーム -(2)-> 確認画面等

セッション利用有無に関係なく、(1)は当然<input>になる。
セッションを使うと(2)の部分でセッションのデータを利用可能になり、
フォームデータの再送信による手間を防げたり、
(クライアント側からの)データ改竄を防げたりする。
0428nobodyさん05/02/18 18:39:47ID:???
>>427
丁寧な説明ありがとうございます。よく理解できました。
フォームデータが毎回変わり、一回切りのページ表示なので
セッションの意味はないことがわかりました。

ありがとうございました。
0429nobodyさん05/02/18 21:37:24ID:???
htmlの共通部分をrequireを使って、一度に更新出来るようにしようと思っているのですが、

Warning: main(xxxxxxxxxx.html) [function.main]: failed to open stream
Fatal error: main() [function.require]: Failed opening required

上記二つのエラーメッセージが、<?php require(xxxxxxxxxx.html); ?>と言うのを、
htmlに埋め込んだところ出てしまいました。色々と試しているのですが、なかなか出来ません。

どなたかご教授頂けると幸いです。

ちなみに、サーバーはxreaをお借りしています。
0430nobodyさん05/02/18 21:46:34ID:???
<?php require('xxxxxxxxxx.html'); ?>
0431nobodyさん05/02/18 21:46:41ID:???
ちゃんとrequireできてないだけ
0432nobodyさん05/02/18 21:50:47ID:???
関数の参照渡しは調べて、値に変更が無い場合違いはないらしいとわかったのですが、
PHP4でのオブジェクトの参照渡し $foo &= new Hoge(); はどういう時に使うべき
ものなんでしょう?

php 参照渡し オブジェクトでgoogleさんに聞いてみましたが出てこなかったです。
0433nobodyさん05/02/18 21:52:34ID:???
すみません、ちゃんと「'」で囲んでます。
ですが、それでも無理なんです。
0434nobodyさん05/02/18 22:53:38ID:JUw9WZei
こんな感じのフォームでファイルを特定のディレクトリにアップロードしたいと思ってます。
その際に、投稿者の名前や、メッセージなどの情報も記入してもらい、これをmysqlに入れてしまい、ファイルパスもDBに入れて管理するものを作ろうとしてます。

<form action="hoge.php" method="post" enctype="multipart/form-data">
名前:
<input type="text" name="name">
メッセージ:
<input type="text" name="message">
ファイル:
<input type="hidden" name="MAX_FILE_SIZE" size="*****">
<input type="file" name="file">
<input type="submit" name="submit" value="送信">
</form>

multipart/form-dataにすると、2バイトの文字だとまともに値(ここでは$nameと$message)を受け渡し出来ません。
ファイルのアップと、その他の情報を2回に分ければすむ話ですがなんとか
関連情報の記入、ファルの選択
確認画面
ファイルアップ、ならびに、DB登録、(場合によっては管理者への告知メール、登録者への確認メール)
という流れにしたいと思っていますが、$nameと$messageに対してどういう処理をすれば、値が取り出せるのか解りません。この辺について、解りやすい説明や、サンプル等あるサイトがあれば教えて下さい。
0435nobodyさん05/02/18 23:54:53ID:???
>>434
>multipart/form-dataにすると、2バイトの文字だとまともに値(ここでは$nameと$message)を受け渡し出来ません。

んなこたぁない!
0436nobodyさん05/02/18 23:55:52ID:???
>>434
たんなるエンコードの問題だと思われ
043743405/02/19 00:26:14ID:d9KdIK2z
>>435>>436
そのエンコードのやり方がわからんのです。
ソースはEUCで書いてるんですが。
0438nobodyさん05/02/19 00:42:10ID:???
>>432
> PHP4でのオブジェクトの参照渡し $foo &= new Hoge(); はどういう時に使うべき
> ものなんでしょう?

$foo = & new Hoge();
なら、”使うべき”つうか、インスタンス生成するときは大概そうするよ。
0439nobodyさん05/02/19 11:04:17ID:a1KdI/7k
php5が使える無料スペース知ってる人いたら教えて下さい。
0440nobodyさん05/02/19 11:16:49ID:???
Webプログラムを勉強しようと思いました。
JSPが凄そうなのでJSPを一生懸命勉強しました。
勉強の成果を試そうと、HPスペースを探しました。
JSPを無条件で使えるところはほとんどありませんでした。
泣きそうになりました。

これに懲りたので、今度は普及度の高そうなPHPを勉強しました。
最新バージョンであろうPHP5の書籍を参考に勉強しました。
勉強の成果を試そうと、HPスペースを探しました。
PHP5を使えるところが見当たりませんでした。
死にたくなりました。
0441nobodyさん05/02/19 11:22:52ID:???
どう考えても自業自得だろ
0442nobodyさん05/02/19 11:30:26ID:???
だろじゃねーよ糞野郎。
はやくphp5がつかえる無料スペースを教えて下さい。
0443nobodyさん05/02/19 11:38:53ID:???
いいから氏ね
0444nobodyさん05/02/19 11:47:22ID:???
PHP5を試してから死にたいです。
自分で鯖を立てるほどの根性はありません。
どなたか、php5を無料スペースで使ってる方はいませんか。
0445nobodyさん05/02/19 11:49:07ID:???
ごめんなさい。死ぬとか冗談でいう事ではありませんでした。
本当は超生きたいです。120歳くらいまで生きたいです。
110歳くらいまでPHPをやりたいです。
ですから無料スペースを教えて下さい。
044643405/02/19 12:14:30ID:62TgDRLY
>>435>>436
>>434です。
自分なりに調べてみたのですが、
ttp://ns1.php.gr.jp/pipermail/php-users/2002-July/008617.html
この辺りで、調べる方向は合ってますか?
phpのバージョンによっても、いろいろみたいですが、漏れの使ってる鯖はPHP Version 4.3.1です。
0447nobodyさん05/02/19 12:59:21ID:???
 FedoraCore2 で自宅サーバを立てているのですが、
ページのテストの度にFTP を使うのが面倒になって
クライアント(win2000)にapache1.3 とphp4 を
インストールしました。
 クライアントのphp から自宅サーバのpostfix を使って
php スクリプトでメール送信を実現するには
クライアント側のphp.ini をどう設定すればいいのでしょう?

 ご教授お願いします。
0448nobodyさん05/02/19 13:25:13ID:???
>>447
やってみどんな問題があったのさ。
http://jp.php.net/mail
0449nobodyさん05/02/19 13:25:57ID:???
>>447
FeroraにSamba入れてWindows共有しろ
0450nobodyさん05/02/19 13:55:30ID:???
requireで読み込んだテキストファイルが文字化けするんですが、何故なのでしょうか?
読み込むファイルをHTMLなどにして、charsetなどを指定した方が良いのでしょうか?
誰か教えて下さい。
045144705/02/19 14:30:24ID:???
 すみません、情報が不足していましたね。

 > やってみどんな問題が・・・・
 Warning: mb_send_mail(): SMTP server response: 501 Bad address syntax in f:\hoge\fuga.php on line 246
というエラーになります。
 現在のクライアント(win2000)のphp.ini には、
[mail function]
; For Win32 only.
SMTP = 192.168.11.xx  ← サーバのローカルIP アドレス
smtp_port = 25
; For Win32 only.
sendmail_from = [email protected]
と記述しています。
 このhuga.php はユーザ登録時に登録完了メールを自動送信するというようなもので、該当個所は
//メール送信処理
$mail_subject = "メンバ登録を完了しました";
$mail_body = "登録ありがとうございました。\n";
$mail_body.= "あなたのログインIDとパスワードは以下の通りです。\n";
$mail_body.= "ログインID : " . $_SESSION["user_id"] . "\n";
$mail_body.= "パスワード : " . $_SESSION["passwd1"] . "\n";
$mail_headers = "From: " . mb_encode_mimeheader("振り込め株式会社") . "<[email protected]>\r\n" ;
$mail_headers .= "Cc: " . $cc . "\r\n" ;
$mail_headers .= "Bcc: " . $bcc . "\r\n" ;
$mail_headers .= "Content-Type: text/plain; charset=ISO-2022-JP\r\n" ;
$mail_headers .= "Content-Transfer-Encoding: 7bit\r\n" ;
$mail_returnpath = "[email protected]"; //エラー返送メールの受取
mb_send_mail($_SESSION["mail"], $mail_subject, $mail_body, $mail_headers, "-f".$mail_returnpath); ← line 246
です。"振り込め株式会社" というのは創作です。
 ちなみにサーバにFTP 転送すれば問題なく動作します。
045244705/02/19 14:31:49ID:???
 つづきです。

 > Samba入れてWindows共有しろ・・・・
 一番先にそうしようと思っていたのです。
 Samba は導入済みで運用もしているのですが、
その共有ディレクトリはWebDAV でも見えるようにACLアクセス制御を
設定しています。
 で、クライアント(win2000)にapache1.3 のドキュメントルートを
共有ディレクトリ内に変更したのですけど、何故か全く見えない
(だったと思います、当時の記憶がおぼろげ)。
ん゛〜分からん、ということでほったらかしにしていました。
 win2000 にapache_1.3.xx-win32-x86-no_src.exe からインストールした
apache はwindowsログインしているユーザアカウントではなくて、
nobody とかでドキュメントルートにアクセスするのですかね?
windowsログインしているユーザアカウントと同名のアカウントは
ACLアクセスの対象にしていて、ファイルサーバ的には問題なく
動作しているのですけど。
045344705/02/19 14:41:27ID:???
> 450

php.ini の[mbstring]の各ディレクティブはどうなっていますでしょう?
mbstring.http_input = auto
mbstring.detect_order = auto
などに設定して、webサーバを再読込した後でも文字化けしますか?
045445005/02/19 15:15:02ID:???
すみません、PHPの知識は皆無でして……
php.iniとは何処にあるものなんでしょうか?
0455nobodyさん05/02/19 15:21:21ID:???
以下の流れでUndefined index: key($id)というエラーが出ているのですが、
$box[$id]は正しく表示されています。通常変数がセットされていない時に
出力されるエラーだと想うのですが他にはどのような状況で表示されて
しまうのでしょうか?。

$box['hoge'] = '123456789';
$sql = mysql_fetch_assoc($result);
$uid = $sql['uid'];
echo $box[$id];



>>450
テキストファイルをrequireしているというのが良くわからないけど
requireしているファイルの文字コードは確かめてる?
045645005/02/19 15:24:30ID:???
文字コードはUTF-8です。
さきほどGOOGLEで調べてみたんですが、
Shift_JISかEUC-JPじゃないといけないんでしょうか?
045745005/02/19 16:16:00ID:???
Shift_JISとEUC-JPでも試したんですが、やはり駄目でした。
読み込んだHTMLファイルに直接アクセスして見たんですが、
そこでは普通に表示されているのに、requireした先では、
文字化けしてしまいます。
xreaを使っているんですが、php.iniの設定などを弄ることは
出来るのでしょうか?
0458nobodyさん05/02/19 16:21:35ID:???
>>457
xrea固有のことはxreaのサポート掲示板で訊くのが筋(近道)。
確かサーバモジュール版とcgi版の両方が使えるような環境だったと思うので
変更が可能なら、それぞれ設定が違うやり方になる筈。
045944705/02/19 16:33:00ID:???
>>450 さん
xrea って、レンタルサーバのことですね。
そのサーバでの設定がどうなっているかですね。
php の内部コードがどのエンコードで動いているかとか、
その他もろもろの固有情報を集めないと答えられないと
思います。
>>458さんのおっしゃる通りですね。

ワタシのくだらねぇ質問は流れていってしまったのかなぁ・・・
046045005/02/19 16:41:42ID:???
わかりました。
質問に答えてくれてどうも有難う御座いました。
0461nobodyさん05/02/19 16:43:09ID:???
>>459
postfix側でリレーの許可を出してphp.iniを設定すればいい
踏み台にされるなよ
046244705/02/19 16:56:54ID:???
>>461さん
リレー防止関係ですか・・・
「メインテナンスのため、現在メール受信及びユーザ登録はできません」と
ページを更新したので、ルータのメール関係のポートを閉じて
LAN内で実験してみます。
うまくいってもいかなくてもまた報告に来ます。
0463nobodyさん05/02/19 17:13:05ID:???
>>447
サーバの設定もろくに出来ないくせに自宅サーバ立てるなよ。
踏み台にされたら周りも迷惑なんだぞ。
046444705/02/19 17:31:29ID:???
>>461さん
以下の不正中継防止及びsmtpAuth関係全てコメントアウトしてLAN内で
実験してみましたが、同じエラー表示が出ますね。
はぁ・・・。
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
allow_percent_hack = yes
swap_bangpath = yes
allow_untrusted_routing = no
smtpd_client_restrictions = permit_mynetworks, reject_rbl_client, relays.ordb.org, reject_invalid_hostname, reject_unknown_client, permit
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, reject_unknown_client, permit
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_sender_login_mismatch, check_relay_domains
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_etrn_restrictions = permit_mynetworks, reject_invalid_hostname
smtpd_use_tls = yes
smtpd_tls_cert_file = /usr/local/ここは内緒
smtpd_tls_key_file = /usr/local/ここは内緒
smtpd_tls_loglevel = 1
smtpd_tls_session_cache_database = sdbm:/etc/postfix/smtpd_scache
tls_random_source = dev:/dev/urandom
virtual_maps = hash:/etc/postfix/virtual

>>463さん
周りも迷惑というのは全くその通りです。
ですから、LAN内で実験すると書いたじゃないですか。
幾種類かの不正中継防止に関する試験はクリアしていますし、
上記のディレクティブではかなり細かく設定しているつもりですが、ダメですかね?
0465nobodyさん05/02/19 17:44:10ID:???
SMTP鯖にはアクセスできてるわけだし、なんか別のアプローチは考えられないですかね
0466nobodyさん05/02/19 18:11:11ID:???
>>464
何もわかってないな・・・
posrfixを勉強しなおした方が良いよ
エラーログも見ろ
板も移動した方が良い
046744705/02/19 18:52:29ID:???
サーバに転送すれば動作したのでphp 側の問題と思い込んでエラーログも見ていませんでした。
ログは以下です。
192.168.11.yy はクライアント(win2000)のローカルIPです。
client01.example.jp はクライアント(win2000)のローカル内向きDNS上の名前ですね。

connect from client01.example.jp[192.168.11.yy]
56FF7807C69: client=client01.example.jp[192.168.11.yy]
warning: Illegal address syntax from client01.example.jp[192.168.11.yy] in RCPT command:
disconnect from client01.example.jp[192.168.11.yy]

「 Illegal address syntax RCPT command 」でぐぐるとぞろぞろ出てくるので明日丹念に見直そうと思います。
私用で外出しますし、php からそれてしまっているのでこのスレでの私のくだらねぇ質問は一時終了に
しようと思います。

>>466さん
posrfix は勉強したくないけど、postfix のsmtpd.c とか見直した方がいいのかもしれません。私。
0468nobodyさん05/02/19 19:31:29ID:1PmY20I2
Postgresをpg_hda.confで各DBにアクセス制限をかけているのですが、
phpPgAdminでどれか一つのDBへアクセスできると、他のDBにも
アクセスできるようになってしまいます。

各DBを完全に独立させるのはどのような設定を行えばよいのでしょうか。
ご教示いただけますと助かります。
0469nobodyさん05/02/19 22:40:47ID:J52hsPlw
中国人のメール登録.cnを拒否りたいのですが、
if (ereg("\.cn", $email))
こうすると、
[email protected] も拒否られてしまいます。

解決方法をきぼんうでございます
0470nobodyさん05/02/19 23:12:50ID:???
>>469
正規表現を \.cn にすると、文字列のどっかで .cnが現れた場合にtrueになる。
君がやりたいのは文字列の「終わり」が .cn になるものなので、
マニュアルの「パターン構文」を参照してそういう風に作る必要がある。
ttp://jp.php.net/manual/ja/pcre.pattern.syntax.php
ここに載ってるやつくらい身に付けていないと後々苦労するよ。
0471nobodyさん05/02/19 23:52:30ID:bvx2N1A1
pearのCache Liteをレンタルサーバにインストールして自作スクリプトで使いたいのですが
いまいち理解が乏しくうまくいきません。そもそもpear自体インストールするというより置くだけ?
な感じで、あら?
0472nobodyさん05/02/20 00:48:05ID:???
Parse error: parse error, unexpected T_STRING
これはどう言う意味でしょうか?
requireで外部phpファイルを読み込もうとしたら出てきました。
0473nobodyさん05/02/20 01:03:46ID:???
>>472
PHPファイルの実行時には、PHPの中の人がPHPファイルの中を読んで行きますが、
その読み方ってのは日本語の場合の主語・述語・名詞・形容詞みたいな感じで解釈していきます。
その時に日本語としておかしい場合にParse errorを出して読むのを止めます。
主語・述語・名詞・形容詞のようなパーツを トークンといいます。
ttp://www.php.net/manual/ja/tokens.php
今の場合だとT_STRINGというトークンが来ないはずなのに出てきたってことになります。
表でT_STRINGを探すと、、、説明が無いですね。
仕方ないのでトークン名からSTRING=文字列(''や""で囲った文字列等)と推測しましょう。
0474nobodyさん05/02/20 05:26:00ID:???
<!--#config timefmt="%j" --> これだと1月1日から現在までの日数になるのですが
自分で特定の日にちに設定できませんか?
2月3日とか9月30日とか。
0475nobodyさん05/02/20 05:29:54ID:???
>>474
それはPHP言語じゃなくて、SSI言語(?)ですよ。
この板だとSSIを扱えそうなスレは 初心者の質問スレかな。
「SSI config timefmt」でググると、こんなページもあります。
ttp://cocohome.hp.infoseek.co.jp/ssi/timefmt.shtml
0476nobodyさん05/02/20 05:32:24ID:???
すいませんです。 そこよく読んでみます。
0477nobodyさん05/02/20 12:10:38ID:???
$x = $_SERVER["HTTP_USER_AGENT"];
if ( ereg ("DoCoMo", $x)){
echo $x;
exit;
} else {
echo "携帯端末以外 $x でしょ?ココは携帯用サイトです。";
exit;
}
あの〜携帯サイトを作りたいんですが、
上記を試すとUndefined index: HTTP_USER_AGENTって出るんです。未定義?
コレではダメなのでしょうか?それともphp.iniの何かを弄らないといけないのでしょうか?
ちなみにwake.php等で保存してindex.phpに<?php include('wake.php'); ?>等と挿入するとそれ以降が表示されなくなります。
なぜでしょうか?教えてください。
0478nobodyさん05/02/20 12:34:44ID:???
<?php echo $_SERVER['HTTP_USER_AGENT'] ?>
だけ書いたPHPで試してみたら?これでごるぁされたらgetenv使うとか

関係ないけど、
eregよりpregの方が速いらしい
exitは条件分岐から抜けた後に書けば1つにまとめられる
0479nobodyさん05/02/20 12:40:55ID:TyCJwqCV
スライドショーのような感じでリンクを貼らせたいので
$page = ($_GET['page']) ? $_GET['page']:
$next = sprintf("<a href=\"%s?page=%s\">NEXT</a> ", $PHP_SELF,$page+1);
$back = sprintf("<a href=\"%s?page=%s\">BACK</a> ", $PHP_SELF,$page-1);
print "$back $next";
と書いたらBACKしか出力されませんでした。
これを「BACK NEXT」のように二つ一緒に出力するにはどう書いたらよいのでしょうか?
0480nobodyさん05/02/20 13:03:09ID:VBegR7N/
>>479
$next = の行が三項演算子のfalse側になってる
$page = ($_GET['page']) ? $_GET['page'] : 1;
$next = sprintf("<a href=\"%s?page=%s\">NEXT</a> ", $PHP_SELF,$page+1);
$back = sprintf("<a href=\"%s?page=%s\">BACK</a> ", $PHP_SELF,$page-1);
print "$back $next";

ただ、これだとおかしな事になるのが目に見えてるから
if( $page > 1 ){
$back = sprintf("<a href=\"%s?page=%s\">BACK</a> ", $PHP_SELF,$page-1);
}
みたいな感じにしといた方がいいと思う
>>479のままのソースで $next = の行と $back = の行を入れ替えれば同じ事出来るけど、
読みにくくなるから止めといた方がいい
0481nobodyさん05/02/20 15:00:34ID:???
session_register("abc")
と
$_SESSION['abc']
ってまったく別物ですか?
048248105/02/20 15:32:40ID:???
すみません補足します。
私の持っているマニュアルではsession_register()を使って変数名を登録するとあるのですが、
$_SESSION['']でいきなり変数を入れれます。
session_register()の使い方間違っていますでしょうか?
0483nobodyさん05/02/20 15:52:58ID:HD8VrkSM
フォームから送られるデータって同じ名前の物は一つにまとめられて
$_REQUESTに入っちゃうけど、加工前のデータはFORMの上の方から
順番になって送られてくるんでしょうか?それとも順序はでたらめ?
0484nobodyさん05/02/20 16:14:06ID:???
>>482
公式のマニュアルにそのことについて書いてありますよ。

>>483
html4の仕様では特に規定されていないので、どんな順番でくるか不定と考えた方がよいでしょう。
本スレでも言われてたことだけど、順序にこだわるなら自分で制御(sort)した方がいいですよ。
0485nobodyさん05/02/20 16:14:46ID:???
>>481
最新のマニュアル
http://jp.php.net/manual/ja

chm版
>>116
048648205/02/20 16:36:32ID:???
>>484
ありがとうございます。
こんなとこでつまづくのは私くらいかと思いますが一応
>$_SESSIONの場合、 session_register(), session_unregister(), session_is_registered()は不要です
とのことです。
ありがとうございまいした。
0487nobodyさん05/02/20 16:37:59ID:buvb0b1/
XOOPSって登録した情報は安全なのですか?
0488nobodyさん05/02/20 16:49:51ID:???
オイラのサイトでもxoopsを使ってますが安全なのでクレジット番号や住民登録番号を必ず入力してください。
0489nobodyさん05/02/20 17:01:09ID:???
PHPでクラス使う利便性って少ないな。
わざわざ->とか使わんといかんし、thisつかうのにも$thisとかダサすぎ。コーディング速度が明らかに落ちる。
広く使えるPHP4だとインタフェースはおろかprivateやpublicの指定もできないし

で、クラス使って管理して楽になるようなものって何かある?
0490nobodyさん05/02/20 17:06:23ID:/OfJuMCV
if文て下記のように省略していいもんなの?
---------------------
if ($a == "hoge"){
$b = "fuge";
}else{
$b = "muge";
}
---------------------
↓省略?
---------------------
$b = ($a == "hoge") ? "fuge" : "muge";
---------------------
0491nobodyさん05/02/20 17:19:05ID:???
三項演算子はif文の省略と考える必要はないよ。
0492nobodyさん05/02/20 17:26:47ID:VBegR7N/
同じ結果が得られるなら使う使わないは自由でしょ。
>>490の内容なら普通に三項演算子で書いたほうが早いけど、
使うと見難くなるようなところで無理使ったり、
似たような判断処理でifと三項演算子混在させて使ったりするとわけわからんソースになる事必至。
0493nobodyさん05/02/20 17:36:54ID:???
>>489
クラス使うかどうかはスタイルの問題でしょ。

とはいえ、他人のプログラムを読むならまっとうなOOPに則って書いてあるとホッとする。
OOPじゃないと、相当ドキュメントとか、コメントがちゃんとしてないと苦しい。

て訳で、他人のソースを読むときに楽になる。
0494nobodyさん05/02/20 17:43:32ID:???
問題は参考にできるようなまっとうなOOPで書かれたソースが少ないことだな。
0495nobodyさん05/02/20 17:44:51ID:???
>490,491
有難うございます。

三項演算子なんぞ知らんかった…。
049648305/02/20 17:54:37ID:???
>>484
うーん、そうですか。
仕様で決められてないのならブラウザに依存してるってことだから
危険ですね。ありがとうございました。
0497nobodyさん05/02/20 21:32:47ID:???
htmlentitiesでHTMLエンティティされた文字を戻す関数はないのでしょうか?
049849705/02/20 21:41:44ID:???
自己レス
関数はないけど作れるんですね;
0499nobodyさん05/02/20 23:29:28ID:???
別にOOPじゃないと掛けない言語じゃないんだから
全部をOOPに書こうとしなくてもいいんじゃない。
0500nobodyさん05/02/21 00:16:31ID:???
classを使わないと関数や変数でごちゃごちゃになると想うけどなぁ
eacceleratorのキャッシュファイルが350kbを越えた!
0501nobodyさん05/02/21 01:17:47ID:???
ダメな奴は何をやってもダメ
0502nobodyさん05/02/21 01:19:18ID:???
クラス使うときは、ある機能をその場で一気に使いたいときに重宝する。
俺はCookieとMySQLのクラスを作ってるよ。

もちろん再利用性が重要。
0503nobodyさん05/02/21 02:21:36ID:???
関数いっぱい作って再利用するとき関数名がかぶった経験があるから
今はクラス使ってる派
0504nobodyさん05/02/21 02:32:44ID:???
こうするとパースエラー シンタックスエラー アンエクスペクテッドT_STRINGになってしまいます。どこがおかしいですか?エラーになる行は
$fp = @fopen("hoge.dat","r+");
です
Apache モジュールPHP5.0.3 WinXP SJIS
CGIのPHP4でも同じです
0505nobodyさん05/02/21 02:55:50ID:???
>>504
>>473の説明を流用すると、
その行で出てくるはずの無い文字列がでてきたってことだから、
それより前の行で " で文字列を開始したまま閉じてない、とかじゃないの?
hoge.dat の直前の " で文字列終端になって、
次にきた hoge.datが来る筈の無い文字列なのでエラーつーことで。
0506nobodyさん05/02/21 03:01:27ID:???
>>504
てかエラーメッセージは見えるとまずい情報以外はそのまま載せれ
0507nobodyさん05/02/21 03:04:50ID:???
>>504
内部エンコーディングでSJISが使えるPHP5って何処から入手したの?
050850405/02/21 11:37:35ID:???
505
1行目は<HTML><BODY>
2行目は<?php

Parse error : Syntax error, unexpected T_STRING in .php on line 3
となってしまいます

SJISはEUCの間違いでした
0509nobodyさん05/02/21 11:42:17ID:???
エラー行の前のほうで、ダブルクオートを閉じ忘れているとか
0510nobodyさん05/02/21 11:47:06ID:???
>>508
とりあえず、3行目までソース貼ってくれ
0511nobodyさん05/02/21 11:47:32ID:???
携帯電話のリファラーを取る方法ってありませんか?
_SERVER['HTTP_REFERER']だとリファラー取れないんで
なんとかならないですかね?
0512全角スペースor文字でとほほ05/02/21 11:48:07ID:???
>>508
<html><body>
</body></html>
次に
<html><body>
<?php
?>
</body></html>
と一行づつ増やしてどこでエラーがでるかやってみそ。
それぐらいのこと、やってから質問しる。
051350405/02/21 13:05:33ID:???
ソースは
<HEAD><BODY>
<?php
$fp = @fopen("hoge.dat","r+");
処理
?>
</BODY></HTML>

全角文字はPHP内にはありませんでした。
また、ソースを改造してもエラーは必ず$fp = @fopen("hoge.dat","r+");のある行で出てきました
0514nobodyさん05/02/21 13:18:00ID:???
>>513
他のファイルからインクルードされてるってことはないよね?
0515nobodyさん05/02/21 13:28:14ID:hTSJdz6/
phpinfo で
Server API Apache 2.0 Handler
となっているのはモジュール版ですか?
0516nobodyさん05/02/21 14:32:04ID:???
>>515
そういうこった
0517nobodyさん05/02/21 14:33:58ID:???
>>513
ダブルクォーテーションと思ったらシングルクォーテーション2つだったとか。
"
''
0518nobodyさん05/02/21 14:42:48ID:???
@ついてるしエラーはその行以外でしょうね。
0519nobodyさん05/02/21 15:09:30ID:???
普通の無料レンタルサーバーで個人サイトを作ったんだが。
全てのページをPHP化するというのは無謀か?
負荷とか大丈夫か?
0520nobodyさん05/02/21 15:35:23ID:???
文字列の中の ##XXX## という箇所を全て空白に置き換えたいんですけど、
正規表現の記述がわからず
正常に置き換えられません。

$reg = '##.*##';
ereg_replace($reg, $key, $str)

これだと最初の##から最後の## まで全てが空白になってしまいます。
どなたかアドバイスください。
■ このスレッドは過去ログ倉庫に格納されています