PHP総合雑談スレ
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2008/01/14(月) 21:35:11ID:???反省はしていない
0875nobodyさん
2009/06/17(水) 15:29:26ID:???0877nobodyさん
2009/06/20(土) 06:33:31ID:???0878nobodyさん
2009/06/20(土) 08:04:06ID:???0879nobodyさん
2009/06/20(土) 08:09:53ID:???0880nobodyさん
2009/06/20(土) 17:52:24ID:75jb74IQ例えば C だと
puts((return_array())[0]);
みたいに出来るけど、HSPでこれっぽいこと試しても出来ないし情報も出てこない。
結局いちいち変数に保存しておかないとだめなのかな?
補完として指定添字の要素を返す関数みたいなもんも無さそうだし。
作るのは簡単だけどそれもモヤっとする。
誰も不便に思ってないのだろうか…?
0881nobodyさん
2009/06/20(土) 18:01:51ID:???0882nobodyさん
2009/06/20(土) 18:03:42ID:???HSPスレに毒されてた
0883nobodyさん
2009/06/20(土) 19:11:19ID:???0885nobodyさん
2009/06/20(土) 20:46:15ID:???$array[$key];
0887nobodyさん
2009/06/20(土) 20:57:27ID:zOuXJu5j俺はat($array, $key)って関数を作って使ってる。
配列処理関数にarray_とか付いちゃう言語にあまり期待するなってことだな。
0888nobodyさん
2009/06/20(土) 20:59:51ID:???0889nobodyさん
2009/06/20(土) 21:03:31ID:???zend_hash_find()じゃなくてzend_symtable_find()を使っているので整数キーも正しく扱える。
PHP_FUNCTION(array_indexof)
{
HashTable *arr;
char *key;
int len;
zval **entry;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "hs" &arr, &key, &len) == FAILURE) {
return;
}
if (zend_symtable_find(arr, key, len+1, (void **)&entry) == SUCCESS) {
RETURN_ZVAL(*entry, 1, 0);
}
RETURN_NULL();
}
0890nobodyさん
2009/06/20(土) 21:17:01ID:???0891nobodyさん
2009/06/20(土) 22:27:40ID:???foreach($ary as $v){
var_dump($v);
}
「数字添字の連想配列」と「配列」は似ているようでちょっと違う。
「全てが連想配列」の方が内部処理的にも妥当な評価。
0892nobodyさん
2009/06/20(土) 22:57:15ID:???eval("$".func_return_array()."[key]")
とかかなぁ
独自の関数用意すんのもその関数理解するためのワンステップがアレな気がするしな
値がほしいだけならlist()で受け取るって手もあるけど
0893nobodyさん
2009/06/21(日) 00:07:17ID:DAfvo/AXえ?
0894nobodyさん
2009/06/21(日) 00:10:20ID:???0895nobodyさん
2009/06/21(日) 02:28:32ID:???はい…
思う存分叩いてください反省してきます
0896nobodyさん
2009/06/21(日) 05:33:00ID:???0897nobodyさん
2009/06/21(日) 11:53:12ID:???0898nobodyさん
2009/06/21(日) 12:21:00ID:DAfvo/AXこういう書き方がしたいわけですね。
0899nobodyさん
2009/06/21(日) 13:14:59ID:???0900nobodyさん
2009/06/21(日) 13:27:56ID:???0901nobodyさん
2009/06/21(日) 20:55:11ID:???配列作るときのarrayとか書くのも結構めんどい
0902nobodyさん
2009/06/22(月) 00:35:16ID:???0903nobodyさん
2009/06/22(月) 00:49:49ID:2UIy9ouO個人で借りてるサーバは
$php --version
PHP 5.1.6 (cli) (built: Apr 7 2009 08:00:04)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
だ。
0904nobodyさん
2009/06/22(月) 03:56:57ID:???0905nobodyさん
2009/06/22(月) 09:54:55ID:???0906nobodyさん
2009/06/22(月) 10:29:15ID:???この前のメンテで上げてるなあぁ
0907nobodyさん
2009/06/22(月) 15:11:18ID:???concreat5を試そうと思ったら、php5を要求されたから、
そろそろ移行時期かなとおもい、皆はどうなのかと思い確認させてもらいました。
0908nobodyさん
2009/06/22(月) 16:15:26ID:???にあるコードを使って
同じ内容のメールを返させるのとファイルに保存するようなのを書き足したPHPファイルをつくったんですけど
メールが返ってくるところまではうまくいったんですけど
ファイルに保存がうまくいきません
mail($mail_address,,$diary_subject,$diary_body);
write("dat/test.dat",array($diary_subject,$diary_body));
------------------------------------------------
function write($filename, $input)
{
$input=serialize($input);
$fp=fopen($filename,"w");
flock($fp, LOCK_EX);
fputs($fp, $input);
flock($fp, LOCK_UN);
fclose($fp);
}
ちゃんとdatはchmod 733してあります。
何が原因になりそうでしょうか?
0909nobodyさん
2009/06/22(月) 16:41:28ID:???0910nobodyさん
2009/06/22(月) 16:47:18ID:???0911nobodyさん
2009/06/22(月) 23:26:19ID:???0912nobodyさん
2009/06/23(火) 04:22:25ID:???0913nobodyさん
2009/06/30(火) 11:32:05ID:???なにかそういう系のいいサンプルって知りませんか?
全角、半角スペースをパターンに文字列を分割、
でもダブルクォーテーションでかこわれた部分は分割せず…
とかいろいろやってたら、正規表現を使った処理が意外とだらだらと長くなってしまうんです。
0914nobodyさん
2009/06/30(火) 12:31:49ID:???str_replace(' ', ' ', $input);
$keywords = str_getcsv($input, ' ');
0915nobodyさん
2009/06/30(火) 12:33:32ID:???$input = str_replace(' ', ' ', $input);
ね。
思いつきだから正しく動くかはしらん。
0916nobodyさん
2009/06/30(火) 12:48:46ID:???ereg_replace が安全
0917nobodyさん
2009/06/30(火) 13:50:22ID:???$input = 'ワード1 "ワ ー ド 2" ワード3';
↓
[0] -> ワード1
[2] -> ワ ー ド 2
[3] -> ワード3
このように分割したいのですが、preg_matchとか使ってむりやり分割する方法しか思いつかず、
どんなやりかたが王道なのかわからずに困っています。
0918nobodyさん
2009/06/30(火) 14:38:55ID:???var_export(explode('"', $input));
0919nobodyさん
2009/06/30(火) 14:49:40ID:???0921nobodyさん
2009/06/30(火) 22:09:35ID:???http://search.cpan.org/~chorny/Text-ParseWords-3.27/ParseWords.pm
PHPで探してないんだったら、上のを参考にして自分でパーサーを書くしかないんでは。
0922nobodyさん
2009/06/30(火) 22:15:51ID:ToOf0Y/8<?php
$number = 100;
echo "<p>変数の値は $number です";
echo '<p>変数名は $number です';
?>
変数の値は や 変数名は ってやつがうまく表示してもらえないのだが
なぜですか??
0923nobodyさん
2009/06/30(火) 22:19:02ID:???どういう結果が欲しくて、実際どうなってるのか教えてくれ
0924nobodyさん
2009/06/30(火) 22:24:36ID:ToOf0Y/8echo "<p>変数の値は $number です";
これが『変数の値は100です』
となってほしくて
echo '<p>変数名は $number です';
こっちが『変数名は$numberです』
となってほしいのです。
でも表示結果は
?????l??@100 ??
????? $number ??
こんな感じですね
0926nobodyさん
2009/06/30(火) 22:28:40ID:???まず、ブラウザのエンコード(文字コード)の設定で文書のとあわせてみようね
それから、htmlで
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
みたいなの書こう
0927nobodyさん
2009/06/30(火) 22:28:50ID:ToOf0Y/8ブラウザがGoogleChromeなのですが
文字コードはどうやって変更したらいいでしょう?
0928nobodyさん
2009/06/30(火) 22:29:20ID:???それから
echo "<p>変数の値は $number です";
は
echo "<p>変数の値は {$number} です";
って書くと変数名が確実に処理される。
0929nobodyさん
2009/06/30(火) 22:36:38ID:ToOf0Y/8エンコードでSHIFT JISってやつに変えてみたら
上手く表示されました><
ありがとうございました・ω・
あとこの<p>というのはどういった意味があるのでしょうか?
0931nobodyさん
2009/06/30(火) 23:30:55ID:???ブラウザがまずWebサイトにアクセスする。
んで、どのコードで表示するかってのは、
HTMLのヘッダにあるMETAタグで読むんだ。
だから、PHPで出力するHTMLの最初の方
に、まず文字コード設定のMETAタグを書
いておこう。
通常、PHPで出力される文字コードは、PHP
のコードが書かれているファイルと同じ文字
コードになるよ。
Shift-JISでコードを書いてるなら、Shift-JIS
の文字コード宣言のMETAタグを出力するよ
うにしておいたほうがいい。じゃないと、いまの
ブラウザで普通に表示されていても、見れな
い環境も出てくると思うから。
0932nobodyさん
2009/07/01(水) 00:06:52ID:???Webで使うつもりだろうし、まずはHTMLとかXHTML、できればStylesheetも
それに、WebクライアントやWebサーバの仕組み、文字コードの扱いなんかを
一通りは触っておかないと理解していないと
PHPを覚えてもあまり意味がない気はするぽん
階段を上るように、段階を分けて勉強していくといいと思うお
1. CGIなどが扱えないようなレンタルサーバでも公開可能な
(静的な)ウェブサイトの作成方法を理解する
2. ローカルにウェブサーバを設置し、サーバの設定方法や
サーバの仕組み、クライアントの仕組みなんかを理解する
3. 動的に生成されるサイトを作成してみる
みたいなカンジ
0933nobodyさん
2009/07/01(水) 01:00:53ID:gWTAL2bRなるほどです。。。
自分でも少しずついろいろと調べてみてがんばって行こうと思います
まずはHTMLから始めるといった形が理想なのでしょうか?
0934nobodyさん
2009/07/01(水) 01:02:04ID:???0935nobodyさん
2009/07/01(水) 03:45:08ID:???そうだね
まずは静的HTML
文字コードの話も普通はそこでぶちあたる壁
絶対リンクと相対リンクとか。
そしてスタイルシートCSSね
そんでようやくPHPだね
0937nobodyさん
2009/07/01(水) 07:32:06ID:???まずHTMLを1ヶ月じっくりと勉強
するところからはじめるべき。
0938nobodyさん
2009/07/01(水) 08:12:38ID:???なんでも完璧にしなきゃいけないなんてことはない。
もしそうなら、むしろ、HTMLよりは、HTTPの方が先
に勉強すべき。プロトコルを理解した上で、その中で
転送される形式の一つとしてHTMLって方が理想だよ。
0939nobodyさん
2009/07/01(水) 08:27:09ID:???Windows/UNIXのファイルシステム。
バイナリファイルとは何か。テキストファイルとは何か。
テキストファイルの文字コードとは何か。
CPUと メモリの扱う情報の単位。
コンピュータ上で表現する色の単位。
※コンピュータのファイル/メモリ内で、情報を表現する際の形式について理解しよう。
・通信のこと
TCP/IPとは何か。
(OSI9階層なんてアホなものにハマらないこと。
IPアドレス、ポート番号とサブネット、ルーティングとC/Sの概念だけ判ればいい)
HTTPとは何か。
HTTPSの理解は後でいい。POST/GET要求とそれに対する応答。
応答ヘッダの中に、応答する内容の「形式」が含まれていることを理解する。
あと、URLの理解。URLの実体は、極めて曖昧で、サーバーがコンテンツを識別する
ためだけのものということを理解しよう。
・HTML
http://gihyo.jp/book/2008/978-4-7741-3328-7
正直、これだけ読めばいい。もっといい本もあるかもしれないけど。
これの前半読んで、あとは実際に組むときに覚えればいい。
概念を理解してからPHPを学ぶのはそうなんだけど、実際のところこれだけ勉強すればいいんじゃない?
このほかプログラミング言語のことも理解しなきゃいけないけど、それはPHPから覚えてもいいわけだし。
これだけなら、ちゃんとした資料やちゃんと教えてくれる人に出会えれば正直、1日あれば足りる内容だと思うよ。
HTMLの文法やCSSまで、全部理解しなきゃいけないってのはどうよ。
プロだってハンドブック片手にやってるだろ。
0940nobodyさん
2009/07/01(水) 10:13:41ID:???そうなんだよね。
でも非互換になっても str_replace や preg_replace じゃ
ereg_replace のように正しく扱えないから仕方がない。
0942nobodyさん
2009/07/01(水) 10:15:06ID:???0943nobodyさん
2009/07/01(水) 10:20:07ID:???strtolower や strtoupper にも同じ問題あるよね。
なので ereg_replace で実装している。
0944nobodyさん
2009/07/01(水) 14:56:28ID:???<b>Warning</b>: PHP Startup: Unable to load dynamic library 'c:\php\ext\php_pgsql.dll' - このオペレーティング システムでは %1 は実行されません。
in <b>Unknown</b> on line <b>0</b><br />
が出るんだけど、動いてる人いる?
php_curl.dll や php_mbstring.dll は読みこめているのだけど、php_pgsql.dll だけ動かん。
0946nobodyさん
2009/07/01(水) 18:02:53ID:???だから古いバージョンのライブラリから持ってこないとダメ
0947nobodyさん
2009/07/01(水) 18:11:33ID:???だよね。
5.2.9 のときも 5.2.6 のを持ってきていたので、5.2.6 のを持ってくると
<b>Warning</b>: PHP Startup: Unable to load dynamic library 'c:\php\ext\php_pgsql.dll' - 指定されたプロシージャが見つかりません。
という >>944 とは違うメッセージ。そして動かず。5.2.9 のも同様。
成功した人いないのかな。
0948nobodyさん
2009/07/01(水) 18:38:51ID:???おかしいのは5.2.6以降なので、5.2.5のだったらOK。
ちなみに自分はWampServer使ってるけど、差し替えて動いてる
0949nobodyさん
2009/07/01(水) 18:46:23ID:???0950nobodyさん
2009/07/01(水) 19:02:15ID:???WampServer をダウンロードして
php_psql.dll をコピーしたのだが変わらず。
インストールに疲れたので明日再挑戦してみる。
ありがとう。
0951nobodyさん
2009/07/01(水) 19:11:20ID:???WampServerのAddonsで、5.2.5をインストール→中のphp_pgsql.dllをコピー
解凍できるなら、Addonsだけ落として中身だけもらえばいいよ
0952nobodyさん
2009/07/01(水) 19:23:32ID:???いろいろとありがとうございます。
アドオンの WampServer2-PHP525.exe をダウンロードしてコピー。
やはり動かず。。。
<br />
<b>Warning</b>: PHP Startup: Unable to load dynamic library 'c:\php\ext\php_pgsql.dll' - 指定されたプロシージャが見つかりません。
in <b>Unknown</b> on line <b>0</b><br />
0954nobodyさん
2009/07/01(水) 21:01:49ID:gWTAL2bR指摘されたことをまず勉強してからPHPの話を出させていただきますね
0956nobodyさん
2009/07/02(木) 00:27:31ID:???0957nobodyさん
2009/07/02(木) 09:24:56ID:???ありがとうございます。
ということは Windows 上の PHP 5.3 では
今のところ PostgreSQL が使えないのですね…。
0958nobodyさん
2009/07/02(木) 12:37:38ID:???DBログインパスワードが直書きしてあって面倒なのなんとかしてくれ。
0959nobodyさん
2009/07/02(木) 12:56:27ID:???0960nobodyさん
2009/07/02(木) 12:58:33ID:???ttp://project-p.jp/halt/anubis/blog_show/816
0961nobodyさん
2009/07/02(木) 13:20:31ID:???サンクス。
DB以外にも山ほどひどい実装があったので、
設定項目は ini に、共通初期化処理は inc に
直すことにした
0962nobodyさん
2009/07/02(木) 13:44:47ID:???0963nobodyさん
2009/07/02(木) 14:53:00ID:???0964nobodyさん
2009/07/02(木) 14:58:58ID:???0965nobodyさん
2009/07/02(木) 16:35:49ID:???ちょっとだけね。
0966nobodyさん
2009/07/02(木) 16:38:32ID:???PHPプラットホームの独自フォーマットなら、
INI以外にも有用なのあったろうに。ないか。
一応、極端なフォーマットにしなきゃWin32
のINIとしても使えるんじゃね?
0967nobodyさん
2009/07/02(木) 16:39:14ID:???使えるINIファイルになるんじゃね?
0968nobodyさん
2009/07/02(木) 17:46:56ID:???0969nobodyさん
2009/07/02(木) 18:07:00ID:???0970nobodyさん
2009/07/02(木) 18:08:40ID:???0971nobodyさん
2009/07/02(木) 18:54:36ID:???0972nobodyさん
2009/07/02(木) 19:00:16ID:???0973nobodyさん
2009/07/02(木) 19:00:28ID:???レス数が950を超えています。1000を超えると書き込みができなくなります。