【PHP】下らねぇ質問はここに書き込みやがれ 64
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1201425479/ ◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
【簡易FAQ】 (1/3)
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
【簡易FAQ】 (2/3)
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
【簡易FAQ】 (3/3) 21. 画像処理一般 or GDの限界 → ImageMagick(PECLのやつ or シェルから実行) 22. 画像・音・動画はファイルで保存?DBに保存? → 好きにしてください
, ─=、─-=ニL」_ /二ニ=‐-=ニ、\ ,> ,ムイ/ .}、 ヽ. ヽ ァ′ _人_人_人_人_人_人_ / / ノ,ト、 ,ィ ,ハ. ∨ト、 ) (\ __ ∧ ;' ,ノlノj,ィ込ァ`! ,), V \ ) 下らねぇ質問は . ,f\孑=ァ),__ | ! i,ァ示. ノ'ノ ゞr'リ リ ! | \) 〈ヾ、ム,. 》 :|| \ |!、ト、ト弋リ 、 l ,ノ※ ) ここに書き込みやがれ! . `ー'─(,ムイ' \ ,. -'‐ \\ ア`ヽ _ムイi ! ) \ ` 7マ'7 | ヽ.≧ ゝ._ノ ,: ィ´|.※ | ) ですぅ! . ` , i ,ハ} |.※ | >x、. イ ! i|. ! ) `7ぇxl/ , ! i 《 ,≫vヘ.)、i), ! ⌒Y⌒Y⌒Y⌒Y⌒Y / / |_ i.※ i. 《|{,//iヘ.∨), ∨ ,r- 、 / / ! )`i !, 《!_/i |《ヘ.∨), ∨ ,Xヘ. } / ム._. !/ .|.※ |ヘ. 《 i | 《.ヘ.∨ヘ,.マ^ヽヽノ ‘ーx, i ! |. | ',. 《. ! i 《. | | メ.}i;xr≦ ∨ ヽ. | |.※ | ∨《 Li 《 L! :|. | | \. ∨ |. | 〈 》〜〜〜''〜 | i ! \/ .!.※ ! ,/」Lニ=- |!>X<| :| i ! // ¨¨¨’ >厂 K >' :| |、 ,ノ
>>1 死ね。テンプレ変えるしろくでないやつ
>>1 が立てちゃったんだな
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1201425479/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
建て直すか?
2chのルール的にたてなおすのはマズイ。 とりあえずつかうべ。 トリップは嫌われるしそれだけで荒らしだすやついるから非推奨。
なんでそんなにIDのみに固執するんだ?
IDIDって煩い奴は煽りがしにくくなるからとしか見えないのだが
>>10 トリップ嫌われるっつーのは変なコテが沸く所にあるんだろ
一時的なトリップは識別として使えるんだから問題ないと思うが?
それに変なコテ沸けばNG設定で終わりだし
>>11 だな。IDのが手間かからんし、ageるからメ欄を空けたIDでいいとは思うが
別にトリップ使って聞くのはなんら問題ない。
それより質問者がちゃんとわかるほうが大事。
11はバカだな。今までのスレの流れも解らんのか。 こういう奴には何を言っても無駄だな…。
IDに固執する人のレスってまともなレスが無いんだけど もうちょっと何でトリップがダメなのか言ってくれ
別に前スレでトリップでもいいって言ってんじゃないか もう少し煽り耐性をつけてください
16 :
nobodyさん :2008/02/10(日) 03:29:25 ID:V6SpMkY1
ある文字がカタカナかどうか調べる方法を教えて下さい コードはUTF-8です
ごめん。変換されてなかったら…だなw 素直に mb_ereg 使った方がいいかも
それはグッドアイデアですね 正規表現でやるより速そう ありがとうございました
>>18 確かによく考えたらシンプルなロジックでは出来なそうですね
むーん
文字のコード範囲調べた方が速い
php カタカナ判定 でググッて自分で検証しろ これぐらいやってから質問したほうが自分のためだよ
UTF-8のカタカナ (\xe3(\x82|\x83)[\x80-\xbf])*
24 :
nobodyさん :2008/02/10(日) 19:37:02 ID:XCnCYEX+
PEAR Mailがうまく動作せず、ログも吐いてくれないので困っています。助けてください。
OS:Red Hat系,SMTPサーバ:Postfix
PHPのソース
<?php
require_once("Mail.php");
$params = array(
"host" => "localhost",
"port" => 25,
"auth" => false,
);
$mailObject = Mail::factory("smtp", $params);
$recipients = "
[email protected] ";
$headers = array(
"To" => "to",
"From" => "from",
"Subject" => "Test Mail"
);
$body = "This is test mail";
$mailObject -> send($recipients, $headers, $body);
?>
require自体はうまくいきました。25番ポートが開放されていることも確認しました。
恐らく$paramsのhost名が間違っているかPostfixの設定がダメなのか、のどちらかだと思われます。
PHPファイルとpostfixが同一サーバ内だからhost=localhostでいけると思ったのですが、main.cfのhostnameパラメで指定したFQDN
に合わせる必要があるのでしょうか。それとも他の設定ミス・・・?
>>24 >PEAR Mailがうまく動作せず
っておい
>>1 の質問する時の注意の3番目を1000回復唱してから前スレに書き込め
で、前スレでマルチ死ねって言われてスルーかなw
テンプレ見て思ったんだが、画像を保存する場合にファイルかDBか自由って書いてあったが、 プロとしてやるならソレはおかしい。 動的な画像もファイルに保存するというのは、少し考えればまずいってことが分かるはずだが。
29 :
nobodyさん :2008/02/11(月) 04:10:06 ID:smM9I7ZN
pearが使えないのでphp5.2から再インストールしていたら、mbstringが使えなくなりました。 症状としてはphpinfoでmbstring関連のワードが出てきませんし、mb_language() でもFatal errorになってしまいます。 php.iniは;外したりなど行なってますし、以前使っていたphp5のphp.iniバックアップも試してみました。 また、以前は全く問題無く使えていました。ただ、php5だったのは確かですが、バージョンまでは分かりません。 使用OS:win98、Apeche2です。 WINDOWSフォルダ内のphp.iniは色んなサイトのを10種類くらい試してみました。現在は下記のようになっています。 extension=php_mbstring.dll mbstring.language = Japanese mbstring.internal_encoding = UTF-8 などなど。 mysqlもinfoにないです。extension=php_mysql.dllコメントアウト済み。 他にチェックすべき点はありますでしょうか?
違う場所のphp.ini読んでる
31 :
29 :2008/02/11(月) 04:22:13 ID:???
>>30 ありがとうございます。
バックアップ用php.iniなど検索して、windowsフォルダ以外全て消してみましたがダメでした。
それだけじゃ解らんな。 1. 他に指定してる extension との絡み 2. php -i | grep Load での php.ini の読まれる所 3. extension_dir とか、色々考えられるな。その程度の環境晒しじゃ何とも言いようがない。
>3. extension_dir パスを切るか、dllあるフォルダに移動するだけで正しく動いたらこれだろうな。
php.ini ファイルを読み込んでいないか疑っているのなら、まずはphpinfo の Configuration File (php.ini) Path を確認してみては? あと apache経由と直に実行するのでは、使用される php.iniが違ったりするから注意。 具体的な情報もってるわけじゃないけど OSがwin98ってのは気になるなぁ。
以下のサイトにランダムな文字列を生成するサンプルが載っているのですが、rand(48,120);としているところが何故rand(48,122);じゃないのかが解りません。 これはサンプルが間違っているんでしょうか。
質問です。 $abc = $_POST['abc']; $edf = $_POST['edf']; $stock = array ($abc,$edf); $fp = fopen('data.csv','a'); fputcsv($fp, $stock); fclose($fp); フォームから投稿された変数abcとedfを配列stockに格納し、 csvファイルに書き出したいのですが、 変数には日本語が入るためその中身を" "で括って保存したい場合、 もっともシンプルに行うにはどのような処理を追加したらいいでしょうか? 正規表現などでそれぞれの変数の文字列を置換しても出来ると思うのですが、 よろしくお願いします。
38 :
nobodyさん :2008/02/11(月) 12:33:18 ID:mbEbK9iH
すみません、ID出し忘れです。
>>35 文字コードに対応するの出すんなら122のが正しいだろうな。
それに記号だったら再計算とかかなり無駄なことしてる
>>36 のは。
0-9A-Za-zだけのテーブル作ってそこから拾えばいいのに。
>>37 こういうやり方はダメなの?
$fp = fopen('data.csv','a');
$line = '"' . $abc . '","' . $def . '"' . "\n";
fwrite($fp,$line);
fclose($fp);
41 :
29 :2008/02/11(月) 14:31:04 ID:???
>>32-34 ありがとうございます。今の状態は
http.conf に PHPIniDir "C:/php"で、php.iniをc:\phpに移動(他は全部削除)
Configuration File (php.ini) Path no value←これは不味いですか?Loaded Configuration File C:\php\php.ini
C:\>php -i | grep Load
File STDIN:
Loaded Configuration File => C:\php\php.ini
php.iniは
default_charset = UTF-8
extension_dir = "c:/php/ext" (php/ext内に下記dllファイル確認しました)
extension=php_mbstring.dll
extension=php_mysql.dll
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
ひょっとしてその iniファイルってバージョンアップ前のを修正して使ってる? 自分は、5.0 -> 5.2でそれをやったときに動作しなかった記憶がある。(原因は知らない)
43 :
37 :2008/02/11(月) 14:51:02 ID:mbEbK9iH
>>40 ありがとうございます。
fputcsvを用いない場合はそれで希望通りの表示がされるようですね。
ただ配列の1変数として変換を行いたい場合の処理も教えて頂けると助かります。
その後色々試してみたのですが、
$abc = '"'.$_POST['abc'].'"'; //abcに「あ」を送信した場合
この時、$abcに"""あ"""が入ってしまうのですがこれは何故でしょうか。
'"'.で文字列を付加したことによって外側の""がつくようなのですが。
実際に文字列を付加しなくても、外側を""で括れる方法などありましたらお願いします。
>>43 foreachやらarray_mapやら使えばいくらでも好きなようにできるんじゃね
>>41 php.ini の記述はほんとに *それだけ* か?
php_mbstring.dll の前に違う extension の指定とかないのか?
>>43 fputcsv()はフィールド値が括る必要がある場合は勝手に括る
47 :
29 :2008/02/11(月) 15:27:44 ID:???
>>42 今は新しい方のiniファイルを使ってます。
>>45 extension=ほにゃららってところですよね?
extension=php_mbstring.dll
extension=php_mysql.dll
以外は全て「;」がついてます。
ところで、今mbstring使えるようになりました。
状況としては最初からやりなおそうと思って、Windows内php5ts.dllを削除しただけです。
phpのインストールサイトに、「php5ts.dll」をwindowsにコピペとありますが、まだしていません。でもphp infoは表示されます。
これって大丈夫なのでしょうか?いちおう今からコピペ&再起動しますが…
また、Configure Command cscript /nologo configure.js "--enable-snapshot-build" "--with-gd=shared"
となっているのですが、gdがあるのは普通ですか?あと、本当にmbstringが使える場合、上記にmbstringって出てきませんか?
昨日ググってたら、Configure Commandには出るのに、mbstring項目がないって書いてあるサイトがあったような気がします。
48 :
29 :2008/02/11(月) 15:45:56 ID:???
色々と不安ですが、使えるっぽいです。phpinfoは相変わらずです。今からまたググってみます。 php自体はビクつきながら、このまま使ってみます。皆様、色々とありがとうございました。
49 :
37 :2008/02/11(月) 17:17:08 ID:mbEbK9iH
>>46 色々試したみたところ、変数内に"か半角スペースのある場合のみ自動的に"で括るようですね。
取り合えず全ての変数に$abc." "と半角スペースを付加して対応することにします。
ありがとうございました。
>>47 もういらんレスかもしれんが、dllって普通system32に入れるんじゃないの?
んなもん用途しだい。 特定のアプリからしか使わないなら、アプリのフォルダでいい。
DLL Hellって聞いたことあるよね
質問です。windows版のPHPにAPCをインストールして 動作させるにはどうすればいいのでしょうか。 OS:windows xp、PHPのバージョン:5.2.5 目的:ファイルのアップロードの進捗を表示できるようにしたい extensionディレクトリにphp_apc.dllが既にあったのでラッキー、 後はphp.iniだけと思ってextension=php_apc.dllのコメントアウトをはずして apc.rfc1867 = Onを書き込み、apacheを再起動してサンプルを動かすと なぜかエラーでapacheが終了。サンプル自体は問題なさそうなので APCがうまくインストールできてないのが原因だと思うのですが・・・
おいおいカーネルぶっ壊れたじゃねーか。
>>50 使うのだけ入れることはあるけど、PHPのはえらい数あるからバージョン管理ややこしくなるし
extに入ったままにしといたほうが更新したときに勝手に最新バージョンになるんじゃないかい。
57 :
nobodyさん :2008/02/11(月) 22:12:41 ID:bpntg1wU
PHP5.2って$_GETの$Keyword取得できないんですか?
58 :
nobodyさん :2008/02/11(月) 22:47:39 ID:bpntg1wU
できたのですが、 $_GET['Keyword'] て、入力されたキーワードは $Keywordで表示できるんじゃないんですか? $Keyword= $_GET['Keyword']; とすれば表示されたからいいのですが 5時間悩みました php5.2です
>>58 前はできたけど今はiniいじらないとできないようになった。
セキュリティ上の都合かな。
ID:???ってどうやるの?
61 :
nobodyさん :2008/02/12(火) 00:07:29 ID:wvmjAnme
$lockfp = fopen(ロックファイル名,'w'); while(!flock($lockfp, LOCK_EX)){ usleep(250000); } $result = mysql_query("SELECT COUNT(no) as count FROM テーブル名"); if (!$result) { die(mysql_error()); } $row = mysql_fetch_assoc($result); $i = $row['count']; $i++; $sql = "INSERT INTO $tselect (no, 内容) VALUES ('$i', '内容')"; $result_flag = mysql_query($sql); if (!$result_flag) { die(mysql_error()); } flock($lockfp, LOCK_UN); fclose($lockfp); これで$iが重複することは無いのか教えてください
ダメすぐるwww
63 :
nobodyさん :2008/02/12(火) 00:18:43 ID:wvmjAnme
まったく分からないのでどうかご教授お願いします
>>63 insertする$iが存在しないか確認しないと重複するかどうかわかるわけないし
ダメっていうのはすべてが問題外ってことやろ
質問する前にオナニーしておちつけ
65 :
nobodyさん :2008/02/12(火) 00:30:37 ID:wvmjAnme
ああ、すまない 説明不足だった iは1から連番でつけていてcountで取得した番号=最終行という形になってる データの削除はしたくないからテーブルにフラグをつけてデータが有効か無効か判断してるから番号の欠落とかはなしと考えてる
ごめん、”iは”じゃなくてテーブルの番号項目ということで
>>61 あまりPHPに詳しいわけじゃないんだが、$tselectって何?
PHPでは何か意味のある変数?
68 :
nobodyさん :2008/02/12(火) 00:41:37 ID:wvmjAnme
置き換え忘れただけの変数だ テーブル名ということでお願いします
そんなコードを晒すなよ…。
なぜDBでファイルロック・・・
あらあら、うふふ
72 :
nobodyさん :2008/02/12(火) 01:07:30 ID:wvmjAnme
データベースに追加処理してるんだが データの行数取得 ↓ データの追加 という形でやってるのだが 同時にアクセスがあった場合取得と追加のタイミングで iが10とすると 1が10という数値を取得して11を追加する そのときに2も10という数字を読んで同じく11を追加することになるんじゃないのか? そこでファイルで排他ロックをして終わったらロック解除で自分がロックできない場合は処理を中断というのを想像してたんだが
テーブルのcountにプライマリキーかユニーク属性つければ重複はないよ
あぁすまん設定する所は $tselectテーブルのnoにたいしてな
てか、そういうのはトリガとかストアドでやると思うけどなぁ
mysqlのバージョン書いてないからトリガー等に関しては何ともいえないな
普通serial型使うだろ。
ALTER TABLE `テーブル` ADD PRIMARY KEY ( `no` )でSQLのほうでの重複は大丈夫になったとは思うんだけど PHP側でINSERTでリトライさせるには普通に行数取得からINSERTをwhileループでいいのかな?
というかデータベースの基本的な使い方がわかっていない気がする
しかし条件によっては無限ループになりそうなwhileとかよく使うねw
insertをwhile・・・あらあら
82 :
nobodyさん :2008/02/12(火) 01:31:59 ID:wvmjAnme
すまない最近触り始めたの最近だからまだまだ分からないことばかりなんだ… もう一度調べなおしてから書き直してみる いろいろアドバイスどうもです
>>82 がんばってください。というかIDがなんか惜しい
84 :
nobodyさん :2008/02/12(火) 02:09:52 ID:fBU5wm/g
質問します file_exists()を使ってるんですけど、絶対に存在してるファイルを対象に してもfalseが返ってきます マニュアル見たらセーフモードが関連してるというのでそこも確認したら OFFになっていて、問題なさそうです 何が原因でしょうか?
具体的にどういうコード書いたのさ それ出したほうが下手に説明するより早い。
>>84 絶対に間違っていないなら、PHPが動くはず
つまりなにかおかしいか間違っているんだよ
試しにソースと同じところにあるファイルとかで試してみたら?
あとはOSとか環境書くとさらによし。
88 :
84 :2008/02/12(火) 03:22:15 ID:fBU5wm/g
>>85-86 ありがとうございます
$theFile="../../../sample.jpg";
if(file_exists($theFile)){
echo "ファイルあったよ";
}else{
echo "ファイルなかった";
}
これだけです。 指定したファイルが存在してるのは確認済みです。
>>88 ソースと同じ場所にsample.jpgを置いて。
$theFile="sample.jpg";
で試して味噌
mb_strcutってバグってね? echo mb_strcut("あいう",0,2,"UTF-8"); →何も表示されない mb_substrだったら正常に動作した php5.2.4だけど
92 :
nobodyさん :2008/02/12(火) 08:11:27 ID:S5CbnauF
array_uniqueの重複していた値の配列を取得したいのですが どうするのがいいですか?
array_diff
ごめん。こっちかもしれん array_intersect
95 :
nobodyさん :2008/02/12(火) 08:59:36 ID:uKoPznXF
Windowsでの絶対パス @ file:///c:/xampp/htdocs/Project/require.php A c:/xampp/htdocs/Project/require.php B c://xampp/htdocs/Project/require.php どれが一番正しいのでしょうか。 BだとSmartyのテンプレートディレクトリまでのパスでエラーが生じたので、 Aに直すとうまくいきました
>>95 dirname(__FILE__);
で表示されるものにあわせればOK
このスレは優しい人ばかりでだいすきです
98 :
nobodyさん :2008/02/12(火) 10:43:56 ID:uKoPznXF
>>96 有賀と御座います。
確認してみたところ、
C:\xampp\htdocs\Project
でした。
99 :
98 :2008/02/12(火) 10:59:27 ID:uKoPznXF
「有難う」の誤変換すみませんorz ところで、英数字の先頭のみを大文字にするような関数ってありませんでしたっけ・・・?
100 :
nobodyさん :2008/02/12(火) 11:00:52 ID:r62/Kn46
原因が分からないため、どこに投稿すれば分からなかったのですが、 何か手掛かりがつかめればと思い投稿しました。 phpでサイトを構築しているのですが、 アクセスログを見ると、不審なログが不定期に記録されています。 たとえば、/foo/index.phpにアクセスがあると、その直後に 数秒間隔で、/index.phpへのアクセスログが数件残ります。 全てのユーザーではなく、全体の数パーセントの人です。 裏でアクセスするようなajaxのような仕組みはありません。 プログラムのミスなのかどうかよく分からないのですが、 どこ当たりがおかしいと思われますでしょうか? 宜しくお願いします。
102 :
nobodyさん :2008/02/12(火) 11:14:50 ID:uKoPznXF
>>101 有難う御座います。
それでできました〜。
103 :
nobodyさん :2008/02/12(火) 12:10:44 ID:nhL1XBd5
レンタルサーバーを借りています。(さくらサーバー:スタンダード) 現在、PHP5が入ってます。 Tidy関数を使いたいと思っているのですが、PHP5の場合、 --With-tidy でコンパイルしたらOKとネットで情報を得たのですが、 いまいちやり方が分かりません。 telnetやSSH経由でサーバにログインして、コマンドを入力する訳ですが、 具体的にどのようなコマンド入力をすれば宜しいでしょうか?
>>103 共有サーバっしょ?
インストールはむりぽ
↑根本的に勘違いしてるなw
110 :
nobodyさん :2008/02/12(火) 16:17:18 ID:4oFdYGhc
質問です
<?php
header("Content-Type: text/plain; charset=Shift_JIS");
print"<a href="
http://www......jp ">サイトへ戻る</a>\r\n";
print"END\r\n";
?>
<a href=></a>がリンクにならないでそのまま
<a href="
http://www......jp ">サイトへ戻る</a>がページにでてきてしまします。
リンクできるようにするにはどうしたらいいですか?
112 :
nobodyさん :2008/02/12(火) 16:27:35 ID:4oFdYGhc
Content-Type: text/html; charset=Shift_JIS に、するとエラーになります
はなく? すまん。途中で押してしもた
違うみたいね。スマネ。
>>112 「エラーになります」
どのようなエラーが出るか書きましょうね
質問するときの常識です
117 :
nobodyさん :2008/02/12(火) 16:33:41 ID:rr+doGz+
>>110 ダブルコーテーションの中にダブルコーテーションがあるからじゃ?
PEARのAuthについて質問です。
document見てやったんだけれどもこれってHTTPの内容見られたら
結局パスワード奪われてダメなんじゃないかと思ったんだが
俺なんか見落としてるんでしょうか?
SSLこれって必要だよね?
>>117 よくわからんが、大事なデータはURL直下に置かないものなんだぜ
119 :
nobodyさん :2008/02/12(火) 16:36:38 ID:rr+doGz+
>>199 SSL使ってやったことないからわかんないけど、
Sessionでの認証を簡略化したものだと思ってるんだけど違うのかな
121 :
nobodyさん :2008/02/12(火) 16:39:10 ID:4oFdYGhc
>>121 じゃあPCで見てみろ
auでは正規なHTMLでないとページが表示されない
>>121 つうかheaderで出す意味が分からん
124 :
nobodyさん :2008/02/12(火) 16:45:38 ID:4oFdYGhc
携帯サイトなのでAUでみれなきゃ意味ないので。 headerのほかにどんな関数がありますか? phpが無知識なのでわかりません
>>110 これでいいと思うが?ヒアドキュメントとか覚えた方がいいよ
<?php
header("Content-Type: text/plain; charset=Shift_JIS");
?>
<html><body><a href="
http://www......jp ">サイトへ戻る</a>
END</body></html>
>>124 > 携帯サイトなのでAUでみれなきゃ意味ないので。
意味理解しろ厨房
PHPのデバッグは基本PCブラウザでするんだよ
それすらできないならPHPなんか触るな
あ”?よく見たら、ヘッダーオカシイじゃんw header("Content-Type: text/html; charset=Shift_JIS"); だな
>>127 ちょっと遅れてるから俺が説明しておく
Content-Typeをtext/htmlにしたところauで表示できない
↓
しかたなくtext/plainにするともちろんテキストなのでリンクが表示されない
↓
text/htmlにしてPCでエラー表示を確認しないといけないがそれをしない
こんな感じ
129 :
nobodyさん :2008/02/12(火) 16:50:39 ID:4oFdYGhc
なるほど 試してPCでみてみます
>>124 headerなんかで出さないでも、自分で書けばよくない?
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<head>
<body>
<?php
print "<a href=\"
http://www......jp\ ">サイトへ戻る</a>\r\n";
print "END\r\n";
?>
</body></html>
132 :
nobodyさん :2008/02/12(火) 16:59:49 ID:4oFdYGhc
PCはリンクつきました。AUはそのまんまを出力してしまいました。 130さんのをやってみます。
メンドクサイから全部HTMLで書いちゃえ
おそらく原因はauブラウザでサポートされていないHTMLの記述方法だと思うわ PHPだけでなくWebも初心者と見た まぁ、わかるんですがね
HDML端末でした、ってオチだったりして
136 :
130 :2008/02/12(火) 17:07:12 ID:???
>>130 </head>だった。
というか、そもそも本当にsjisで出力してる?
スクリプトの文字コードと併せて、要確認。
もしかして、headerで文字コード指定すると文字のエンコードも勝手に変わると思い込んでたりして
138 :
nobodyさん :2008/02/12(火) 17:14:47 ID:rr+doGz+
>>120 俺もSSL使ったことなくてイマイチ理解してないんだ。
PEARのAuth使ってやったことある人はどのように
認証画面を作成してるんでしょうか?
md5とかで暗号化しても結局その暗号化したデータ送られたらダメな気がするんですが。
139 :
nobodyさん :2008/02/12(火) 17:14:50 ID:4oFdYGhc
そのファイルがphpファイルだから <?php で始まって ?> で終わらなきゃ いけないですよね? いろいろやってもPCは○だけどdocomo、AUでもエラーでした。 そもそもphpがわからないのでどうにもなりそうもないかな。 ありがとうございますた
>>138 PEAR::Authは本当にテスト程度にしか使ったことないけど、
全画面にログイン認証を設置して、ログインできていなかったらログインページに飛ばすというシンプルなもの。
141 :
nobodyさん :2008/02/12(火) 17:20:27 ID:4oFdYGhc
記述がまちがってました。 130さんの方法でうまくいきました!まじありがとうです! 考えてくれた方々素人しつもんに混乱させてすんません。
>>138 sslはパケットが暗号化して流れるだけだよ。
使う際に特に意識する必要は無いけど、画像へのリンクをhttpsにしないと怒られるけど。
ID:4oFdYGhc は何歳だろう。
144 :
nobodyさん :2008/02/12(火) 17:27:33 ID:Eov8TJU+
数字が「03」のものを、abs($i)とすると「3」と表示させることが出来ます。 逆に「3」のデータを「03」と表示させる事って出来ないでしょうか? for($i=0;$i<20;$i++)の時に、10以下は0を付けて表示したいのです。
SSL使ったことがないって、どんなレベルのやつらが答えてるんだか・・・ PEAR::AuthだろうがSSL使ってないと認証時のHTTP通信覗かれると パスワード奪われるのは当たり前。 ちゃんとしたければ証明書ぐらい買え。
148 :
144 :2008/02/12(火) 17:33:50 ID:Eov8TJU+
>>147 str_pad($i,2,0,STR_PAD_LEFT)
で、上手くできました。ありがとうございました。
証明書ぐらい自前で用意すれば良いやん 日曜プログラマには自前で用意したやつで十分
151 :
nobodyさん :2008/02/12(火) 17:44:12 ID:KacNwW2G
あるディレクトリで使っていたクッキーを、ドメイン以下全てで活用したいのですが if( isset($HTTP_COOKIE_VARS["aaaaaa"]) ) { setcookie ("bbbb", $HTTP_COOKIE_VARS["aaaaaa"], mktime(0,0,0,12,31,2020), './'); //または.aaaa.comと入れてみたり } で、移行する事が出来ませんでした 何か気になるところはありますでしょうか?
152 :
nobodyさん :2008/02/12(火) 17:57:38 ID:rr+doGz+
>>145 ですよね、やっぱり。
何でPEAR入門とか見ると結構Authが出てくるのか疑問。
これ不完全なセキュリティじゃん。
ありがとうございました。
>>152 >これ不完全なセキュリティじゃん。
w
>>152 いい子だからもう少し勉強してこようね。
155 :
152 :2008/02/12(火) 18:17:44 ID:???
スマソ、別にPEARを責めてるわけじゃなくて解説ページとかを責めてるんだ。
156 :
151 :2008/02/12(火) 18:27:02 ID:???
そもそも"./"、".hoge.com"と追加すると 簡単なカウンターすら動かないですね…あれぇ… www.hoge.com/aaaa/のクッキーを www.hoge.com/bbbb/で呼び出したいだけなんですが…ううーん
確かに152のような解釈をしてしまうような、ろくでも無い解説本が大量にあるのは事実。
>>150 高木先生から脅しを受けるのでいやです><
$hoge = new Hoge(); $array->each($hoge,"methodName"); →$arrayの各要素にHogeオブジェクトのmethodNameメソッドを適用 こういうことをしたいのですが、 SPLの拡張されたArrayにもそのようなものはないようです こういうことができるようになるエクステンションなどがあれば教えて下さい
>>157 そんなので金取ってるやつがいるんだよな。
俺もそう解釈してた時があった。
セッションを作った際に、セッションが不正だと思われる場合 現在のセッションを新たに作り直したいのですが、下のコードでやると、 次のようなエラーができます。 session_start(); // セッションが不正だったので、新しいセッションを作成する session_destroy(); session_start(); Fatal error: session_start() [<a href='function.session-start'>function.session-start</a>]: Failed to initialize storage module: user
>>163 二度session_start()書かなくて良い
session_regenerate_id
166 :
nobodyさん :2008/02/12(火) 22:50:53 ID:qqWX9YxW
PHPにRubyのriみたいなのってない?
riの機能を説明してくれ。
このスレで日曜プログラマの人どれくらい? ( ´・ω・)ノ
169 :
nobodyさん :2008/02/12(火) 23:35:27 ID:qqWX9YxW
>>167 ドキュメントをコマンドラインから検索できる。
Perlのpodみたいなやつ? それならない
171 :
nobodyさん :2008/02/13(水) 00:06:31 ID:54ukxXOg
無いのか… みんなドキュメントはブラウザで見てるのかなあ。
www.php.net/[function_name] ってアクセスすれば出るから楽だよ
173 :
nobodyさん :2008/02/13(水) 01:15:39 ID:mapjp2bH
PHPのmailではメールが遅れますがPEAR Mailだと送れません。なぜでしょうか、よろしくお願いします。 maillog localhost postfix/smtpd[3625]: connect from localhost.localdomain[127.0.0.1] localhost postfix/smtpd[3625]: disconnect from localhost.localdomain[127.0.0.1]
フォルダをコピーする関数てないよね?
ない。 システムコマンドを実行するか、再帰処理でゴリゴリやるかしかない。
サンクス
178 :
173 :2008/02/13(水) 03:11:28 ID:???
>>174 mail関数は送れるのにPEARだと送れない。この違いはなんなんでしょうか。
179 :
nobodyさん :2008/02/13(水) 05:19:34 ID:PSygS72K
連想配列を指定したインデックス番号で取り出したい時はどうしたらいいですか? キー名でなく、「n番目」と指定する形で取り出したいです
foreach でカウンター使えば?
yumで入れたPHP5で ある種のフォント(古いのとか、フリーで配布されているもの)が imagettftextで文字化けしたり、エラーになったりします。 いろいろ調べたところ、 --enable-gd-jis-conv のオプションを付けていないのが原因っぽいです。 これを有効にするには、yumで管理するのをあきらめて ソースからインストールしなおすしかないでしょうか?
dl
PHP5といってもバージョンふるいだろうし、 最新のをソースからインストールしたほうがいいとおもふ。
184 :
nobodyさん :2008/02/13(水) 08:51:05 ID:s61mWt+C
PHPに限った問題ではないのですが、どこで聞けばいいかわからなかったのでよろしくお願いします。 定数と変数の違いがよくわかりません。 解説サイトなどをみると、富士山は定数だなんていうのをよく見かけます。 しかし遠い未来にもしかしたら別名になってるかもしれないと考えると変数でもいいんじゃないかと思ってしまいます。 そんなこんなで両者の違いがよくわからず・・・ どなたかこんなバカな私が納得できる解説していただける方いらっしゃいませんか?
>>184 定数は不動な・不動であるべき値を入れるもの
変数は可変的な値を入れるもの
それ以上でもそれ以下でもない
富士山の名前はドーム球場やビルの名前ほど変わりやすくはないだろう? そんだけの違い。 富士山の名前も変えたければ変数にすればいい。 ただ、変わることが当分ないだろう名前を変数にする意味があるかどうかは知らない。
>>184 関数のオプション指定とかでよく定数を使う
例えば
define("TYPE-A", TRUE);
define("TYPE-B", FALSE);
function type($var, $type = TRUE)
{
if($type === TRUE)
{
return "TYPE-Aの{$var}です。";
}
if($type === FALSE)
{
return "TYPE-Aの{$var}です。";
}
return FALSE;
}
echo type("テスト", TYPE-A);
こんな感じで、オプション名を分かりやすくとかかな
意味は通じるだろうけど定数名にはハイフンじゃなくてアンダーバーじゃないとダメじゃない?
189 :
187 :2008/02/13(水) 09:50:51 ID:???
ごめん、定数なんて滅多に使わないから名前付けわからなかったorz
boolじゃ表現できないステータスは定数にするなぁ define("NG", 0); define("OK", 1); define("DELETED", 2); define("CANCELED", 3); なかんじ
普段使ってないアヤフヤな状態で教えるなよ。
誰も教えないより全然マシだろ
間違った情報教えるよりいいと思うけどw
何もない→間違った情報→正しい情報 必ずしも正しい情報が手に入るはずがないのは承知だろ
解答者から貰った解答を検証、または応用を利かすぐらいの事をしないとな…
基本的に定数って複数人開発で書き換えられないような値を維持したいときだろ。 だから個人で書いてるとあまり存在意義が感じられないんじゃない。
>>196 クラスで決まった変数を使いたいときとかにつかわね?
PHPはたのしいんだけどさ SQL関係でダルくなった・・・ 質問しようにもDB板過疎ってるしなぁ
携帯電話向けのサイトやコンテンツのプレビューサイトを作り たいと思っています。 1:ブログ的に簡単に記事を投稿できる機能 2:紹介した記事のサイトのURLを簡単にメールで閲覧者に送る 機能 3:拍手ボタン的なユーザー評価システム の3つを必須要素としています。 これらを満たしたおすすめのBLOGやPHPなどがあれば教えてく ださい。 更に下記機能が可能であれば理想です。 4:閲覧者が読者登録することによりログイン時はワンボタン で気に入ったコンテンツのURLを送信できる機能 無料が理想ですが有料サービスでもかまいません。 よろしくお願いします。
>>198 ああ、俺もそんな時期あったよ
仕事でSQL詳しい奴と組んで色々教わってから、
よほど凝った設計やら最適化が要るサブクエリでも必要にならん限りは手間感じなくなったけど。
そういやDB板ってあるんだな。行った事ねえw
DB詳しい知り合い・・・まじでほしい
ORMばっかじゃなくて、SQLはきちんと勉強した方が後々タメになるよ。 普段自分が使うDBだけでもいいんだけど。
SQLが難しいというより、無駄なSQLを実行しないようにしようとすると、プログラムの構造が 複雑になりがちなのがつらい。
205 :
nobodyさん :2008/02/13(水) 17:26:21 ID:w/tgHaTQ
「秒」を「時間/分/秒」に変換するようなものありませんでしたっけ date("H:i:s", 秒)だと、1970/1/1からの時間になってしまいますよね
>>205 違う。
time(); とか mktime(); で返って来るのが1970年1月1日からの経過秒数。
だから、date("h:i:s",time()); とやれば、今の時間が返って来る。
てか、マニュアル読めよ。
207 :
nobodyさん :2008/02/13(水) 17:40:46 ID:w/tgHaTQ
ごめ、書き方が悪かった 2行目はなしにしてください 秒をカウントしていって、あと●時間と●分と●秒 みたいにしたいのですが、そういう関数はありませんか? dateだと時間じゃなく日付になります
>秒をカウント それを60で割れば分、更に60で割れば時間が出るが
一度unixタイムにして、そこで引き算してから表示すれば?
210 :
nobodyさん :2008/02/13(水) 18:07:16 ID:w/tgHaTQ
$time = 123456; $hour = floor($time / 3600); $minute = floor(($time - ($hour * 3600)) / 60); $second = floor($time - ($hour * 3600) - ($minute * 60)); 今はこうしてますが、それを一発で変換するような関数があればと思いました。 自分で関数化させてみます、ありがとうございました
211 :
nobodyさん :2008/02/13(水) 18:47:11 ID:euh5fNCJ
SQL使うとき、某セキュ本でサニタイズには addslashes(); 使うのがいい、って書いてあったけど、 本当にこれで十分なの?特にMySQLの場合。 マニュアルには確かに、 "データベースへの問い合わせなどに際してクォートされるべき 文字の前にバックスラッシュを挿入した文字列を返します。" って書いてあるけど、いまいち不安で仕方がない。
212 :
nobodyさん :2008/02/13(水) 18:52:13 ID:f/Ao3h5z
>>211 addslashesだと一部のケースできちんとエスケープできない場合があるから不十分だよ。
DB毎に用意されたエスケープ用の関数(mysql_real_escape_stringとか)を使ったほうがいいよ。
214 :
nobodyさん :2008/02/13(水) 19:08:32 ID:euh5fNCJ
>>213 ありがとう。
おとなしく、専用関数使うことにします。
たぶん magic_quotes_gpc が on の時の事じゃないかな。 重複してエスケープされちゃう。
サアバアの人がPHP5.2とかいうの勝手にしたらしいんですけど ぼくのさいとのプログラムがうごきなくなりました。助けてください
>>217 じゃあ君はPHPを元のバージョンに戻すんだ
>>212 「PHPでサイトを構築」じゃさっぱりわからない。
PHP使ってれば全部そうなんだから。
php5.25にバージョンアップしたら 今まで動作していたものが動作しなくなりました。 どこで引っ掛かっているか確認したところ どうやら mb_send_mailやmb_language("Ja")など mb_で始まるものが利用出来なくなっているようです。 mb_を利用するにはどうすればよいでしょうか? もしくは 他に代替となるものがありますでしょうか? 宜しくお願いします。
222 :
nobodyさん :2008/02/13(水) 22:16:21 ID:BLl4JBTg
失礼しました。 php5.25にバージョンアップしたら 今まで動作していたものが動作しなくなりました。 どこで引っ掛かっているか確認したところ どうやら mb_send_mailやmb_language("Ja")など mb_で始まるものが利用出来なくなっているようです。 mb_を利用するにはどうすればよいでしょうか? もしくは 他に代替となるものがありますでしょうか? 宜しくお願いします。
223 :
nobodyさん :2008/02/13(水) 22:20:15 ID:mapjp2bH
echo では<a>とかて使えれないの?
>>222 多分>php.iniで組み込んでないせいだと思うけどこのへんが無いからわからん。
>・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
echoで<a>を「使う」の意味がよく分からん
227 :
nobodyさん :2008/02/13(水) 22:35:10 ID:mapjp2bH
echo "<a href="">link</a>"; ってことなんだけど、どうもエラーが出てしまう。<p>ならイケるのに。
>>227 面白い事してるね。
<a href="">を<a href=\"\">にしてみようか。
とりあえず、参考書を1冊買って熟読する事をオススメする。
229 :
nobodyさん :2008/02/13(水) 22:47:14 ID:mapjp2bH
エスケープかー、ありがd
次からは何をしたいか、実際何をしたか、どういうエラーが出たかを明示しないとだめよ。
すみません。誰か
>>100 をお願いします。
しつこくてごめんなさい。
>>212 自分でアクセスしたときはそうならないならPHPの問題ではないのでは?
特定のユーザというならUser Agentでも調べてみればいい。
スレチガイっぽいのでもう諦めてログなりアクセス解析なりで頑張ってくれ。
>>231 答えようがないと言ってるだろうに。
HTMLでサイト作ったんですがなんかエラーでますってレベルの質問だぞそれ。
235 :
nobodyさん :2008/02/14(木) 02:34:26 ID:fWt27fIe
SQLで複数のレコードをinsertするときに values以下をつなげて全ての行を同時にinsertする書き方がありますが PDO(MySQLです)のプリペアードステートメントはどれだけSQL文が長くても問題ないんでしょうか?
どれだけ長くてもって…、そら限界あるだろw
javascriptしか使えないブログのページ情報を PHPを置いてるサーバーにsrcで読み込んで、そのページの情報を取得して対応の データをサーバーから返したいのですがどういった関数やライブラリを利用すればいいでしょうか?
順番がよくわかんないんだけどサーバから返って来るデータを javascriptしか使えないブログで表示したいってこと? GETかPOSTか何かでトリガー作ってやって それをサーバで受けてスクレイピングして結果をjsonか何かで返してやればいいんじゃねえの?
241 :
nobodyさん :2008/02/14(木) 07:33:04 ID:1Zo3u+Bq
mb_send_mailを使ってるんですが失敗します サーバにsendmailとか入ってないんですが メール送信にMTAは必須ですか?
242 :
nobodyさん :2008/02/14(木) 08:29:36 ID:1Zo3u+Bq
postfixインストールしたら受付だけはするようになりましたが プロバイダのアウトバウンドポート25ブロッキングで送信不可でしたorz メールを使うテスト環境ってみなさんどうやってますか? 今ほとんどのプロバイダがOP25Bやってますよね?
>>242 プロバイダのSMTPサーバを経由させる。
op25b対策としてポートを変える。 または外部のsmtpサーバをアプリケーションレベルで指定する。
PHPとMySQLってお似合いだよな PHPも型の指定必要ないし、MySQLもbool型を自動的にINT型に変えてくれるんだぜ? PGSQLでやろうと思ったら独自で関数作成しなきゃいけないのにな まぁ、それだから使いやすいんだけどあまりそういうのに頼るのはよくないな
自分語りウゼェ
>>235 ここは、phpのスレだからMYSQLのこと聞いても
>>236 のような何の価値もないレスしかかえってこない。
MYSQLなら「max allowed packet」がSQLの最大長だよ。
しかし、このスレに期待して2日も待ったのに、
>>232-234 って、全く何も役に立たなかった。
二日も待つならその時間で調べた方がよほど有益だろうに…
247が
>>100 のことを言ってるなら自分のせい。
アクセスログって何?どういうどういう内容のログ?
PHPのサイトって何?PHPでどういう内容でどういうコードを走らせてるんだ?
自分の説明不足でスルーされてるのに気づいてくれ。
>>100 >どこ当たりがおかしいと思われますでしょうか?
プログラムは書かれたとおりにしか動かないので
自分で作ったならお前自身がおかしい
フリーなものなら設置の仕方がおかしいかそういう仕様
これでいいか?
251 :
nobodyさん :2008/02/14(木) 12:15:33 ID:kPTFt31F
テキストの中に !"#$%&'()-=^~\|,./\;:@[]<>?_+*`{} が含まれていたら弾きたいのですが、 エスケープがめんどくさいです・・・。 質問じゃないね、ごめん。
正規表現ではじけば面倒じゃないだろ
253 :
nobodyさん :2008/02/14(木) 12:40:31 ID:kPTFt31F
正規表現のときにいちいち\[\]のように処理しなきゃならんのがめんどくさくって、 なかなか実行にうつせない
めんどいって、一度書くだけだろ? こんなところに書き込むほうがよっぽど手間
ここは相変わらず、ググれば分かる事かエスパーしか分からん事ばっかりだな。
他の言語に比べたらかなり敷居は低いから ここで聞くより「○○とは」でぐぐる方が早いはずなんだがなー
258 :
nobodyさん :2008/02/14(木) 14:43:31 ID:YYm9cGRI
今ならなんでも答えるぞ
259 :
nobodyさん :2008/02/14(木) 14:45:33 ID:kPTFt31F
ID:kPTFt31F お前レベル低すぎだし言ってることが頭悪いからWebから離れたほうがいい
それ自分にも当てはまってるぞ。
263 :
nobodyさん :2008/02/14(木) 18:07:34 ID:ybagCdX8
hoge.html <p><?php print $hoge; ?>ホゲー</p> hoge.php $hoge = 'ほげ'; include('hoge.html'); // $hoge は展開されるが、ホゲーはホゲーにならない $out = file_get_contents('hoge.html'); $out = mb_convert_kana($out,'k'); // ホゲーはホゲーになるが、$hogeは展開されない のような<?php 〜 ?>を含むテキストファイルをインクルードしつつ 中の文字列を半角カタカナに変換する方法ってありますでしょうか?
>>263 何がしたいのかわからんが、
$hoge = 'ほげ';
ob_start();
include("hoge.html");
$contents = ob_get_contents();
ob_end_clean();
$contents = mb_convert_kana($contents, "k", "UTF-8");
echo $contents;
どうでもいいが $contents = ob_get_clean(); で一発じゃね?
266 :
nobodyさん :2008/02/14(木) 20:34:50 ID:HAPGXi1v
2重投稿などを防ぐ為に <? header("Location: index.php"); exit; ?> を活用していたのですが headerの前に出力を行なうことになり 使用できなくなりました。 他に2重投稿を防ぐ方法などありますでしょうか?
重複した物は登録しない。 一定時間待たなければそのIPから登録することはできない。 こんなんでいいの?
268 :
nobodyさん :2008/02/14(木) 20:42:37 ID:BZwPXo+u
拡張子がphpのファイルで、 html記述部分の最初に、 <?xml version="1.0" encoding="UTF-8"?> と書く必要があるんですが、 <? ?>部分がphp記述部分だと認識してしまうため、Parse errorになります ここはhtml部分だよとわからせるためにはどうしたらいいでしょうか
269 :
267 :2008/02/14(木) 20:42:48 ID:HAPGXi1v
即レス有り難うございます。 重複したものは登録しない そういえばその方法がありましたね。 IPに関しては社内のものなのであきらめます。
271 :
nobodyさん :2008/02/14(木) 20:54:18 ID:BZwPXo+u
>>270 ありがとうございます
助かりました
皆を楽しませるウェブプログラムを作って恩返しします
>>271 自分はいいことしていると思ってても
まわりは迷惑としか思ってないよ?
273 :
267 :2008/02/14(木) 21:11:21 ID:HAPGXi1v
重複したものは登録しないで検討していたのですが ユーザが投稿後に更新ボタンを押した場合 「このページを再表示するには、以前送信した情報を再送信する必要があります。 何か購入した場合には、取引の重複を避けるため [キャンセル] をクリックしてください。 その他の場合は、[再試行] をクリックして Web ページを再表示してください」 と出るのですが これを防いで元のページを表示する方法はありませんでしょうか? header意外に方法があるといいのですが・・・
>>267 >>266 で
>headerの前に出力を行なうことになり
って書いてるけど、その前に一度リダイレクトすれば?
なんだまだ荒らしいたのか。無視で。
>>273 えーと、リロードしたらそーゆーのは出るし、完全に防げるものじゃないから
同じ情報送られても二度目以降は蹴るようにしてればいいだけよ。
無理にLocationで飛ばさなくてもアンカーで戻るリンク出してるほうがいいかと。
276 :
267 :2008/02/14(木) 21:27:47 ID:HAPGXi1v
>>274 ありがとうございます。
手前でのりダイレクトでやってみます。
>>275 ありがとうございます。
そもそも飛ばす場合出力する意味がわからない。 どうせ見えないんだから。
278 :
nobodyさん :2008/02/14(木) 23:31:13 ID:E6ZjZZkT
GETで値を渡した場合、日本語が文字化けします。 ソースは全てEUC-JPで記述されてます。なぜでしょうか…
279 :
nobodyさん :2008/02/14(木) 23:38:12 ID:E6ZjZZkT
追記 POSTだと文字化けしません。
それってまさかURLエンコードじゃ・・ 日本語が英数文字みたいのになるって事? 何がどう化けるのか書いてごらん
普通GET で日本語を渡さないだろ。エンコードして渡して、 受け取ったらデコードするだろ。 $myheart = urlencode("ココロにダムはあんのかい?"); で渡して urldecode($_GET['myheart']); でデコード。 あと、eucより utf-8で作ったほうがいいよ。色々と。
UTF-8の方がいいって聞くけど、実際どのへんが? fgetcsvで不具合出るし、UTF-8使うか躊躇してるんだが。
eAccelerator使ってみましたが、これ凄いですね。 処理速度が倍近くになったし、CPU使用率が導入前と比べて半分位になっている。 今までコードの最適化していたのが、馬鹿らしくなってくる。 こんな感じの最適化でまだありますか? コードの最適化以外で。
285 :
278 :2008/02/15(金) 09:01:30 ID:n/8JdduI
皆様ありがとうございます。謝謝
>>280 さん
<a hlef="test.php?name=<?= $name ?>">
上記でガルルガブリンコという文字を送ると、送り先で文字化けします。 他の日本語も全て化けます。
>>281 さん
試してみます!
あと、私も今までUTFを使ってました。EUCは今回初めてです。
なぜUTFが良いのでしょうか?
多言語だから
>>258 urlencode どのタイミングでしてる?
表示はともかく、DBもスクリプトも普通utfだろ。
おじさん達に質問。PHPで作れるシステムって何あるの?
全て。 PHPで作れないシステムなどない
OSも?
>>290 PHPよりもPerlを勉強しろ。PHPなんて使えない。
言語にとって得意不得意があるわけで、作れるからといって作るやつなんていないだろう。
プロジェクトで仕事してるからムリ。perl使えないヤツ大杉だし。 おまえみたいなサンデープログラマとは違うんだ。
296 :
283 :2008/02/15(金) 17:19:24 ID:???
eAcceleratorを使っていて思ったんだけど、 これを使うと言語間の処理速度って、どれくらいになるんでしょうね? C言語>eAcceleratorでのPHP>>>>Java>>>>>>>>>>modulePHP>>Perl>>>>cgiPHP 位ですか?
perl覚えるくらいならruby覚えるよw
298 :
nobodyさん :2008/02/15(金) 17:25:28 ID:ySlHYddO
いや、rubyよりPerl。
いや、普通にVBかJava覚えろよ。
C#でいいよ。
やっぱCOBOL
アセンブリ言語が最強。
303 :
nobodyさん :2008/02/15(金) 17:39:46 ID:ySlHYddO
LOGOだろ
フォートランだろ
お前ら黙れ。 ここはPHPスレだ。 他の言語が素晴らしいなんてくだらないこと言ってる暇あったら学べ。
>>306 お前つまらないやつだな
最後のほうはどうみてもネタだろ
308 :
278 :2008/02/15(金) 19:09:29 ID:n/8JdduI
encodeとdecodeでうまくいきました。 ありがとうございました。
309 :
nobodyさん :2008/02/15(金) 20:27:56 ID:cmSPDLwZ
echo "$val[\"id\"]"; の非は何でしょうか
>>309 エラーメッセージ、きちんと書きなよ。
クォーティングしなくていい。
echo $val["id"];
どうしてもクオーティングしたいなら、
echo "$val[id]"; とか。
シングルコーテーションって流行らないの? みんな使わないの?理由を教えてください。!
流行る流行らないの問題でないし俺はシングルを使うべきところではシングルを使っている
基本シングルで、
ダブルはSQLでたまに使うくらい(最近は直接書くことすくないけど)
コーディング規約、クセなどなどで自由やけど
>>309 みたいなやつにはとりあえずシングルメインで使えって言いたい
問題がなければダブルだけどなぜか正規表現のときだけシングル
Web上で投稿、 それを任意のページにHTMLを生成するサンプルはございませんか?
アップローダなどでファイルをダウンロードさせるときに パスワード付きのファイルを直リンのURLでダウンロードできないようにしたいのですがどうすればいいのでしょうか ネットで無料サンプル探していろいろためしてみたのですが DLパスワード機能付きのやつでも直接ファイルのURLをいれれば普通にダウンロードできてしまうもんで・・・
ドキュメントルート外に置くとかDBに入れて読み出すとかあるいはバレないことを祈りつつファイル名を暗号化でもすればおk
.htaccess じゃダメなの?
322 :
317 :2008/02/15(金) 23:20:46 ID:???
任意のページってのが難しいです・・・
323 :
321 :2008/02/15(金) 23:21:07 ID:???
ごめん、バカだ、俺。 そんなことしたら、ダウンロードができなくなる。 スマソ。
PHPが読み出してやればDLできるんじゃないの? まあそこまでいくと本末転倒だが
> ネットで無料サンプル探していろいろためしてみたのですが > DLパスワード機能付きのやつでも直接ファイルのURLをいれれば普通にダウンロードできてしまうもんで・・・ そんなの作って公開しているやつのレベルは所詮その程度だなw
basic認証でもかけとくとか
>>317 てきとーにつくってやった
条件満たしてるかはしらんw
<?php
if (isset($_POST['hoge']) && $_POST['hoge'] != '') {
$filename = uniqid();
$data = '<html><head><title>'.$filename.'のページ</title></head><body>'.
htmlspecialchars($_POST['hoge']).'</body></html>';
$ret = file_put_contents($filename.'.html',$data);
if ($ret == false) {
echo '作成失敗';
exit;
}
echo $filename.'.htmlというページを作成';
exit;
}
?>
<form method="post">
<input type="text" name="hoge">
</form>
あ、うpろだの保存フォルダにbasic認証は無いかw phpからストリームで返してやるとかどう?
329 :
nobodyさん :2008/02/15(金) 23:43:21 ID:BJFOhqEp
ファイルを読み込んで、その中のタブをすべて削除しようと思い、 以下のようにしたのですが、削除されません。どこがおかしいのでしょうか? $file = file_get_contents("test.html"); $file = str_replace("\t","","$file");
PHPはじめた5年前くらい 何かと"$file"んな感じに意味なくクヲートしていたことがよくあった。 間違いじゃないけど、見ると恥ずかしい
まあクオート自体は問題箇所ではないし好みの問題もあろう。
>>329 もうちょい具体的に。特に読み込んだデータと変換後のデータの内容。
333 :
317 :2008/02/16(土) 02:29:56 ID:???
>>327 お返事が遅くなり申し訳ないです。
すばらしい物ができました。感謝です
>>331-332 クォートで括ったらそれは新しい文字列を生成するってことだ。
変数の内容を展開するオーバーヘッドも発生するし、
何よりそれは文字列リテラルになってしまう為に
参照渡しが必要な場合にはエラーになる。
間違いだし、好みの問題ではない。
用語を多用すればいいってもんじゃないぞ。
4→5の移行を商売として行ってる会社があるみたいですが それが成り立つほど、ゴロっと変わるものですか?? PHP4も、途中で大きく仕様が変わったみたいですが 今PHPで作っても、2〜3年で大規模な修正(=費用)が必要になる??
338 :
失礼しました。 :2008/02/16(土) 03:52:17 ID:mhfR9vmN
4→5の移行を商売として行ってる会社があるみたいですが それが成り立つほど、ゴロっと変わるものですか?? PHP4も、途中で大きく仕様が変わったみたいですが 今PHPで作っても、2〜3年で大規模な修正(=費用)が必要になる??
いやならないよ
こんばんわ^0^ PHPの仕組みは大体わかったんですが。 PHPってHTMLに埋め込めますよね? 埋め込んだ場合 通常 index.html なのを index.php にする必要がありますね。 それで index.phpにした奴のソースを覗いてみると、 PHPのスクリプトが消えています。 仕様でしょうか?
342 :
340 :2008/02/16(土) 04:23:28 ID:???
>>341 素早いレスありがとうございす。
またお世話になります
>>339 ありがとうございます。
PHP4がサポート終了&既にPHP6が開発中(さらに仕様が変わる)
というのを見まして不安になった次第です。
そういったものを見越す力のある開発会社を見極める必要があるのでしょうが
なかなか難しいです。
機能追加を除けば、最低、2〜3年程度は手を入れずにいたいのですが。。
サポート終了つったってまだphp3で稼働してるとこすらあるし、 あんまり気にしないでいいと思うけどな。
てか公式のサポートに何を期待してんだかw
予算が絡むことを2chの意見で決めるあたり
asp.netにでもしとけば?w
348 :
340 :2008/02/16(土) 05:29:23 ID:???
では、他人のソースを見るにはどうすればよいのでしょうか?
その人にメールでもしてお願いする
is_null() と empty() はどうやって使い分けてます?
nullと""の違いを勉強しやがれ
ガッ
PHPをマスターしたら彼女が出来ますか?
PHPで独自の彼女フレームワークを作ればいい
class kitaku { function gohan() {} function ofuro() {} function watashi() {} }
return $ninshin;
ワロタ
ずっとループさせといたら・・
だんご大家族になるな
修正した function watashi($condom=false) {}
364 :
nobodyさん :2008/02/16(土) 15:25:08 ID:K3pH787p
例えばconfig.phpとして、$item = file("item.txt"); $num = file("num.txt");としています。 別のファイルで require("config.php"); $num1 = 〜$numの中に入っているデータの一つ〜 $key = arraysearch($num1,$num); $title = $item[$key]; こう書いたのですが、$keyがうまく取得できてなくて、 $titleがうまく対応できてません。 どうすれば取得できるのでしょうか? もしくはもっと良いコードがありますか? -item.txt- 夏目漱石 樋口一葉 ・・・ -num.txt- natsume higuchi ・・・
>>343 2〜3年ならほぼ大丈夫。
5年使うのは厳しいかもしれないけど、
5年も同じの使うの?っていう話。
367 :
nobodyさん :2008/02/16(土) 16:23:15 ID:a5LZnn6H
2000年問題…
>>364 arraysearchがわるいんじゃね?
369 :
364 :2008/02/16(土) 16:37:33 ID:Jf9OUGaE
PCからです、すみません。
>>365 ローカルにあるPHPマニュアルにはそんなオプション無かった・・・
ありがとうございます。
オプション付けたそのままでは機能しませんでしたが、Emeditorで改行をCR+LFからLFに
変えたところ、うまく動作しました。
>>368 重ねてありがとうございます。
>コンテンツを UTF-8 エンコーディングで返します。 別のエンコーディングを指定するには、独自のコンテキストを作成します。 >このフラグは FILE_BINARY と同時に使用することはできません。 このフラグは PHP 6 以降でのみ使用可能です。 いやいいんだけど、なら早く出してよ!!
PHP6と言えば magic_quotes_gpc がなくなるんでしょ。 確かにいらないんだけど、PHP5ではデフォルトで onの機能がなくなるというのは、かなり衝撃的。 ほかにもこう言うのあるの?
php5では既にデフォルトoffになってただろ?
マニュアル見ると on みたいだけど、なんか読み間違ってる?
http://jp2.php.net/manual/ja/ref.info.php magic_quotes_gpc "1" PHP_INI_PERDIR PHP <= 4.2.3 では PHP_INI_ALL。PHP 6.0.0 で削除されました
PHP5.2の php.ini-distも
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On
ってなってるし。
すまん勘違いした。register_globalと。
なんか
>>8 ばっかりを見るとID厨必死だなーと思ってしまう
varで変数定義するときに var $a = 10*10 などのように演算した値を代入できないのですがどうすればよいのでしょうか
>>377 コンストラクタで入れれば?
class hoge {
var $a;
function __construct() {
$this->hoge();
}
function hoge() {
$this->a = 10*10;
}
}
なんかおかしな仕様ですね? クラス外で普通に変数定義するときは演算もできるのに
全然おかしくないナリ
>>383 PHP5では__constructが定義されてる場合、クラスと同名のはコンストラクタとは扱われない。
PHP4ではクラスと同名ののみコンストラクタとしてあつかわれる。
>>378 それならもう
var $a;
$a = 10*10;
でいいじゃまいか
スイマセン。質問です。 PC2Mというスクリプトにあるr.phpにリンクする先のサイズを表示したいのですが、ネット上にあるWebpageに限らずなんでもファイルのサイズをゲットする方法が分かりません。 教えて下さいお願いします。
390 :
388 :2008/02/16(土) 22:34:32 ID:???
>>389 $ary = get_headers($_url,1);
$size = $ary[Content-Length];
こんなかんじですか?
ありがとうございます。
.htaccessに php_value memory_limit 5M php_value post_max_size 5M php_value upload_max_filesize 5M と書いてphpプログラムがあるフォルダにあげてプログラムを実行したら サーバーエラー500になるのですが この鯖ではこの設定はできないってことでしょうか?
$size = $ary[Content-Length]; ↓ $size = $ary["Content-Length"]; だった。orz
ていうかそれはPHPの質問なのか?
エラーログってどこで見れるんですか? 無料のレンタルサーバーなんですが
無料鯖で勝手に1ファイルあたりのアップロード上限をかえることができたらある意味問題だわな
PEAR::Auth使ってるんですが、Auth::start()と、ログインフォーム表示関数を分離させることってできますか? $authobj = new("DB", $params, "funcLogin"); とした場合、 $authobj -> start(); でセッション管理&未認証ならfuncLogin()に適切な引数が与えられてログインフォームが表示されますが、 $authobj->start(); をhtmlの出力前に入れないとログイン時に当然ながら、ヘッダ弄れなかったよーってWarningが出るし、 出力後に書いたら書いたで、フォームの表示が<html>の前になり構造としておかしくなるので困ってます。 このため、start()でセッション管理のみ行い、メタタグなどの出力後に好きな場所でフォームを表示したいなーって思ってます。
>>398 > 出力後に書いたら書いたで、フォームの表示が<html>の前になり
ごめ、意味わからん・・・
どんなソース書いてるのよ?
401 :
398 :2008/02/17(日) 00:14:57 ID:???
>>400 あぅ、間違えた。
×出力後に書いたら書いたで
○出力前に書いたら書いたで
でした。。。(´・ω・)
それでも意味わからんw 「フォームの表示が<html>の前にな」るアナタの書き方が悪いだけじゃん。 PEAR::Authもstart()も関係ない。
404 :
398 :2008/02/17(日) 00:53:47 ID:???
>>402 うぇwwまじすか。
<?php
print "<html> ・・・(略)・・・<body>";
$authobj->start();
・
・
・
?>
・・・
</html>
ってすれば表示自体は問題ないんですが、
>>398 に書いたようなheader already sentのWarningが出ちゃいます。
スマートな書き方があれば教えてください。。。
俺>402だけどPEAR::Authマニュアルのサンプル見て予想がついてきた。 function funcLogin(){ echo '<form>〜</form>'; } $authobj->start(); echo '<html>〜</html>'; て流れになって悩んでるのか? function funcLogin(){ $flag_login = true; } $authobj->start(); echo '<html>〜'; if($flag_login) echo '<form>〜</form>'; echo '〜<html>'; で解決だと思うんだが?
上のソースはglobal使っていたりで適当だけど、 要は なにもfuncLogin内でHTML出力する必要はない ってこと
407 :
398 :2008/02/17(日) 01:16:07 ID:???
>>403 今のところ(Warningが出るほう)こんなかんじです
$authobj = new Auth("DB", $params ,"funcLogin");print "<html>・・・<body>";
$authobj->start();
if($authobj->getAuth){
$user = $authobj->getAuth();
print "ようこそ{$user}さん"
}
function funcLogin($username, $status) {
if ($status == AUTH_WRONG_LOGIN)
print "パスワード違うよー<br />";
print "<form ・・・ ユーザー名とパスワードフォーム・・・</form>";
}
こんな感じのサンプルでよくある感じのです。
408 :
398 :2008/02/17(日) 01:22:04 ID:???
>>405 たびたび入れ違いになって申し訳ないです(´・ω・)
うぉ、まさにそれです!!
確かに関数内でフォーム出力する必要は無かったですね・・・
サンプルで凝り固まってました。この数時間は何だったんだぁ・・・!
本当にありがとうございます。
根本解決じゃないけどheader already sentを避けるだけならob_startという手もある
410 :
398 :2008/02/17(日) 01:47:40 ID:???
>>409 なるほど。出力バッファってのもあるんですね。これも使えそうです。
参考になりました。ありがとうございます。
411 :
nobodyさん :2008/02/17(日) 04:11:57 ID:yKIXzCES
php -a がすぐ死んでしまうんだがどうにかならないか。 $ php -v PHP 5.2.5 (cli) (built: Feb 16 2008 02:53:14) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies $ php -a Interactive shell php > foo(); PHP Fatal error: Call to undefined function foo() in php shell code on line 1 $
>>411 エラーがわからないおまえの頭どうにかならないか
413 :
nobodyさん :2008/02/17(日) 04:21:14 ID:yKIXzCES
>>412 エラーはわかるよ。
それですぐ終了するのが嫌なの。
そりゃ終了するだろ メッセージの意味わかってないんじゃないの
415 :
nobodyさん :2008/02/17(日) 04:27:58 ID:yKIXzCES
いや普通対話環境では終了しないだろ…
何その先入観w。
普通じゃないというよりは、現状取ってつけただけ感の溢れる対話環境だな
>>415 readlineでconfigureしているのに普通〜とか言ってるんだろ…
アフォかと
420 :
nobodyさん :2008/02/17(日) 11:17:26 ID:yKIXzCES
保守用の書き込みスクリプトを作ろうと思います。 プログラミングは初心者です。 普段はマカーなのですが開発はwinでやります。 無料のプログラムソフトをご存知でしたら伺いたいのですが、いかがでしょうか
無料のプログラムソフトってのが統合開発環境とかのことをさすのであればPHPエディタあたりを使うといい。 個人的にはMacでも使えるしEclipseをおすすめしたいがあれは全くの初心者には何かと難しいと思う。
>>421 > 保守用の書き込みスクリプトを作ろうと思います。
それは止めてください。
でもプログラミングは頑張って下さい。
書き込みスクリプトってPHPとかPerlとかで書くより winやmacの出来合いのプログラム組み合わせて操作のマクロ作るほうがよっぽど簡単だよ
>>422 はやっw
ありがとうございます。全くの初心者なので聞いたことのあるPHPスクリプトなどあさってみようと思います。
>>423 自重します><
週に一度圧縮のある日に使いたくて、、、
>>425 何をしたいかを書いたほうがもっと有益な回答が得られるぞ
>>462 2ch保守用のスクリプトです
当初は定時に一行書き込むことを想定していました。
PHPじゃ無理だろ Proxy判定されて書き込めないんじゃね?
>>428 なんで、そこでproxyの話が出て来るんだよw
phpじゃ無理っていうのも完全に的外れだし、
知ったかはどっかいけよ。
430 :
nobodyさん :2008/02/17(日) 14:44:36 ID:y+G7p60c
gd に付いて質問。ある特定の文字だけが崩れるんだが、対策解る人いますか?
<?php
header("Content-type: image/png");
$im = imagecreatetruecolor(200, 15);
$dummy = imagecolorallocate($im, 0, 0, 0);
$bg = imagecolorallocate($im, 0, 0, 0);
$c = imagecolorallocate($im, 0, 200, 200);
imagefilledrectangle($im, 0, 0, 199, 14, $bg);
$text = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$font = './slkscr.ttf';
imagefttext($im, 6, 0, 1, 10, ($c * -1), $font, $text);
imagepng($im);
imagedestroy($im);
?>
↓"M" と "N" だけが何故か崩れる…
ttp://sylphys.ddo.jp/upld2nd/pc3/src/1203226898796.png ↓使ってるフォントはコレ
ttp://www.kottke.org/plus/type/silkscreen/
431 :
nobodyさん :2008/02/17(日) 14:52:51 ID:y+G7p60c
バージョン書くの忘れた… PHP 5.2.5 bundled (2.0.34 compatible) です
>>429 お前はコンソールからやるつもりなのか?
PHPで書いてプロクシ規制食らうんならブラウザでもそもそも書き込めない。 問題点が違う。 自動書き込みのスパム連投なら規制食らうだろうがそれもまた別問題だし。
>>434 プロキシ判定がどうやって行われてるのかわかってないだろ
またレベル低いのが降臨してるな
>>435 わかってるから言ってる。
PHPに限らんがプログラムで投稿処理するのはブラウザがやってることを自動化してるだけだ。
お前さんこそなんでできないと言い切れるのか説明してみ。
438の頭かな。
頭より腐った性根が問題。
コードよりもお前の性格がひね曲がっていることが問題だと思う
そのブログの持ち主に聞いてみたら? 完璧な答えが返ってくるだろうよ
質問者に難癖つける前に荒らしでしか発散できない自分をなんとかしろ。
>435 プロキシ判定がどうやって行われているか知っている? 知っているならいってみて。
BBQ
オウム返しは自分の手札がない裏付けになるぞ。 いい加減あきらめろ。
phpから書き込んでみればできるかどうかわかるじゃん。
荒らしている質問主がよくいうよw
451 :
446 :2008/02/17(日) 19:34:54 ID:???
あ、
>>445 は荒らしへのレスか。ごめん勘違い。
言動からして荒らしはそもそもPHP理解してないと思う。
ポート精査(80 3128 8080がオープンか) Proxy特有の環境変数の有無 リモートホストが逆引の可否
453 :
nobodyさん :2008/02/17(日) 22:55:53 ID:bioqKdBh
PHPからサーバのユーザのパスワードを変更したいのだが、どういう手法が考えられますか? systemやexecで直接passwdコマンドを叩くわけにもいかない、というかいけないし。。。やはり、DBなんかでワンクッション置いた複雑な仕組みになりますか?
それはPHPでやることじゃない
>>452 >ポート精査(80 3128 8080がオープンか)
ちょっと違う。決め打ちでポートをチェックするんじゃなくて、
アクセスしてきたリモートのポート番号でオープンかどうかをチェックするべき
普通のISPならほとんど逆引きできるし
457 :
453 :2008/02/17(日) 23:13:30 ID:bioqKdBh
無知な質問になると思いますが、、「遠くにあるサーバのユーザパスワードの変更」は暗号化通信を利用しても行うべきではないでしょうか。 またそうならば、サービスの中には、ネット上でパスワードの登録や変更ができるものがありますが、そういったサービスの仕組みってどうなっているのか少しでもよいので是非教えていただきたいです。
暗号化通信ってSSLのことを言ってる?
459 :
453 :2008/02/17(日) 23:23:00 ID:bioqKdBh
はい。
SSHか何かでやればいいだろ。。 Webサービスの1ユーザーのパスワード変更と、サーバのパスワード変更じゃ 危険性の度合いが桁違いってことは分かるだろ?
>>460 SSHでやれば安全で、httpdでやれば危険っていうのは安易すぎるだろ?
セキュリティーとプロトコルの問題を混同しないように。
SSHでやれば安全とは言わないが、http(s)でやるよかより安全かつ 確実にサーバの遠隔操作が可能だと思うんだが。 既存の確立した技術を使わずに、敢えてhttp(s)を選ぶならそれなりの 理由が必要だが、その理由は今のところ提示されていない。 だからSSHを勧めたわけでプロトコルに論点を移した覚えはないんだが、 君はhttp(s)でやったほうがいいと思うのかい?
461はphpでssh使ってやると思ってるんじゃないの?
SSHとhttpsによる安全性の差はともかく、そもそも質問者が言うパスワードがはアプリレベルのものか OSレベルの物かワカラン。
>>462 俺がhttpsでやった方がいいと思うかじゃなくて、
元の質問者がweb上で何とかしてやりたいと言っているときに、
SSHでやればいいって全然答えになっていないだろ。
それでやれればそんな質問はしないわけだろうし。
俺もその手の仕様は客から言われたことがあるが、
客にSSH使ってやってくれとはいえないから、
"仕方なく"web上で簡単にユーザーの管理ができるようにしてやった。
web上でも安全に実装する方法はいくらでもある。
>>465 単に知らずに言ってるだけかもしれないから、客からの依頼だろうと
SSHをまず勧めるけどね。それでどうしてもWebでってのなら、君と
同じく「仕方なく」そういう機能作るだろうけど。
SSHのように仕組みが出来上がってるものと同程度のセキュリティを
Webサービスで実現するには時間やコストがかかるし、単に技量の
違いかもしれないけど、「web上でも安全に実装する方法はいくらでもある」
なんてことは言えないもんでね。
467 :
453 :2008/02/18(月) 02:33:20 ID:otM/IOKB
曖昧な質問をしてしまい、申し訳ないです。
Webからlinuxユーザをサーバに追加したいのですが、その過程でのユーザのパスワードを設定について質問したのです。
今のところPHPでSSHを使うとなると右のような関数を想定しています。
ttp://jp.php.net/manual/ja/ref.ssh2.php ただ、これとは別の問題になるのですが、例えばssh2_execのような関数を使ってpasswdコマンドを打つと、対話形式の入力になるのでうまくいかないという問題もあります。
では、仕方なくそういう機能を作るという前提で 話を進めましょうか?
469 :
453 :2008/02/18(月) 02:39:06 ID:otM/IOKB
お願いします。m( )m
471 :
453 :2008/02/18(月) 02:59:50 ID:otM/IOKB
>>470 ありがとうございます。これで対話形式の問題が解決できそうです。
472 :
nobodyさん :2008/02/18(月) 05:22:19 ID:bug4h3no
$kekka = isset($var); if(!$kekka){$mes = 'error';} は isset($var) or $mes = 'error'; って書けるのに $kekka = isset($var); if(!$kekka){return false;} は isset($var) or return false; だと Parse error: syntax error, unexpected T_RETURN ってなるのはなぜですか? ちなみに isset($var) or (return false); isset($var) or return(false); でもダメでした
return isset($var)でおk
474 :
472 :2008/02/18(月) 05:34:37 ID:bug4h3no
isset($var)===trueならその後も処理が続くのでそこでreturnしちゃダメなのです
じゃ無理です
PHP5で対象URLのファイルの存在の有無を調べる際にfile_existsを使いたいのですが 調べると0が返ってきます。 fopenを使用すると大丈夫でした。 何か設定が必要なのでしょうか。
>>472 returnをorのすぐ後ろに書いたコード見たことなんだけど
bool値が帰ってくるはず
>>472 returnはそもそも関数などから抜けされるものなのに
returnを何かと比較しようとして扱うのが間違いなんじゃない?
return isset($var) or false; でいいじゃん
mailコマンドで、OSをFedora7からubuntuに変えたら、ヘッダが分割されて、ヘッダの一部が本文に入るようになってしまいました。 いろいろ原因を探ったところ、ヘッダー内の各ヘッダを区切る\r\nという改行を\nにすればよいようなのですが、 これはどこの設定に起因するものなのでしょうか? phpの設定が以前と何か違うからなのでしょうか?それともpostfix側の設定の問題なのでしょうか? あるいはOSの設定に変化があったからなのでしょうか?
きちっと書けば済む問題だろーに if (isset($var) == false) { return false; } $kekka = $val;
489 :
nobodyさん :2008/02/18(月) 12:33:45 ID:Ja8roiz2
PHPの開発環境としてeclipseを導入したいと思っています。 all-in-oneのものをインストールして、それに日本語化パッチを当ててみたのですが、 対応していないらしく、2割くらいしか日本語化されませんでした。 どなたか、all-in-oneで日本語化にも対応しているものが落ちているurlを教えて頂けないでしょうか・・・
490 :
476 :2008/02/18(月) 12:38:55 ID:dc24Ag74
>>490 file_existsはパス指定するもんだ
それとローカル内のみだったはず
発想というか仕様だしな
>>493 > ファイル名が使えるところにURLが使えるんじゃないかって自然に発想できる人が
> ある意味うらやましい。fopenで httpとか書かれてると、本能的に身構えてしまう。
知ってるか? メモ帳だってファイル名にURL使えるんだぜ。
EXCELもな。
>>496 すげー Σ(゚Д゚) 考えた事も無かった。
役に立つかはともかく、教えてくれてありがと。
俺様にPHPを教えろ
御意
忍びねぇな
強制有給で暇だ!誰かまともな質問しろ!
まともってどんなんだよ Zend Frameworkで苦しんでるが社用物だからコード晒せないしなあ 問題切り分け中だが、切り分け終わったら自分で対応するしなw お暇ならなんかエスパーしてくれ 「この辺が落とし穴だze」とか
ごめん、内容を書いてる間に試してたら解決できた メール送信とDBインサート周りでコケてたのだが、 無駄なクオートがあったのでzend_validationに書き換えたらいけた スレ汚しすまそ
>>501 ここまでのログあさって答えてないのを答えてやったらどうだい?
505 :
nobodyさん :2008/02/18(月) 16:44:22 ID:F3LP+Vno
>>501 2chのbbsmenu.htmlからカテゴリと板名を分けて抽出したいんだが、
うまい方法が思い付かん。
カテゴリリスト→板名リストと遷移するのが前提。
REP2とか読んでみるとか。あとCGIだけどiMona
>>501 俺様にPHPを教えて下さいませ。ご主人様。
すいません $aaa{0} ってどういう意味ですか?? $aaa[0]ならわかるのですが。 perlならハッシュのことだというのは分かるのですがPHPでもそうなんでしょうか?
510 :
nobodyさん :2008/02/18(月) 19:06:46 ID:LoQffYNU
ふと思ったんですが、PHPのループでsleepを使い掲示板に10秒間隔で1分間に6回書き込むプログラムを作ったんですけど 自分のPCの画面では一分間何も表示されなくて、その後、6回書き込まれた掲示板が表示されます。 別に自分の画面は表示されなくていいんですが、 他の人のPCでこの1分間の間に掲示板にアクセスした場合、表示されるんでしょうか? あとこの1分間の間に閲覧者が書き込みを行うこともできますか? その時の書き込みの順番は、自分が6回書き込んだ後に閲覧者の書き込みになるのではなく ちゃんと割り込んで書き込みできますか? 多分大丈夫だとは思うんですけど心配になったので一応聞いてみました。
511 :
nobodyさん :2008/02/18(月) 19:14:41 ID:O2zzThQY
Smartyに関する質問なんですが、 カスタム関数のdefaultを空白('')にして、かつ、もし値があればstring_format(%0.1fなど)して表示するにはどうすればいいですか?(できればif文を使わずに) 現状では、値が無い場合に0.0という表示が必ず出てしまいます。 defaultを先にしても後にしても同様です。 どなたかお願いします。
>>509 >$aaa{0}
>ってどういう意味ですか??
>$aaa[0]ならわかるのですが。
デバッグしてみればわかるでしょうに。
一緒。
513 :
509 :2008/02/18(月) 19:33:04 ID:???
なんか微妙な違いがあるのかなと思ったのです。 ありがとうございましたm(_ _)m
プログラム組んだ事無い人がPHPをするのはまずいですか? まず何からしたら良いのか徹底的に指導願いします
もちろん Apache PHPはインストール済みです。
まずはこのスレのテンプレを見ることだな
見るんじゃなくて、*読んで* *理解する* 事だね。
>>514 まずプログラム基礎を理解するために、
ブラウザ以外の特別な環境が必要ないJavaScriptでちょっとしたもの書きながら勉強するのがお勧め。
JavaScriptがある程度理解できれば、その他の言語もある程度わかるはず。
とくに目標がないなら、PHPからはじめることはないからね。
>>514 このテキストのこの単語がわからないとか、この機能がわからないってのなら説明できる。
でも全部教えては無理よ。とりあえず
>>1-8 のテンプレ読んで、
あとは「PHP 初心者」あたりでぐぐって出たサイト一通り見てはどうだろ。
522 :
514 :2008/02/18(月) 20:34:12 ID:???
皆さんありがとうございます。 テンプレをじっくり読んできます。
523 :
514 :2008/02/18(月) 20:38:02 ID:YSts7gLU
ID表示しないといけないんですね。 失礼しました。
>>523 そのまま使うのではなく、自分で考える事が重要だ。
考えずに使ってたらおにいたんがハッキングしちゃうからな。
>>513 一緒じゃねーぞ
波括弧は文字列のオフセット指定
ハッキングwww
すみませんPOSTで送られてきたデータを変数に取り込むために $HENSU[$a] = "".$_POST["$HENSU[$a]"].""; ↑の様に記述したのですが取り込むことが出来ません 具体的にどのようにすれば解決できるのかご教授お願いいたします (※$aは1〜30まであります)
すみません変数の部分を書き換えるときに癖で$をつけてしまいました 正しくは $HENSU[$a] = "".$_POST["HENSU[$a]"].""; ↑で取り込めません
529 :
nobodyさん :2008/02/18(月) 22:10:32 ID:Cm9tgJOR
上げ忘れ
>>527 extract($_POST);
var_dump($HENSU);
531 :
nobodyさん :2008/02/18(月) 22:21:55 ID:xGg4BipF
マルチバイト文字列のバイト数を求めるにはどうしたら良いのでしようか? 確実にstrlenがコールできるなら良いのですが strlenはmb_strlenに置換されてたりする場合があるかと思うので、 とても不安です。
>>530 ありがとうございます
それを元に頑張ってみます
533 :
nobodyさん :2008/02/18(月) 22:29:16 ID:YSts7gLU
>>524 マニュアルをコピペしてそれを使うなという事でしょうか?
意味を理解した上でなら構わないよ
>>520 JavaScriptとPHPどっちが難しいと言われればJSのが難しかったなw
あれ色んな記述ができすぎるからプログラム初心者には向かないんじゃね?
PHPはオブジェクト指向が加わると難しくなる 言語の難易度はポインタとオブジェクト指向で決まる
>>535 JavaScriptはクラスが入ると混乱してくるよね。
JavaScriptでクラス? ActionScriptじゃないのかそれ
>>538 JavaScriptに new というキーワードがあるの
しってるよね?
540 :
nobodyさん :2008/02/18(月) 23:19:00 ID:Ez7ZH7Qx
JavaScriptはクラスベースじゃない。 newがあるとか関係無いから。
>>539 所謂現状のJavaScriptはプロトタイプベース言語であってクラスベースじゃねーよ
もちろん仕様三版にもクラスって言葉は出て来るけどクラスベースな言語で言う「クラス」としてじゃない。
classって言葉自体は単なるFuture Reserved。
2.0仕様がクラスベース言語として生まれ変わるバージョン。
タマリンや、ある意味での先行実装であるActionScriptが参考になる
本気でいってるの? JavaScriptはオブジェクト指向言語なんだけど。
だからオブジェクト指向言語=クラスベース言語じゃねえ!w
基本的なこと学ぶだけならなんだっていいんじゃね? ブラウザによっては動かなかったとしても、おおまかなことが学べればいいんだし。 変数の使い方、関数やオブジェクトの使い方、条件処理、ループ処理なんかの基礎的なことができれば。
545 :
nobodyさん :2008/02/18(月) 23:35:35 ID:xGg4BipF
いや、だからそんな自転車小屋の議論は良いから strlenを確実に呼び出すにはどうしたらいいの? っていうか $foo="まこ" $cnt=0; while($foo as $dummy) { $cnt++;
ちょ、新言語作るなw
JS使いにはすごい引っかかる話題だけど、スレ違いなのよね
雑談は雑談スレ池。
551 :
531 :2008/02/18(月) 23:50:28 ID:???
取りあえずこれで解決することにしました お邪魔したし真下 <?php function strbyte($str) { $cnt=0; while($str[$cnt]) {$cnt++;} return $cnt; } $foo="マ○コabdアの川流れ"; $encs = array('sjis-win', 'eucjp-win', 'utf-8'); foreach ($encs as $enc) { var_dump(strbyte(mb_convert_encoding($foo, $enc, 'sjis-win'))); }
552 :
514 :2008/02/19(火) 00:05:59 ID:OsGt77+r
関連サイト全部見てきました。 次から次へと新しい事を発見してキリがないなっ!と思いました。 某所でアップロードプログラムはセキュリティに気をつけてくださいってのがいまいち理解できなかったです。 今日は寝ます。ありがとうでした。 でわ
>>531 >strlenはmb_strlenに置換されてたりする場合があるかと思うので、
これホント?
556 :
531 :2008/02/19(火) 00:31:38 ID:???
557 :
553 :2008/02/19(火) 01:15:18 ID:???
へえぇぇ 知らなかった。ありがとう。
>>556 return count(preg_split("`.`", $string)) - 1 ;
rerurnの後のいろいろ処理を付け加えるのは美しくない!
見にくい!
count関数の中に関数いれるのは
処理が重くなる、美しくない
何でもかんでも1行プログラミングにするな!
コーディングで考える優先順位
1.負荷
2.見やすさ
俺ならこう書く
$string = preg_split("`.`", $string);
$string_count = count($string)-1;
return $string_count;
>>558 公式に書いてあるのはそれがシンプルだってことじゃない?
いちいち変数に入れる方が無駄だと思うし、処理を一括できるほうが美しいと思う。
処理の意味も関数名でわかるし。
この場合は1行で正解だろ常考
>>559 これで速くなる(負荷が軽くなる)理由がわからん。
中間言語に置き換えるときに最適化みたいなのが動いて 実際の実行時は同じってことはないのかね?? といいつつも、複雑な1行だと却って構文解析?の時間がかかりそうな気がする オレがいる。
俺もわざわざ変数増やすのがキモくて無駄に感じるなあ 括弧連鎖が嫌なら複数行に開くし。 スコープ次第では実行時解釈で縮まるんだろうかね。
string_countて見やすくて分かりやすくていいねw
566 :
558 :2008/02/19(火) 02:15:19 ID:???
チームで作業したことのない 低脳土方職人にはわかるまい わかりやすい変数にいれて、みやすくしても処理速度は0.000001秒くらししか変わらん 見にくいコードにによる全体的な作業ロスを考えろ 俺はチーム作業が多いから 見易さ重視になってるし みにくいコードにわかりやすくコメントまで付けてるよ
大抵はオーバーロードされてないんだろうが絶対じゃないのはすっきりしないな。 そのために正規表現で分割してその数カウントしてバイト出すするなんて無駄にも程がある。
568 :
558 :2008/02/19(火) 02:18:32 ID:???
関数の中に関数を沢山いれるのはみにくい 最高でも2個くらいまでにしてくれ
可読性をそんな自慢げに言われても困る。
そんなことはいちいち言うことじゃない。基本だ。
そして、
>>558 は可読性の面においてもあんまり必要ないんじゃないの?って話だ。
自分のルールに反論されたからって喧嘩腰で返すのは子供だ。
retrun の後はできるだけ 返り値が一目で判断できる変数名にして欲しい
571 :
558 :2008/02/19(火) 02:26:46 ID:???
自分だけわかるコード書くと上司がため息つくんだよ 簡単にいえばバカでも、すぐわかるようなコードじゃないと 作業効率は落ちるんだよ
だからさ、自分トコのルールを全世界共通みたいに言われても困るって。 そーゆー書き方もアリだけど、一行で書くのもアリなの。 んなことでむきになってどうすんの。
573 :
558 :2008/02/19(火) 02:32:31 ID:???
自分トコのルールじゃないよ 複数人で共同作業すれば、どこでも同じ ベストは誰が見ても一目でわかるコード 負荷がかからないなら、できるだけわかりやすいコードにした方がいいよ
どこでも同じなのは読めるソースにしようって部分だろ。 return の後を変数にするか関数で一行で書くかは場合によりけり。 一行で書けるコードをわざわざ代入連発するより、一行で書いてコメント添えるだけでも通じる。 負荷が少ないからといってリソース使いまくっていいわけでもない。 俺ルールの押し付けもほどほどに。あともうこの話題はスレ違い。
>>559 同意。全然汚くない。
これが汚いのならPEARのソースは悲惨なことになる。
百歩譲って見にくいというなら、俺ならpreg_match_countとか新しい関数を定義し
return preg_match_count($str, "`.`");
とする。
チームがどうとか上司がどうとか誰も聞いていないし聞きたくない。
そんなに見にくいならLispでも覚えるか、新しい眼鏡買ったらいいんじゃね
577 :
558 :2008/02/19(火) 02:48:05 ID:???
>>574 趣味でサイト作りするなら
オナニーコード書いてる方がいいかもね
他人から見たオナニーコードほどきもいもんんはないよ
俺は相手を気遣ってコードを書いてるから
どうしても複雑なコードになってしまうときは
かなりわかりやすくコメントを書くよ
ああ、なんだいつもの荒らしか。
まぁ
>>556 が見にくいとか言うヤツとは一緒に仕事したくないな…
580 :
558 :2008/02/19(火) 02:52:03 ID:???
俺もたまには気持ちよくオナニーコード書きたいよな
まだやってんのかw。
582 :
558 :2008/02/19(火) 02:54:39 ID:???
自由気ままにコーディングできるっていいなあ
数日おきに荒らしにくるなこいつ。 まあ放置だ。今回はNGしやすい。
584 :
558 :2008/02/19(火) 02:56:58 ID:???
返り値を関数で返されたら一目でわからないからダメだ しかも俺俺関数で返しやがったら最悪
関数か分からないんですね
586 :
558 :2008/02/19(火) 03:49:50 ID:???
$string = preg_split("`.`", $string); $string_count = count($string)-1; return $string_count; 1.見やすい 2.コード拡張しやすい return count(preg_split("`.`", $string)) - 1 ; 1.見にくい 2.コード拡張しにくい ちょっとしたコード拡張のために わざわざ分解しないとけいない時間ロス
587 :
558 :2008/02/19(火) 03:59:21 ID:???
本来ならこう書くけどね function str_sizeof($string) { $string = ""; $string_count = 0; $string = preg_split("`.`", $string); $string_count = count($string)-1; return $string_count; }
588 :
558 :2008/02/19(火) 04:00:51 ID:???
間違えた function str_sizeof($string) { $string_count = 0; $string = preg_split("`.`", $string); $string_count = count($string)-1; return $string_count; }
しつこいわ。もう寝ろよ。
558に一票だ。 短く書いたら処理速度も速くなると勘違いする初心者が多くて困る。
>>586 $string = preg_split("`.`", $string);
$string = count($string)-1;
return $string;
$string = preg_split("`.`", $string);
return count($string) - 1 ;
592 :
531 :2008/02/19(火) 07:35:36 ID:???
>>566 すまん
スレだから短くしてただけで
普段はわかりやすい名前の変数に代入しまくりだよ
あと、
>>556 のコードはコピペだ
593 :
514 :2008/02/19(火) 08:00:00 ID:OsGt77+r
おはようございます。
どこに逝っても人間臭いスレはあるもんですね。
俺も558に1票だな returnにはあんまり書きたくないな
荒らし頑張ってるなぁ。
PHPの変数への代入速度の遅さ知らないのかな? ループ処理する場合は代入した方がはやいけどね。
そもそも難癖つけたいだけだからほっときなさい。 本当に仕事でやってる人がチームだの上司だのもっともらしい言葉使ってるけど出してる技術は低レベルだし 低脳土方、オナニーコード、他の方法全否定、暴言連発で仕事でやってる人の言葉じゃないのは丸わかりでしょ。
荒らし特有の連投と自演もだ。
558に加担するわけじゃないけど returnにあれこれ長い処理してるコードは あまりみないよ ルールとして決まってるわけではないけど returnのあとの処理は1関数(オブジェクト経由あり)、1変数が多いね
558の場合は言い分じゃなく完全に荒らし化してる言動や連投がまずいんだ。
で、可読性はともかく、負荷は軽くなるの?
変数を多様すればコードはみやすくなる 変数を使わないとコードはみにくい(関数の中に関数が深く入り込むコードになる) ↑ if文の中にif文が何個も深く入りこむコードと同じ。みにくい
>>602 当人も負荷の増加が小さいから無視していいと言ってるだろ。
逆に言えば、増えることはあっても減ることはない。
コードすべてに1行で済むのを5行10行と増やしてどうなるかは言うまでもないでしょう。
>>602 負荷と生産性どっちを優先するかは
プロジェクトによって違う
生産性の高いコードなら可読性
PHP使うくらいだから生産性の高いプロジェクトでコード書くことが多いだろう
新しくプロジェクト参加した人は可読性のいいコードがいいだろうな 解析時間が短縮される 毎度毎度、1行プログラミングに自己満足されるコードは勘弁
バグ探しも可読性が有利だよな
>>604 ,605
>>558 >count関数の中に関数いれるのは 処理が重くなる
って書いてあるけど、これは間違ってことでOK?
>>608 ループ処理のこといってるんじゃない?
for($i=0;$i<=count($a);$i++)
重い
$a = count($a);
for($i=0;$i<=$a;$i++)
軽い
見やすい
どっちにしろコメント添えるなら
>>591 で足りるな。
それに
>>588 のコードが否定されてるんじゃなく「それもあり」という前提になってんのに
自分のだけを認めろと連投で大騒ぎする588自身が否定されてるだけだしな。
>>608 >>609 だと毎回コールされるからね。
だから別に関数内にいれようがコール1回なら重くならない。
an httpdを使ってXP上でテストをしてるんですが
この時にgetenv('SERVER_NAME')を取得するとコンピュータ名が返るのは仕様ですか?
後、スクリプトのパス自身を取得したい場合は
"
http:// ".getenv("SERVER_NAME").getenv("SCRIPT_NAME") でいい大丈夫でしょうか。
>>609 それは「count関数を何度も呼び出せば遅くなる」であって
「count関数の中に関数いれるのは 処理が重くなる 」からではないよね。
単に
>>558 が間違ってるだけなら、それで良いです。どうもありがと。
614 :
558 :2008/02/19(火) 11:33:46 ID:???
615 :
612 :2008/02/19(火) 11:35:35 ID:uMI3ux4S
>>615 聞く相手を見分けるのもプログラマとして必要な資質だと思う。
ループの中にcount入れても毎回コールされるなんてことはなくて別に重くならない って結論前に出てなかったっけ?デジャブ? 処理を軽くする10の方法みたいなところで取り上げられてていろいろ突っ込み入って 結局有意な差は出ないってなってた気がするんだけど
618 :
558 :2008/02/19(火) 11:38:36 ID:???
>>615 俺の考えの何が正しくて間違いなのか
ここで書くとよくわかるからさ。それだけだ
619 :
617 :2008/02/19(火) 11:40:44 ID:???
ループの「条件の」中に だった ループの「中身の」中に入れたら毎回コールされなきゃだ
>>619 条件文は毎回評価されないとおかしくないか?
条件の中にcount入れたら毎回コールされなきゃおかしいでしょ? でも実際そんなにパフォーマンスは変わらん。何万回も回すなら別だけど。
コードの行数が長くなることが嫌なやつは rubyの方がいいんじゃない わかりやすい変数つかわなくても、いりくんだ関数も一目でわかるよ
624 :
617 :2008/02/19(火) 11:52:50 ID:???
関数の中に関数がはいる言語使用がクソなんだ rubyみたいに 関数.関数 で呼べれば見やすい
>>624 でなおしてこい!
おまえにPHPなんぞ使う資格はないわw
>>624 下のURLのやつ、個数が増えると何で差が少なくなるんだろうね。不思議。
$array[$i] で $i の値が大きくなるとアクセスが遅くなるのかな。
パフォーマンスのためにPHPのfor文でcountを使うべきではない ↑ 常識
629 :
617 :2008/02/19(火) 12:08:30 ID:???
全角厨には言われたくないなw
>>628 えっ?
PHPってそんな情けない言語なの?
それじゃMatzが糞言語というのも理解できるなぁw
ていうかこんな低級な議論をしている言語ってPHPくらいだよね。冗談抜きにしてさ。
もう完全にスレ違いだしそろそろ落ちつけ。
PHP使ってるヤツは自分が正しいと思ってる。
638 :
nobodyさん :2008/02/19(火) 14:25:30 ID:rf+/c0h3
$uho = array("アルファベット","ひらがな","漢字"); $uho[0] = array("A","B","C"); print $uho[0][1];//B のように現在記載していますが $uho = array("アルファベット","ひらがな","漢字"); $uho[0][] = "A"; $uho[0][] = "B"; $uho[0][] = "C"; print $uho[0][0]; のように記述したいのですが何も出力されません。 何か他に記述法はありますか?
>>638 >$uho = array("アルファベット","ひらがな","漢字");
の意味がよくわからんけど
$uho[0] = array();
$uho[0][] = "A";
$uho[0][] = "B";
$uho[0][] = "C";
print $uho[0][0];
ではだめなん?
>>638 ini_set('display_errors', 'on');
$uho = array("アルファベット","ひらがな","漢字");
$uho[0][] = "A";
$uho[0][] = "B";
$uho[0][] = "C";
print $uho[0][0];
無視するのが正解だろ 低級な議論を持ち出す奴は中の人が低レベルということでFA出ている
まだいたのか。
643 :
514 :2008/02/19(火) 14:44:42 ID:OsGt77+r
どうも。プログラミング暦2日目です。 $stop_word=array('ボケ','死ね','馬鹿'); $num=count($stop_word); for($i=0;$i<$num;$i++){ if(strstr($message,$stop_word[$i])==true){ print("禁止語が含まれています。"); exit; 上から4行目のstrstrってのが何の働きをするのか理解できません。 マニュアルを見たら 文字列が最初に現れる位置を見つける なんのことやらさっぱり よろしくお願いします。
>>643 >文字列が最初に現れる位置を見つける
これは多分書いた人がstrposの説明と混同してる。
print strstr('親馬鹿子馬鹿', '馬鹿');
で帰ってくるのは「馬鹿子馬鹿」。1つめの馬鹿が見つかった位置以降の文字列を返してる。
つまり「最初に現れた位置以降の文字列を返す」のがstrstrの機能。
これで禁止ワードがあったときに strstr($message,$stop_word[$i])==true が真になる。
文字列発見するだけならstposのがいいけどまあそれはあとでいい。
>643がわからないのは 文字列==ture という比較の不思議さじゃないかと推測
マニュアルをもっとよく読め 返り値で何返すか等 日本語の説明をしろってことならしねよ
>>645 確かに真偽値は最初は混乱するわな。
FALSEになるのは何も代入されてない変数、空文字列、文字の0、数字の0あたりかな。
TRUEがその逆。何か代入されていて、中身が0ではなく、空文字列でもない。
つってもいきなり始めたらわからんよなー
>>646 おつかれさん。
テーブルの表示をさせる場合と、編集させる場合でいちいち別のコード書きたくないんだけど この辺楽に構築できる方法ありませんか? smartyとか持ってそうなんだけど見つからない。
649 :
638 :2008/02/19(火) 15:53:16 ID:rf+/c0h3
ちなみにPHP5です。
>>639 複数行ログがあるファイルから一度のループでアルファベット、漢字、ひらがなのデータを分類するスクリプトを作成しています。
書いていただいた方法では駄目でした。
>>640 エラーは出ませんでした。念のためarray_pushを利用してみましたがやはり駄目でした。
650 :
638 :2008/02/19(火) 16:09:29 ID:rf+/c0h3
すいません、
>>639 で試したら解決していました。
お騒がせしました。
ありがとうございました。
そりゃそうだろう。 >$uho = array("アルファベット","ひらがな","漢字"); これじゃ $uho[0] は "アルファベット" っていう文字列型なのにそれを配列として扱おうとしてんだし $uho[0] を配列として定義しないと通らんよ。
652 :
638 :2008/02/19(火) 16:17:14 ID:rf+/c0h3
>>651 勉強になりました。
$uho = array("1","2","3")のように数字だけの場合は動いてしまっていたので勘違いしていました。
653 :
nobodyさん :2008/02/19(火) 17:11:42 ID:p5AS/DW/
今、PHP5の勉強をしています。 SQLiteからデータベースのテーブルを呼び出すところで、参考にしている書籍の スクリプトの書き方がわからなかったので、教えていただけませんか? 下の、3行目なのですが、 $rs=sqlite_query("SELECT * FROM schedule ORDER BY s_date",$db); では、駄目なのでしょうか? ORDER BY のあと、何故にクエリが2つも(s_date,s_time)あるのか不思議に思いました。 <?php $db=sqlite_open("schedule.sqlite",0666,$err); $rs=sqlite_query("SELECT * FROM schedule ORDER BY s_date,s_time",$db); ?> <h1 style="background:#cccccc">簡易スケジュール帳</h1> <table border="1"> <tr> <th>日付</th><th>時刻</th><th>予定名</th><th>備考</th><th>削除</th> </tr> <?php while($row=sqlite_fetch_array($rs)){ ?> <tr> <td><?php print($row['s_date']); ?></td> <td><?php print($row['s_time']); ?></td> <td><?php print($row['title']); ?></td> <td><?php print($row['memo']); ?></td> <td><input type="button" value="削除" onclick="location.href='schedule_delete.php?sid=<?php print($row['sid']); ?>'" /></td> </tr> <?php } sqlite_close($db); ?> </table>
そりゃ日付が同じなら時刻順に並べたいからだろ
657 :
653 :2008/02/19(火) 17:20:09 ID:p5AS/DW/
>>654 失礼しました。
PHP5に付随する質問でしたので、こちらでよいものと思っていました。
>>655 早速のご回答ありがとうございます。
sort的と言っては、まずいかもしれませんが
優先度を決める為の書き方なのですね!参考になりました。
658 :
653 :2008/02/19(火) 17:23:01 ID:p5AS/DW/
>>656 即レス、感謝です。
ありがとうございました。今後の参考になります!
>>653 すごいソースだなw本を代えた方がいいよw
こういうソースみるとイライラしてきて壁殴りそうにならない?
661 :
nobodyさん :2008/02/19(火) 18:42:06 ID:UiHW3K4+
ttp://www.harikonotora.net/ こういった画像掲示板サイトはどう作ればいいのでしょうか?
HTMLとCSSのみでは、このようなサイトの製作は難しいと思います。
掲示板に画像を投稿するシステムや
こういったサイトに最適なサーバなどありましたら教えてください。
よろしくおねがいします
662 :
nobodyさん :2008/02/19(火) 18:46:19 ID:bsmDlf5I
>>661 ここに載せるということは、もう既にPHPで作ると決めてるということですか?
僕に恋した君の気持ちをPHPで書いてください。
665 :
nobodyさん :2008/02/19(火) 19:04:56 ID:UiHW3K4+
>>663 お返事ありがとうございます。
PHPまたはCGIで製作しようと考えております。
HTML、CSSは一通り理解しているのですがPHPに関しては無知に等しいです
アドバイス等、いただけると幸いです
ニコ動ってPHPなの?
>>665 相当なやる気があるなら作れるだろうけど
普通の人がHTMLとCSSは一通り、PHPは無知な状態から作れるものではない。
手ごろなWebアプリ作成から始めることをお勧めするよ
>>665 皆無ですか。
そんな貴方に私から出来るアドバイスは、少なくともシステム部分に関しては
システム屋へ外注なさるのが早いかと存じます。
include_path = ".;c:/php/includes;c:/php/pear" インクルードパスのc:/php/pearに存在するふぁいるのなかでも インストールしたpear関連のファイル(DB.phpとかMail.php)だけ読み込めないんだけど この現象何が原因なのでしょうか
>>666 だろ けっこPHPの事例として引き合いに出されるし
もっとスキルの高い解答者が欲しいよなぁここ・・・ 初心者〜中級者入り口手度のやつしかいねぇ・・・
そうだな。俺の質問もスルーされたし。
で、おまえは誰?
そもそもそんな高いスキル持ってる奴はこんなとここないだろ
PHP歴8年ですが。。。 ただいまCakePHP慣れきたとこで symfonyに覚えてます フレームワーク乱立のおかげで覚えること沢山で困ります 昔はそんなに覚えることなかったのにな
> 昔はそんなに覚えることなかったのにな PHPに限らないが、 覚えることが少ない言語は 自分で作らないといけないものが多く、 覚えることが多い言語は 自分で作らないといけないところが少ない。
678 :
nobodyさん :2008/02/19(火) 22:27:37 ID:bDEijUku
Perlからモジュール版のPHPに移ってきたのですが、 Perlと比べてパーミッションを気にする必要がないようですが、 普段のphpファイルのパーミッションはいくつに設定しておいた方が宜しいでしょうか? とりあえず、現在は全て777に設定しています。 宜しくお願いします。
自分で作るから覚える分が少なくて済むが、 既製品で済む場合はそれの使い方覚えないといかんからな。
>>678 そのままでいいよ。644とか。
phpを通してファイルに書き込むなどといったことをするときは、
当然そのファイルを666とかにしないといけないけど。
>>669 普通に
include 'DB.php';
とかしてもincludeできないって事?
>>671 ここにスキル高い質問なんて無いだろ
なんってたってスレタイが「下らねぇ質問はここに書きこみやがれ」だからな。
ていうか自分がそういう回答者になればいいだけだろ
質問が無いのにどう回答しろというのだw
以上、下らねぇ回答の見本です
686 :
nobodyさん :2008/02/20(水) 01:29:19 ID:mRMNoFj0
まさに「下らねぇ質問」です。 前から疑問に思ってた事です。 「PHP」の正式名称は「PHP: Hypertext Preprocessor」 つまり「PHP」は「PHP: Hypertext Preprocessor」の略語ですよね。 でも正式名称である「PHP: Hypertext Preprocessor」の先頭にも略語の「PHP」の文字がありますよね。 じゃあこの先頭の「PHP」はさらに正式名称があるわけですか?
Personal Home Page Tools
PPPH
689 :
nobodyさん :2008/02/20(水) 01:44:48 ID:mRMNoFj0
>>687 有難う御座います。
php3.xあたりから入ってたもんですから
php1.xの頃の話なんて全然知りませんでした。
再帰的頭字語くらい知っておこう
<?php $time = date("現在の日時は、Y年m月d日 H時i分s秒です。"); print($time); ?> と書くと現在の日時は、M2008・02月20日 08時05分28秒です・03 って表示されます。大文字のMと です・のあとの03ってのが邪魔です。 どうすればいいんでしょうか?
SJISで書いてるような気がする
ありがとうございます。
Shift JIS (笑 いつの時代?w
笑うほどのことか? ケータイなら出力はShiftJISだし、その流れでソースもShiftJISで書く初心者は多いだろ。
ケータイの出力がsjisだからsjisでソース書く初心者が多いという流れがよく分からんので詳しく教えてくれ。 PHPユーザは携帯サイト作成から入ることが多いという意味か?
テキストエディタとか全部デフォルトの設定でSJISが多いから最初はSJIS多いだろうな
699 :
nobodyさん :2008/02/20(水) 11:34:03 ID:0elSO0M+
配列から特定のキーの値のみ削除することは可能でしょうか? array_shiftやarray_popは先頭・末尾でしたので・・・ Array ( [Red] => ringo [Blue] => budou [Yello] => banana ) 関数("Blue") Array ( [Red] => ringo [Yello] => banana )
701 :
nobodyさん :2008/02/20(水) 12:22:49 ID:0elSO0M+
配列から特定のキーの名前を変更は可能でしょうか? キーの順番は変えたくありません。 Array ( [Red] => ringo [Blue] => budou [Yello] => banana ) 関数("Blue","Green") Array ( [Red] => ringo [Green] => budou [Yello] => banana )
703 :
nobodyさん :2008/02/20(水) 13:24:28 ID:0elSO0M+
699=702かと思った。
>>702 順番変えたくないなら、もう一個配列作って、順番に入れてったらどうだ?
テンプレ読まないアフォ☆にそれに答えるアフォ☆
709 :
nobodyさん :2008/02/20(水) 13:54:54 ID:0elSO0M+
「大阪府大阪市」 を mb_splitの[都道府県]で分解すると 「大阪」と「大阪市」になりますが、 「大阪府」と「大阪市」に分けることって可能でしょうか? 区切り文字消さないオプションとかないですよね・・・orz
都道府県なら数も知れてるし個別対応すれば?
>>702 配列に入れる段階で順番にこだわる理由がわからない。
実際に配列を操作するときは特定のアルゴリズム下で行われるべきなので、
最終的にソートして表示したときなり、検索して取り出したときの結果は変わらない。
べきでもなんでもないし、可読性が低下しないなら、便利な機能は使えば良い。
>>712 可読性とかそういう問題じゃない。というか配列の順番に可読性も何も・・・
DBから取り出して配列にいれた段階で、その配列を実際眺めるなんてことしないだろ。
膨大なデータになればなるほど、そんなこと考えたりしない。
配列というのは、どういうグループでどういう値が配列に入っているかを理解していればいい。
あとは配列を操作する段階でどうにでもなる。
714 :
nobodyさん :2008/02/20(水) 15:03:20 ID:0elSO0M+
>>710 サンクスです
とりあえず都道府県47個は個別対応してみます。
あー、まだ質問あるけど流石に自重しなきゃ('A` )
>都道府県47個は 都道府の4つ+それ以外でいいような?
716 :
nobodyさん :2008/02/20(水) 15:18:37 ID:0elSO0M+
>>715 大阪府東大阪市→大阪 東大阪市
になるので、そこから「大阪」で検索かけて「府」を取得しようかと・・・
宮崎県都城市 さて
うん。だから、「東京」「北海」「大阪」「京都」の4パターン以外は、もう「県」で決定だよね?
719 :
nobodyさん :2008/02/20(水) 15:23:14 ID:0elSO0M+
>>718 も・・・もしかしたら、他に都道府県が増えるかも・・・
ないよね、うん、ありがと
そんなの、動きゃ何でもよくない? 本当に下らない質問だな。
721 :
nobodyさん :2008/02/20(水) 15:24:16 ID:0elSO0M+
そうだなスレタイどおりだな
>>716 内部処理でつかんだよね?
内部処理するだけなら都道府県がついててもついてなくても不都合はないでしょ
725 :
nobodyさん :2008/02/20(水) 15:27:38 ID:0elSO0M+
>>724 住所最適化のために住所データベースより該当する行を取得しているんだけど、
京都府京都市大阪〜みたいな変な住所があったorz
複数キーワードを用意して、一番多くマッチした行の順番で返しているから、
「大阪」だけだと、「京都府京都市大阪」も「大阪府大阪市」も返ってくる。
岐阜県山県市とか注意が要りそう。
727 :
nobodyさん :2008/02/20(水) 15:30:23 ID:0elSO0M+
>>726 見事に岐阜県岐阜市芥見海戸山が一番上に\(^o^)/
ハァ・・・
^(北海道|京都府|大阪府|東京都|.*?県)(.*)
みんな大好き正規表現!
2バイト文字コード恐怖症
データ登録を作る際注意すべきことはなんですか?
SQLインジェクション
住所の正規化むずすぎ・・・
正規化って言葉間違ってるから気をつけろな
>>735 住所を
都道府県 市区町村 地域名・町名 番地
に整えたいんだが何て言えばいいのよ?
自分は正規化って言葉が妥当だと思うが SIerには(住所の)名寄せって言う人が多いかも。
住所の整形
正規化では無い。 俺は4万件だったけど、おおよそ郵便番号使って分けた後、 入力ミスや合併前等は人海戦術だった。
最初っから 都道府県 市町村 それ以下 の三つで入れてもらえば良くね って後処理の話だっけ?
つ「フリーワード検索」
742 :
nobodyさん :2008/02/20(水) 18:33:27 ID:0elSO0M+
set_time_limitは0で無制限になりますが、 memory_limitの無制限は可能ですか?
743 :
nobodyさん :2008/02/20(水) 18:51:43 ID:6Ca7eWC6
$array = array(2, 1); というのがあって、この値を1, 2に入れ替えたいのですが、 直感的に、 $array[0] = $array[1]; $array[1] = $array[0]; という風に書いてしまうと、両方1になっていまいます。 それで記憶用の変数を用意し、 $i = $array[0]; $array[0] = $array[1]; $array[1] = $i; のようにすると思ったとおりになってくれるのですが、 もっと適切な書き方はありませんか? 他言語でも応用するので、PHP特有の書き方やPHP関数の使用ははなしの方向でお願いします。
744 :
nobodyさん :2008/02/20(水) 18:53:12 ID:0elSO0M+
array_reverse
745 :
743 :2008/02/20(水) 18:56:21 ID:???
>>744 それはPHPのネイティブ関数なので・・・
それと説明足りませんでしたが、ただ単に逆順にいれかえるというわけではないです。
他の言語って何に使うの? アセンブラとかするならもっと細かく書くけど、 ってか関数かしちゃえばいいんじゃない?
ここPHPすれなんだけど
748 :
743 :2008/02/20(水) 19:04:59 ID:???
>>746 JavaとVBです。
各言語の関数等をつかうか、作るかしかないですかね。
左辺と右辺を交換できるような、どの言語でも実装されてる演算子みたいのがあれば一番いいのですが。
$array[0] ⇔ $array[1]みたいな。ないですよね、そんなの。
>>747 すみません。一応PHPでやっていたので。
質問に書き方の制約がついても問題ないかと思いまして。
巧妙な釣りか?
変数の入れ替えは
>>743 の方法がどの言語でも主流だよ。
一時変数使いたくないならビット演算使うのが定番だが 本当の馬鹿に対する可読性が心配になるので避けがちだな >ただ単に逆順にいれかえるというわけではない の内容が分からん事にはなんとも
解答できないとなんでもスレ違いにする文盲で低脳はどっか逝け
phpでクラスを定義して、 コマンドラインから実行するときに、 メインで実行される暗黙のメソッドはないのでしょうか? javaでいうmainメソッドみたいなものです。 アドバイス宜しくお願いします
755 :
754 :2008/02/20(水) 22:22:29 ID:KIJWvRfX
すみません。下げていました。
>>755 そういうのは無いな
コンストラクターとは違うんだよな?
757 :
754 :2008/02/20(水) 22:32:39 ID:KIJWvRfX
>>756 無いですか...
class_Cというクラスがあり、コマンドラインから
$ php ./class_C.php
と実行すると、
class_C内の特殊なメソッドが呼ばれるようなイメージです。
$ java ./classC
とやると、自動的にclassC内のstatic void mainが呼ばれるようなイメージです。
コマンド内からphpクラスのコードを実行する方法が思いつかないので。
>>754 public static function mainでも作って書いておけば?
無理にjavaのマネする必要なくね?
760 :
754 :2008/02/20(水) 22:40:26 ID:KIJWvRfX
>>758 >>759 やっぱりないですか...
既に作ってあるクラスがありまして、
それをシェルから呼びたいのですが、
何かいい方法がないかと思いまして。
クラスを作り直すのはできれば避けたいのですが、やっぱりダメそうですね。
ありがとうございました。
>>754 どうやってそれを実行するつもりやったん?
そのクラスのメソッドを呼び出すバッチ作ればいいんじゃね?
763 :
754 :2008/02/20(水) 23:02:54 ID:KIJWvRfX
>>761 イメージ的には、これをcronデーモンから実行させるイメージでした。
-----------------------------------------------------------
#!/bin/sh
/usr/local/bin/php /public_html/hogehoge/MainClass.class.php
exit
-----------------------------------------------------------
クラスではなくベタ書きならうまくいくのですが、
そのクラスは既にテスト済みで、そのファイルだけクラスじゃないのは、ちょっとと思いまして。
>>762 すみません、それはどういうような機構でしょうか?
宜しければ、その方法をアドバイスいただけないでしょうか?
>>763 だからそのMainClass.class.phpでどのように
そのクラスを実行する設計を?
定義して放置プレイ?
765 :
754 :2008/02/20(水) 23:33:51 ID:KIJWvRfX
>>764 MainClass.class.phpは、実行するクラスではなくて、
実装される側のクラスのことです。
実行主体はcrondです。できれば、MainClass.class.php内部はいじらずにできればいいのですが、厳しいそうですね。
おまえは卓球(テーブルテニス)にもテニスラケット使うようなやつか?
球技(言語)が変わったらその言語の基本くらいは勉強しろカス
ってことで
>>8
PHPをソースからインストールしたのですが、インストールした時点ではzlibを有効にしませんでした。 しかし、今更zlibが必要になってしまったのですが、再インストールするしかないのでしょうか? バージョンはPHP5.2.5です。 よろしくお願いします。
768 :
nobodyさん :2008/02/21(木) 00:11:51 ID:vEZx6YzI
>>765 php -r 'require "MainClass.class.php"; MainClass::main();'
みたいにしたら駄目なん?
769 :
743 :2008/02/21(木) 00:14:20 ID:???
レス遅れてすみません。
>>750 ありがとうございます。ではその方法でやることにします。
>>751 ビット演算子ですか。あれは難解なので避けてます・・・
でも参考になります。ありがとう。
>>758 もちろんJavaで配列のようなことはコレクション使いますけどね。
ただどうしても今回必要だったので…
というわけで
>>750 さんのアドバイスどおりにしたいと思います。
>>765 たしかCLIの時だけ、というかCLiで実行した事を判定できる変数かなんかがあるから。
その時だけ実行するロジックを組めばいいんじゃね
それすらも変更できないんなら知らん
771 :
770 :2008/02/21(木) 00:24:19 ID:???
>>765 php_sapi_name()
か
PHP_SAPI
だな
俺超優しい
773 :
770 :2008/02/21(木) 00:38:15 ID:???
>>768 でもいいきがしたが、関連情報を一応言っただけやんw
MainClass.class.phpをインクルードしたファイルをcrondで実行すればいいだけの気も・・
776 :
nobodyさん :2008/02/21(木) 01:24:48 ID:rvNkXnTF
配列の要素に同じものがないか調べる方法ないですか? 配列は連想でも多重でもない単純な形のものだとしてお願いします
array_uniqueとか
ごめんよく見たらarray_intersectとかあった
>>754 PHPにmain関数などない
メソッドからはみ出たとこがmain関数だと思え
クラス。メソッド以外のすべてがmain関数でもある
main関数の中でクラスやメソッドを定義してるのと同じだ
だいたいcronで呼ぶスクリプトに クラスなんて使うなや?非効率もいいもんだ なんの為のスクリプト言語やと思ってんだ
cronで呼ぶ処理なんて超超小規模やん なんでクラス使うん?
おまいらPHP、PHP偉そうにゆうけど PHPでなんぼ稼いだんや?
世の中金じゃないゼって言いたい
シェルスクリプトでいいじゃん
http://jp.php.net/count Example#2 再帰的な count() の例 (PHP >= 4.2.0)
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// 再帰的なカウント
echo count($food, COUNT_RECURSIVE); // output 8
// 通常のカウント
echo count($food); // output 2
?>
何故6でないのか謎すぎる。
786 :
nobodyさん :2008/02/21(木) 03:55:02 ID:uBvv/k1H
すみません、質問です。。。 XAMPPをインストール後に以下の手順でエラーがでてしまうのですが、何が原因なのでしょうか??? 1. Terminal shellに行って、システム管理者ルートでログインします。 sudo su 2. XAMPPをスタートするには、このコマンドをコールしてください: /Applications/xampp/xamppfiles/mampp start ここで、このような感じのエラーメッセージがでていまいます。 (No such file or directory, errno = 2) XAMPP: Error 133! Couln't start ProFTPD! ちなみにこの段階でXAMPP Control Panelを起動しようとすると「このシステムとは互換性がないためアプリケーションを起動できません」とメッセージが出てしまいます。 OSはMacOSX.2.8で、インストールしたのがXAMPP Mac OS X 0.7.2です。とても困っていますのでどなたかよろしくおねがいします。
なんだ、マルチかよ。 あっちで答えちまった・・・
案件転がしてた方が儲かる、もちろんPHP使う奴を安く叩くのが俺の仕事 おまいら頑張って技術磨いとけよ!!俺の金の成る木なんだからな
789 :
514 :2008/02/21(木) 09:16:22 ID:FrueJpz5
どうも いつもお世話になります。 ある程度理解できました。 次は何をすればいいんですかね?
791 :
nobodyさん :2008/02/21(木) 10:25:29 ID:v3nyJWBc
30万行ほどのデータをPEAR::DBを通してデータベースにぶちこむ作業をしているのですが、 40%ほど処理したところで Fatal error: Out of memory (allocated 2001731584) (tried to allocate 37 bytes) in C:\xampp\php\PEAR\PEAR.php on line 863 のようなエラーが出ます。 これは何か変数に格納していって、それが溜まっているのでしょうか?
792 :
nobodyさん :2008/02/21(木) 13:53:21 ID:mkhVTZDn
gmdateの第2引数にtime()+9*60*60を指定すると正しい時間になるのですが getdateの引数に同じものを入れると更に9時間進んだ時間が取得されてしまいます。 getdate関数は自動的に国別の時間のずれを計算してくれるということでしょうか?
>>792 サーバーの設定じゃないかな?
東京標準なら国際標準より9時間進んだ値で設定されてるし
794 :
nobodyさん :2008/02/21(木) 13:58:06 ID:mkhVTZDn
>>793 ということはgetdateはサーバの設定を見て東京標準であればそれで計算して
gmdateの場合はサーバの設定関係なくグリニッジ時間で計算するということですか?
796 :
nobodyさん :2008/02/21(木) 14:10:34 ID:mkhVTZDn
あ、ホントだ思いっきり最初に書いてあったorz スレ汚し失礼しました。
>>789 エスパーじゃない俺にはある程度がどの程度かわからないのでなんとも言えない。
798 :
514 :2008/02/21(木) 15:11:30 ID:FrueJpz5
>>797 配列と関数と制御は理解しました。
本持ってないので買うのがいいですか?
お勧めの本とかございましたら教えて頂けると幸いです
800 :
514 :2008/02/21(木) 15:21:07 ID:FrueJpz5
>>799 そうですね。 自分で見て自分にあった物を買うのがいいですね。
失礼しました
とりあえず数行程度の細かいプログラムを書きまくれ。
>>798 本読むよりPHP 配布とかでぐぐって配布してるフリーのPHPのコード読んだほうがためになる。
最初はさっぱりわからんだろうが関数が実際どういう用途で使われるかもわかってくる。
>PHP 配布とかでぐぐって配布してるフリーのPHPのコード読んだほうがためになる。 これはやめたほうがいい。 公開されている多数の日曜プログラマコードは糞。 phps○otとかは害悪。
PHPの綺麗なソースって本当にないよな 市販の入門本やオライリーにいたっても、PHPのソースはベタコードでgeekなものだし お手本作法的なフォーマットが知りたいぜ
Eclipseで書いたら自然と綺麗にならないかな? あと、ソースって言っても好き嫌い(書き方)もあるから一概に綺麗なソースとは言えないぞ 中国産のソースなんて何が入ってるもんかわからないし
昔は美しいコードを書くことを考えていたが、仕事でくだらないものを 量産してるうち、最近はもう、動きゃいいかになりつつある。
誰がうまいことを(ry Eclipseで書いても結局プラグイン次第。 インデントされてればなんでも綺麗に見えるマジック。 実際は補完機能も本場Javaのものより劣ってるし、そこまで綺麗なものでもない。 結局は書き手次第だな。
>>806 最初は綺麗なソースを作ろうと頑張っていたけど、
仕事で汚い理不尽なやり方を教わって、
とりあえず売れればいいかという思考になりつつあるのか
809 :
806 :2008/02/21(木) 18:15:20 ID:???
>>808 いや違うな。教わったというより、自分で知ったんだ。
綺麗に書きたいのは本音だが、変な事に頭を使う暇があったら、設計やテストに時間を割くべき、と。
客の求めてるものは綺麗なソースでは無い。所詮はプログラマのオナニーなのかな、とね。
綺麗なソースはあくまで保守性を高めるものだろう。 そのソースを変更してシステムを作り変えたりしたなら、 少しはその恩恵にあずかってると思うがな。 あと共同のプロジェクトで使う場合なら他人は喜ぶ。
その他人が汚く書くからなー……一人で上げれるような仕事じゃねえからしゃーないが 売上げさっぱりでプロマネが腐ってるからなー 「将来の効率化のための仕事」はサボってるに等しいんだとさ。 どうせ書き直す日には古臭いだけのコードになっているだろうとかなんとか。経験則だかなんだかしらんが、反論しにくいのよなー ウチも先長くねえな。俺も含めて。
>>810 どうだろうね、SIの現場じゃソースコードの再利用なんてほとんどされないし、
「再利用してます」っていうのもせいぜいコピペ改変。
ソースコードを修正したときに影響範囲が狭いほうが「保守性が高い」ということに
なるだろうし、ベタなコードの方が良い場合も多いだろ。
だからフレームワークを使うんだろうな。 一番の再利用はフレームワークを使うことに他ならないだろう。 まあたいていは自作じゃなくて、外部のフレームワークを 再利用することになるが。
814 :
806 :2008/02/21(木) 18:35:53 ID:???
>>810 俺だってプロジェクトで仕事してるし、保守も多いから他人のソースはよく見るが、
クラス化しときゃ余程長いソースで無い限り、どう書いたって追ってけば分かる。
それとも、綺麗さってのはインデントとかそんなレベルの話?
フレームワークは当然だけど、それ以外に誰だって大なり小なり 使いまわしの自作関数は持ってるもんじゃない?
綺麗さって当然設計の綺麗さのことだろ? 客のどんな要望にもすぐに耐えうる「シンプルで柔軟性のある設計」 テスト漏れで客に迷惑をかけない「テストがしやすい設計」 バグが客が迷惑をかけない「バグが発生しにくい設計」 綺麗っていうことは、客の為にあるんだよ。
あと綺麗なドキュメントなw
スレ違いなんで、これ以上は書かないけど、「客のため」ってことをやたらと主張する人間は 経営者にしろ、営業にしろ、エンジニアにしろ信用できないのばっかり。 考える事をやめてる人間がよく言う。
>>818 じゃあどうしろと?w
考えるのをやめないで、ちゃんと考えてレスしてねw
典型的すぎ
これはなあ。さすがに引くわ
822 :
514 :2008/02/21(木) 20:11:14 ID:FrueJpz5
>>801 ありがとうございます。とにかくプログラム書きまくります。
>>802 はい。他の人のコードを読んでもっと勉強します。
>>803 あそこのコード糞なんですか・・ 分かりやすいと思ったんですが。
僕の知識不足ですかね・・
823 :
nobodyさん :2008/02/21(木) 20:15:16 ID:jJmAtctQ
こんばんは。高校生です。
最近、インターネットにおいてブログやホームページ製作の分野に興味があり
HTMLとCSSの技術をある程度身につけることができました。
ttp://blog.with2.net/ そんななかこちらのブログランキングとであったのですが
こういったランキングサイトはCGIかPHPで成り立っているのでしょうか?
自分もランキングサイトを製作してみたいのですが
どういった言語で成り立っているのかわからず、言語に関して無知の状態です
なにかアドバイスいただけると幸いです。
よろしくおねがいします
他のページの拡張子見るとphpだな 404見るとapache1.3.34でmodule表記ないな
拡張子phpでもperlで動いてるかもしれないし。 バックグラウンドでjava/servlet使ってるかもしれないし。 意表をついて静的htmlかもしれないし。
826 :
nobodyさん :2008/02/21(木) 20:46:36 ID:wtHgKY9F
X-Powered-By : PHP/4.4.3 らしいけど別にPHPでなくても作れるし、好きなの選べばいいと思う。
>>823 レスポンスヘッダーによると
Apache/1.3.37
PHP/4.4.7
828 :
nobodyさん :2008/02/21(木) 21:03:34 ID:jJmAtctQ
>>823 です
みなさん、ご回答ありがとうございます。
ランキングのin、outの仕組みをつくるには
PHPが基本となっていると判断してよろしいでしょうか?
PHPに関しては無知に等しいです。
これからPHPに学ぶことに対してオススメの学習方法
およびサイト等、ありましたらご教授いただけると幸いです
よろしくおねがいします。
>>828 とりあえずPHPとか関係なくプログラムのいろはを勉強しろ。
ゆとり丸出しの質問してるようじゃあ完成する前に挫折するぞ!
もう来るなよ
>>828 PHPに限らずWeb言語なら何使っても作れる。
長所と短所を調べて自分に合った言語を選べばおk。
その上でPHPを選ぶなら、まず公式マニュアルを一読すること。
次に、紙ベースが好みであれば書店で手ごろな入門書を1冊買って全て試してみる。
紙ベースにこだわらないなら、Web上の入門サイト、blog、技術系ニュースサイトの特集なんかを見てやれば十分身に付く。
基本を覚えたら、日記帳でも掲示板でも適当なシステムを自分で作ってみる。
ここまで順調にこなせたならば、またこのスレに来て次のステップを聞くとよろし。
ついでに言うと、件のサイトほどのデータ量を扱うシステムならDBも使ったほうが楽かと。
>>823 君は若い。もしかしたら将来プログラマになる可能性も秘めているかもしれない。
もし将来的に〜ってことを考えて、今Web関連技術を勉強しているのであれば、
WebアプリケーションはPHPではなくJava(Servlet/JSP)を用いたものを作れるといいだろう。
Javaは幅広い分野で応用もきくし、PHPのような曖昧言語ではないので、
初心者からやるにはぴったりの言語だ。
もしPHPからはじめてしまって、新たな言語をやる場合、
俺のように型シラネ(゚听)、OOPシラネ(゚听)となって苦労するぞよ。
J2EE開発の場合、最初の環境構築で挫折しそうだけどな。
>>831 俺も基本的にPHPから始めたが
今は普通にJavaとかC#とかいじれるぞ?
勉強不足なだけじゃないの?
834 :
nobodyさん :2008/02/21(木) 22:26:09 ID:jJmAtctQ
みなさん、ご回答ありがとうございます。 目的を明確にし、日常生活の中で合間を縫って学びたいと思います。 たくさんの意見を聞くことができて光栄です。 本当にありがとうございました。
>>834 いや礼はいいんだけど、そんで結局どうすんの?
>>823 PHPはWEBに特化した言語だから
WEB言語では王様みたいなもの
豊富なライブラリとフレームワークとドキュメント量からみてもNo1
>>873 Webに特化して開発してるからNo1っていうのはおかしいだろ
APACHEにモジュール実装するとか? THTTPDとかそういうのにノータッチだが大丈夫だろうか、俺。
だから案件によって正しい選択すれば良いだけだっつの NO1とかベストとか絶対的な物のわけない まずはメジャーなphpとJavaどっちもやってみればいい なんならperlもやってみればいい
841 :
nobodyさん :2008/02/22(金) 01:58:11 ID:hL86toCQ
すみません。 携帯メールの改行コードってなんなのでしょうか? \nとかじゃないんですか?
しかしまーjJmAtctQの人のような ほんとイチからやる人にお勧めできるようなサンプルコードって何があるだろねー。 お題はBBSとか、実際に設置して遊べるようなのが良いのかな。 フレームワークとかOOPとかいうのをいきなりそこをやるよりは いくつかベタベタなものを経験してからのほうが それが必要な意味がわかるって思うんだ。
>>842 アルゴリズムやってから、UMLを勉強しつつオブジェクト指向を学ばせて
フレームワークのソースでいいんじゃね?急がば回れってね。
クズコードみてもなんの勉強にならない。
ところでみんなは何でValidationしてる?
PearとかFW使わないで手書きとか?
僕は、Zend_Validate
もっぱらQuickForm
昔はValidationは全員手書きだったのにな 今考えれば、面倒くさい作業だった
昔はページ送りも手書きね これも面倒くさい作業のひとつ
848 :
nobodyさん :2008/02/22(金) 10:43:28 ID:FaBFLjCt
こんにちは 長らく疑問なのですが、ニコニコ動画のアマゾンで どれがどれだけ買われているとか どのアカウントが買ったなんて、どうやって集計しているのでしょうか? アマゾンのリンクはAタグ直行なので、ニコニコの手を離れていますよね?
タグついてるやん
850 :
nobodyさん :2008/02/22(金) 12:33:14 ID:UcDd6kU9
$str ="3,1,1,2,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,"; を,で区切って配列に取り込もうとしてるのですが define("DELIMITER", ","); $count = 0; $token = strtok($str, DELIMITER); while ($token) { $data[$count] = $token; $token = strtok(DELIMITER); $count++; } ↑のようにしても、$dataの各々にデータが入らず困っております なにかよい解決手段はありませんでしょうか
$date = explode(',' $str);
なんで素直にsplitじゃないん?
854 :
852 :2008/02/22(金) 12:37:53 ID:???
ごめん。俺の方がレス遅かった上に、正規表現いらんからexplodeが正解だよな・・・
855 :
nobodyさん :2008/02/22(金) 12:39:10 ID:euN/fpJD
>>850 > $str ="3,1,1,2,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,";
> を,で区切って配列に取り込もうとしてるのですが
>
>
> define("DELIMITER", ",");
> $count = 0;
> $token = strtok($str, DELIMITER);
> while ($token) {
> $data[$count] = $token;
> $token = strtok(DELIMITER);
> $count++;
> }
>
> ↑のようにしても、$dataの各々にデータが入らず困っております
> なにかよい解決手段はありませんでしょうか
もっとよく標準関数勉強した方がいいよ。
858 :
848 :2008/02/22(金) 14:47:56 ID:FaBFLjCt
859 :
nobodyさん :2008/02/22(金) 15:03:25 ID:2HT47OiY
phpとjavascriptの連携についてなんですが javascriptスレよりこちらのがいいと思ったのでこちらで質問させてください。 javascriptでonmouseしたら何かを呼び出すというのを phpの処理から呼び出して表示する処理にしたいです。 例 東京を押したらデータベースからカテゴリが東京の町が出る。 これはどのような流れでするのでしょうか?
>>859 onmouseクリック
↓
JavaScriptからPHPにGET送信
↓
レスポンスをXMLで受け取る
↓
処理
class ParentClass{ static $hogehoge='mogemoge'; } echo ParentClass::$hogehoge; //1.これはOK $className = 'ParentClass' echo $className::$hogehoge; //2.syntax error 色々試してみたけど、これは無理ですよね・・・ 親クラスから子クラスのstaticにアクセスできないかなーとか色々試した結果。
864 :
nobodyさん :2008/02/22(金) 15:22:01 ID:2HT47OiY
865 :
nobodyさん :2008/02/22(金) 15:23:28 ID:KCNtJbN0
>>862 Parse error: syntax error, unexpected T_VARIABLE in /var/www/test.php on line 28
PHP Version 5.2.0
これでいいのかな?
まぁ、サポートしてない構文って事だと思うけど。
>>861 PHPでのクラス内定数はconstで定義してください。
868 :
864 :2008/02/22(金) 15:29:37 ID:2HT47OiY
あ、うんごめんなさい。 このWebSiteちゃんと見てませんでした。 ありがとうございました。
870 :
nobodyさん :2008/02/22(金) 15:34:13 ID:KCNtJbN0
>>867 了解。
でもクラス名のところを変数にしてダブルトークンくっ付けてもメンバにアクセスできないって事で。
変数にアクセスするならgetHogehogeとか作ってメソッド通せってことなんだろうけど・・・
871 :
848 :2008/02/22(金) 16:14:26 ID:FaBFLjCt
あー、最低限クリック回数は今の流れみたいなんですね しかし購入結果なんてどこから集計しているんだろう…
872 :
nobodyさん :2008/02/22(金) 16:46:33 ID:SvFBqeTu
header()関数で指定したURLへ飛ばそうとするとie7,firefoxでは飛ぶんですが、 IE6のみ飛びません。(というよりIE6利用時のみ有効にならない) header()関数で飛ばすときってなんか指定とかいるんですか?
>>871 もしかしたら管理画面にログインして自動で拾ってるのかもね。
出来るかは知らんけど。
あとは大口用になにかインターフェースがあるのか・・。
どっちにしろもうスレチガイなので他であたってください。
>>872 そんなことないでしょ
まずはどんなheader書いてるか見せて味噌
875 :
nobodyさん :2008/02/22(金) 16:51:19 ID:SvFBqeTu
>>874 header("Location: ".$_SERVER['HTTP_REFERER']);
exit;
こんな感じです。
header()関数を実行する前は上でごにょごにょ処理をしています。
header()関数を実行する前でechoしてみたりしたら普通に出力できます。
Firefox2.0やIE7では普通に飛ぶんです。
$_SERVER['HTTP_REFERER'] 値がある事はきっちり確認してるんだよね? あとは「header location 絶対URL」でぐぐってみるといいかも。
どう考えてもおまいのIEがリファラを送信していないだけ
あー、今までDB接続をPEARでやってたからmysql関数使うのだるくなったorz PEARで予期せぬエラーが発生するようになったから、自前で接続しようと思ったがこんなにもめんどいとは・・・
880 :
nobodyさん :2008/02/22(金) 17:00:37 ID:SvFBqeTu
IE6でheader()関数を実行する前に echo $_SERVER['HTTP_REFERER']; を実行したらURLは入っています。
ひとまずうちのIE6では普通に動作した。 最小ソースでテストしる。 phpのエラー表示はしている? 環境を一応書くと多少参考になるかも。
882 :
nobodyさん :2008/02/22(金) 17:11:59 ID:SvFBqeTu
>>881 どもです。
display_errorsはOnにしています。
環境はLAMP環境で、Apache2.0,PHP4,MySQL4です。
今試したんですが、最小ソースでも動作しませんでした・・・・・。
これはもうテスト機の問題なのかな。
エラーレポーティングは?
あとはアパッチのログぐらいしか思いつかないな
885 :
nobodyさん :2008/02/22(金) 17:58:55 ID:SvFBqeTu
apacheのエラーログになんか怪しそうなの発見しました! an unknown filter was not added: PHP これってどこ直せばいいんでしょ?
調べたのですが自信がないので質問させてください とあるスクリプト内のコメントアウトに # シャープが使われていました PHP のコメントアウトは // スラッシュを2つ だと理解しているのですが、上記のようにシャープでも有効なのでしょうか?
888 :
nobodyさん :2008/02/22(金) 18:02:13 ID:SvFBqeTu
>>883 ちなみにerror_reportingはE_ALLにしてあります。
889 :
nobodyさん :2008/02/22(金) 18:13:05 ID:vRTrnQEH
>>887 ご指摘ありがとうございます
冒頭にあります汚い言葉がNG処理のため
>>8 が見えませんでした、すみません…orz
あらためまして、質問させてください
・FreeBSD
・Apache 1.3.x
・PHP 5.x
質問内容は
>>886 になります
よろしくお願いいたします
890 :
nobodyさん :2008/02/22(金) 18:23:38 ID:vRTrnQEH
891 :
nobodyさん :2008/02/22(金) 19:17:32 ID:INKr73LK
php -vを実行したところ、 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20060613/mysqli.so' - Cannot open "/usr/local/lib/php/20060613/mysqli.so" in Unknown on line 0 PHP Warning: Module 'bz2' already loaded in Unknown on line 0 PHP Warning: Module 'calendar' already loaded in Unknown on line 0 PHP Warning: Module 'ctype' already loaded in Unknown on line 0 PHP Warning: Module 'pcre' already loaded in Unknown on line 0 PHP Warning: Module 'SimpleXML' already loaded in Unknown on line 0 PHP Warning: Module 'SPL' already loaded in Unknown on line 0 ................... ................... こんな感じでエラーがたくさん出力されますが、phpの実行には支障がありません。 このエラーメッセージを出なくするためには、どの辺の設定をいじるべきでしょうか? 環境はphp5,CentOSです。宜しくお願いします。
>>891 エクステンションが読めない、とかじゃないの?
あと、多重存在してたり存在しないとかだとオモ。
centosは具体的にどうするかわからんが、apt同等のモノでエクステンション突っ込むか、php.iniをextensionで検索してその近辺。
エラーじゃなくて、「警告」だろ。その程度の英語も読めないのか? それに display_startup_errors を on にしてるんだろ。
895 :
nobodyさん :2008/02/23(土) 01:16:43 ID:5YrQuqb+
確かに痛い・・・
phpでアクセスするとあるサイトにデータを取りに行って そのデータを加工してテキストで出力するプログラムを 作っているんですが php側のすべての処理が終わって ブラウザがすべてのデータを受け取ったあとでも IEやFirefoxのクルクル(って言うんですかね?アクセス中にクルクルする奴です) がとまりません コードの最後には exit(); を書いているのでそこで終了している認識なのですが どのようなことが考えられるでしょうか? この辺を見れば?というようなヒントでもいただけると助かります 環境は apache2.0系 mod_php php4.2 それで何が起きるかといえば特に障害とはなっていないのですが ちょっと気持ちが悪いので
くだらない質問ですがちょっと興味を持ったのでお願いします PHPを暗号化するソフトがあると知りまして調べたところ 下記の3つを見つけました、暗号化するほどたいそうな物は作ってはおりませんが興味がありますので 是非、このスレの先輩方にこれらの暗号化ソフトの評判を聞きたいです PHP Screw ionCube Encoder コードロック
898 :
nobodyさん :2008/02/23(土) 02:00:06 ID:5YrQuqb+
>>896 exitの直前にデバッグ出力して本当にexitまで到達してるか
調べてみたら?
899 :
nobodyさん :2008/02/23(土) 02:00:26 ID:A6pWBnk9
上げ忘れましたすみません
>>898 デバッグ出力したところ、"exit"命令の"exi"で止まってました。どうやったら"t"までたどり着けますか?
exit()は命令じゃなく関数なんだけどね
というかexit();なんて普通使わない
exit、終了コード見るのに普通に使うが。
おっさん乙
初心者です。よろしくお願いします。 簡潔な表現で日本以外のアクセスをブロックできませんでしょうか? フリーのPHP掲示板を使用しているのですが、中国人に荒らされて困っています。
906 :
852 :2008/02/23(土) 10:31:17 ID:???
gethostbyaddr($_SERVER['REMOTE_ADDR'])で返ってきた文字列がjpで終わってなければ蹴る
うは・・・昨日の名前つけたままだった・・・orz
908 :
905 :2008/02/23(土) 11:22:50 ID:???
yahooとかどーすんだよw
.comと.net涙目www
「中国人」という情報だけで何をアドバイスしろとw
HTTP_ACCEPT_LANGUAGEを見るとか もうちょっとましなアドバイスがあるだろw
913 :
nobodyさん :2008/02/23(土) 13:28:02 ID:QK8bgtUE
ファイルの先頭に追記書き込みをしたいのですがどうすればよいのでしょうか ご教授お願いします
・新しいファイル作ってその後ろに既存のファイルの内容を追加 ・ファイルの内容を全部読み込んで、先頭に内容を追加してファイルの書き込み
やっぱり先頭に追記できる便利な関数はないんですね・・ どうもありがとうございました
そんな関数があろうとやってる処理は同じ
>>914 新しいファイルを作る必要はない。
元のファイルをfileで読み込んで配列内で追加してソートして書き出せばいい。
で、
>>913 は、チャットかなんかでログをそのままの順番で表示したいんだろうけど、
追記したものを、一度fileで配列に読み込んで逆ソートすれば同じものになる。
> ・ファイルの内容を全部読み込んで、先頭に内容を追加してファイルの書き込み 917 は文盲なのか?
たいした問題でもないのにいちいち難癖つけるなよ。
IPから仮IDを発行する事はできますでしょうか? 【例】 携帯⇒ Do[$id] AU[$id] SB[$id] PC⇒ PC[$id] よろしくお願いします。
>>921 それだけじゃ何がしたいのかあいまいでわからない。
あと上で何度も
>>8 と書かれてる理由もわかって。
>>921 よくわからんが、IPから携帯キャリアを判別したいなら「携帯キャリア IP」 でぐぐれ。
925 :
905 :2008/02/23(土) 17:49:46 ID:Zm4gWLCu
>>922-923 すみません。
id.datファイルにある数値を$idとして読み込み
DoCoMoの場合は$agent = "Do"
AUの場合は$agent = "AU"
Softbankの場合は$agent = "SB"
echo "{$agent}{$id}";
として表示したいです。
稚拙な説明申し訳ありません
idからキャリアを判別する方法は?
一番簡単なのはUAで判別だが 正確さを求めるならやはり各キャリアの技術情報からIPアドレスで判別 または回線が余裕ならDNS引いて判別もあるがリソースを食うからなぁ。
928 :
891 :2008/02/23(土) 19:00:14 ID:DpvE5W4r
>>892 >>893 アドバイスありがとうございました。
ご指摘のphp.iniのextension_dirを見直しました。
> PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20060613/mysqli.so' - Cannot open "/usr/local/lib/php/20060613/mysqli.so" in Unknown on line 0
と出力されているいうものについては、php.iniのextension_dirで指定したところに、
soファイルを置きました。
そうすると、今度は、
> PHP Warning: Module 'mysqli' already loaded in Unknown on line 0
と出てしまいます。
逆に、
> PHP Warning: Module 'bz2' already loaded in Unknown on line 0
と出ているモジュールをextension_dirで指定されているディレクトリから削除すると、
今度は、
> PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20060613/bz2.so' - Cannot open "/usr/local/lib/php/20060613/bz2.so" in Unknown on line 0
と出てしまいます。
find / -name bz2.so
で全検索しましたが、ファイルの実体は一つしかありません。
再起動も掛けて症状に変化がありません。もう訳分からない状態です。
他に、試してみることありますか?宜しくお願いします。
929 :
891 :2008/02/23(土) 19:04:51 ID:DpvE5W4r
あと、
>>893 さんからご指摘いただいたは、display_startup_errorsはOffになっていました。
Apacheの起動ログや、コマンドラインからphpを使う際に、このWarningメッセージができます。
この際は、Warningが発生してもいいので、
コマンドラインから使う場合にこのエラーメッセージを標準出力に出さないように出来ればそれでも構いません。
どうか宜しくお願いします。
>929 alreadyなモジュールをコメントアウトすればど?
>929 もうひとつ、alreadyなので既にそのモジュールはLoadされてるってことじゃないかと。 $ php -m でモジュール一覧 $ php -m -n で*.iniを使わないときのモジュール $ php --ini がどの*.iniを見てるか で、考えてみ
932 :
891 :2008/02/23(土) 20:33:24 ID:DpvE5W4r
>>931 本当にどうもありがとうございました。
解決しました。
> Additional .ini files parsed: /usr/local/etc/php/extensions.ini
こんなファイルを定義ファイルとして指定したつもりはなかったのですが、
勝手に定義ファイルに指定されていました。この中の重複モジュールをコメントすることで対応しました。
本当に助かりました!!!!
933 :
nobodyさん :2008/02/23(土) 20:36:49 ID:dbEYiTan
配列 中身 hairetu[0]→2 hairetu[1]→5 hairetu[2]→6 hairetu[3]→7 これをこんなふうに 変数 中身 hensuu→ 2,5,6,7 変数に取り込む方法を何卒教えてください
$hensuu = implode(',', $hairetu);
ありがとうございます、助かりました
パケ代が10万円を超えたのを、おれのサイトのせいにして、 暴れている馬鹿に天誅を下す為に、phpでクラックする方法を模索しているが、 phpそのものがクラックされているwww
日本語でおk
どちらも同レベル
939 :
nobodyさん :2008/02/24(日) 02:15:25 ID:aMeZTtDm
PHPでちょっとした数字の計算をやっていたのですが、 「%」を使うと、割った余りが出るんですよね? しかし「$amari=30%5;」を実行させると「1」が出るのですが、 なぜでしょうか・・・?「30÷5=6…0」のはずでは?
<?php echo 30 % 5; 出力結果:0
>>939 コードのどっかで代入間違えてる可能性あるから
答え格納してる変数をechoとかでトレースしてみれ。
あんま長いコードでないならそのままこっちに書いたほうがはやいけど。
942 :
nobodyさん :2008/02/24(日) 04:07:25 ID:i4ew7RJV
あるスクリプトを走らせると、タイムゾーンの設定が狂います。
一度狂うとApacheを再起動しない限り直りません。
タイムゾーンが狂う場所は突き詰めたのですが、この先が解決できません。
なお、Apacheのログは正常なタイムゾーンで記録されています。
Win2kSP4+Apache2.2.8+PHP5.2.5の環境で、php.iniには
「date.timezone = "Asia/Tokyo"」の設定をしてあります。
具体的には、以下のスクリプトの出力が
08/02/24 3:57
08/02/23 18:57
というようになります。
echo date("y/m/d G:i");
$params = array(
'mail' => '
[email protected] ',
'password' => 'pass',
'next_url' => 'hogehoge'
);
$ch = curl_init('
http://example.com/ ');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$output = curl_exec($ch);
curl_close($ch);
echo "\n".date("y/m/d G:i");
接続先の時間は? ふぉろーろけーしょんでGMTなのか? システム時刻に上乗せして足してるはずないし。
944 :
nobodyさん :2008/02/24(日) 13:21:33 ID:FbW8idvi
ある配列 $data = array (0,1,2,3,4,5,6,7,8,9);があって もう一つの値xが、$data内の値いずれでもないことを調べるのに簡単な方法ってありますか? if($data[0] == x)のように一項目ずつ入れて判定していくと記述が冗長になってしまいます。 よろしくお願いします。
!in_array($x, $data)
どんな関数があるかは、逆引き本買ったほうが早いよ いちいちここで聞くの効率悪くね?
マニュアルに無料で載ってね?
948 :
nobodyさん :2008/02/24(日) 13:31:48 ID:FbW8idvi
>>947 名前が分かってれば調べられるけど、「こんな機能の関数」って感じでは調べられないでしょ。
ググルのもありだとは思うけど。
>>950 もちろんマニュアルを読むのは推奨だよね。
ただ初心者が機能から探すにはちょっと不便だと言っているだけです。
>>1 はまず読んでいるという前提で、分からなければ質問者のためにはなるかなと。
数百個もあるわけじゃないんだから面倒臭がらずにちゃんと見ろよ。 単語でページ内検索もできるし、関数ページには関連関数のヒントも出てる。
ぶっちゃけ質問者が好きなほう選んだらいい事。 関数名分かっているときはマニュアルで、機能から逆引きは逆引き本使っているな俺は。 各自自分にあった方法でやればいいだけ、いちいち人のに反論する理由が良く分からん。
phpspot
955 :
942 :2008/02/24(日) 14:17:55 ID:???
>>943 接続先からは、今の時間でしたらSun, 24 Feb 2008 05:12:49 GMTと返ってきました。
FollowLocationのFollow先も、同じ鯖内です。
すべての行にecho dateを挿入したところ、curl_execで狂うことが分かりました。
CURL関係でタイムゾーン周りの設定があるのでしょうか。
ぐぐってみましたが見あたりませんでした。
初心者であることは構わないが 初心者は初心者であることを言い訳に楽したがる傾向があるな。 初心者ならphpのウリである標準関数のチェックくらい厭わずに地道に努力しろよと。
>>942 942のソースコピペで確認。同じ時刻が表示されるなー
08/02/24 16:03
08/02/24 16:03
---
cURL Information => libcurl/7.16.0 OpenSSL/0.9.8e zlib/1.2.3
PHP 5.2.5 (cli) (built: Nov 8 2007 23:18:51)
Microsoft Windows XP [Version 5.1.2600]
958 :
942 :2008/02/24(日) 16:21:10 ID:???
>>942 デフォルトがGMTに変更されてしまうね。最後のとこで
echo "\n".date("y/m/d G:i")." ".date_default_timezone_get();
するとGMTになってますな。
とりあえず最初に
$default_tz = date_default_timezone_get();
......
......
最後に
date_default_timezone_set($default_tz);
とかしたらどう
そこまでやったら試せよw
961 :
942 :2008/02/24(日) 17:45:07 ID:???
>>959 それでいけました!ありがとうございます!
助かりました。感謝感激です。
バイナリセーフじゃない関数(file_get_contents)で、 GET値処理したいのですが、 $_GET['hoge']値を処理したい場合、 $hoge = str_replace("\0", "", $_GET['hoge']); $contenst = file_get_contents($hoge); で問題なくなりますか? もしくは if (mb_eregi("\0", $_GET['hoge'])){ exit(); } とかで良いのでしょうか? ヌル文字というやつがイマイチ分からなくて。。。
963 :
962 :2008/02/24(日) 17:50:24 ID:???
ちなみに ../ などの入力値は事前にとかは拒否してます。
964 :
nobodyさん :2008/02/24(日) 18:26:00 ID:WLGwl6jq
smartyを使っていると、displayメソッドで数百回に1回、 5秒〜300秒かかる場合があります。 前後で時間計測してやっと特定したのですが、ここから先が複雑で原因は分かっていません。 $smarty->display($tmplatePath); このメソッド内で処理が遅くなりそうなところってどこでしょうか? 漠然としてしますが、ヒントだけでも頂戴できれば嬉しいです。 お願いします。
966 :
942 :2008/02/24(日) 18:52:52 ID:???
何度もすみません・・・ 959の方法でいけたと思ったのですが、二度目以降はGMTになってしまいます。 ソースの最初と最後にecho date_default_timezone_get();を入れると、 一度目 Asia/Tokyo … Asia/Tokyo 二度目 GMT … GMT となるので、サーバーの設定自体が変わってしまっているように思えます。 PHPのインストールでタイムゾーンに関する設定は、php.iniのdate.timezone以外にありますか?
ふむ
>>970 IDでないとダメな理由いえよw
毎回そうなんだよ
明確な理由が無いのにぐだぐだ煩い奴だ
また、テンプレ改悪のままかよ…わざとやってるとしか思えん。
新スレ立てるの速くね? 早漏れかよ
>>973 スレ立てが指定してある訳でもないから
別に問題ないだろ
●持ってるから建て直していい?
−−−−−−−−−− 以下テンプレ議論になりました −−−−−−−−−−−
978 :
nobodyさん :2008/02/25(月) 01:53:56 ID:slLlRgiK
class test { static public function a() { self::b() } private function b() { echo 'test'; } } test::a(); $test = new test; $test->a(); 両方で使えるようにこうするのは正しいですか?
テンプレの前に969=971=974=976をどうにかしてくれ
980 :
942 :2008/02/25(月) 02:08:25 ID:x26foiks
苦し紛れに、既存の全てのスクリプトの先頭にdate_default_timezone_set('Asia/Tokyo');を入れて
対処しようとしましたが、何故か動かなくなるスクリプトが出たためこれも断念。
何かいい方法ないですかね・・・
というか、さすがにこれはPHPのバグを疑ってもいいような気がします。
>>971 質問する側にとっては分かりにくい。
なぜ質問後にID表示やトリップなのか。意味がない。
今回初めてこのスレに来ましたが、初めての人に分かりにくいので立て直してもいいかと思います。
>>980 質問後ってのはテンプレ変えた奴が間違ってんだろ
前スレではIDとトリップをOKにという意図でこのスレを立てた筈
983 :
nobodyさん :2008/02/25(月) 11:05:51 ID:qI4PW04V
質問です。 PHPとMySQLを使ってWEBサイトを構築したいのですが お勧めのサイトや書籍はありますか? 商品の情報をDBにCSVなどで読み込ませてPHPで検索結果を表示させるサイト を勉強してみたいです。
> DBにCSVなどで読み込ませて 意味わかってねーだろ とりあえずAmazonにショップングカートやそういった関連の本が結構あるから調べてみるといい
>>983 「MySQL入門以前/石田 豊」は結構良いと思うよ。
987 :
nobodyさん :2008/02/25(月) 16:16:24 ID:qI4PW04V
array_rand()を知らなくて、 配列から重複しない複数の要素を選び出す関数を作ってた俺乙過ぎ。
Snoopyの使い方がよく分からん
あっそ
992 :
nobodyさん :2008/02/25(月) 18:08:10 ID:srndQzeu
PDFの容量を抑えつつ、日本語のPDFを生成できるライブラリ等は無いでしょうか。 TCPDFを使用したのですが、内容がほとんど無い一ページでも5メガ近くになってしまいます。 どうも日本語フォントのイメージを全部持っているようなので、もうちょっと軽くしたいんです。
993 :
nobodyさん :2008/02/25(月) 18:23:16 ID:hDqzyK/W
while(($foo[] = fgetcsv($fp)) == true){ } csvファイルから全ての行を配列$fooに読み込むコードを書いてたら、 処理の中身がない歪なコードになったけど、こんな書き方していいんでしょうか? もっとスマートな書き方があれば教えて下さい。
>>993 while (feof($fp)) {
$foo[] = fgetcsv($fp);
}
995 :
nobodyさん :2008/02/25(月) 19:12:48 ID:srndQzeu
>>992 自己解決しました、お目汚し失礼しました。
よければ解決方法を簡単にでも書いていってよ。 参考にしたページのリンクだけでも良いから。
_,,....,,_ _人人人人人人人人人人人人人人人_ -''":::::::::::::`''> お断りします!!! < ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄ |::::::;ノ´ ̄\:::::::::::\_,. -‐ァ __ _____ ______ |::::ノ ヽ、ヽr-r'"´ (.__ ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、 _,.!イ_ _,.ヘーァ'二ハ二ヽ、へ,_7 'r ´ ヽ、ン、 ::::::rー''7コ-‐'"´ ; ', `ヽ/`7 ,'==─- -─==', i r-'ァ'"´/ /! ハ ハ ! iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i | !イ´ ,' | /__,.!/ V 、!__ハ ,' ,ゝ レリイi (ヒ_] ヒ_ン ).| .|、i .|| `! !/レi' (ヒ_] ヒ_ン レ'i ノ !Y!"" ,___, "" 「 !ノ i | ,' ノ !'" ,___, "' i .レ' L.',. ヽ _ン L」 ノ| .| ( ,ハ ヽ _ン 人! | ||ヽ、 ,イ| ||イ| / ,.ヘ,)、 )>,、 _____, ,.イ ハ レ ル` ー--─ ´ルレ レ´
998 :
nobodyさん :2008/02/25(月) 19:23:40 ID:hDqzyK/W
>>994 ありがとうございました。一瞬つまづきましたが、正確には!feof($fp)ですね。
>>996 トラブルシューティング広場じゃないんだぜ
何度同じ質問がきても淡々と答えるのが回答者のマナー
1000獲ったどー
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。