【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/09/15(月) 18:41:32ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
0459nobodyさん
2008/12/12(金) 20:28:40ID:???>>456
に書いてあること理解できてる?
requireされてるファイルの中で出力するなと、
そして、そのファイルからreturnしろと読めない?
0461nobodyさん
2008/12/12(金) 22:10:32ID:???$trackback_for_products = require(DIR_WS_MODULES . FILENAME_TRACKBACKS_FOR_PRODUCTS);
$this->smarty_obj->assign('$trackback_for_products');
0462nobodyさん
2008/12/12(金) 22:16:48ID:???0463nobodyさん
2008/12/12(金) 22:47:25ID:???やりたいこととちがうんじゃねぇーの?
0464448
2008/12/13(土) 23:06:46ID:???結果オーライというか、上記本来の使用法かな?とも思ったりするのですが、
後学の為に正解をお願いします。
returnを実行phpで使うのか、includeしたphp内で使って、その結果を実行phpに渡すのか。
assignに渡すのと同じ行でreturn出来るのかなと思ったのですけど、
そんな感じじゃないみたいなので。。。
0465nobodyさん
2008/12/13(土) 23:07:39ID:???○上記が本来
0466nobodyさん
2008/12/14(日) 14:17:48ID:???formからアップロードしたzipファイルを解凍するスクリプト書いてるんですが、
解凍する前にzipファイルの破損をチェックするのってどうやったらできますか?
0467nobodyさん
2008/12/14(日) 14:18:44ID:???0468nobodyさん
2008/12/14(日) 14:30:49ID:???0469nobodyさん
2008/12/14(日) 14:32:31ID:???0470nobodyさん
2008/12/14(日) 15:07:29ID:???0471nobodyさん
2008/12/14(日) 15:07:51ID:???元を見てないならマルチかどうか知らんことだし
誘導されてきたことは告げるべきことなのか?
466じゃないけど気になったんで聞いてみる
0472nobodyさん
2008/12/14(日) 15:13:56ID:???0473nobodyさん
2008/12/14(日) 15:14:33ID:???それとも誘導レスを見る前にマルチしたのかどうやって判断するんだ?
時間的に整合性があればマルチじゃないと判断しろよ って言うのか?
誘導された旨を書くのがスマートだろ
0474nobodyさん
2008/12/14(日) 15:17:17ID:???ああ誘導があったから来たんだなっと
たしかに実際にはわからんけど悪い方にとり過ぎだと思うんだが
0476nobodyさん
2008/12/14(日) 16:50:59ID:???iPhoneのメールからある掲示板にメールで投稿する時に絵文字を挿入(タイトルへ)して送ると
普通の文字は大丈夫なのですが絵文字部分が =?utf-8?B?77+9?= という文字列になって表示してしまいます。
iPhoneでは1つの絵文字を書いたつもりなのですが。
同じ絵文字をメールで受信すると菱形の中に?が入ったように化けています。
これをiPhoneで掲示板を見たときはちゃんと絵文字を表示するようにしたいのですが、
どうすれば表示できるようになるのでしょうか?
どなたかその流れを教えてもらえませんか?
0477nobodyさん
2008/12/14(日) 19:09:19ID:???ここで誘導されてきたことを書く必要はない
0481nobodyさん
2008/12/14(日) 19:49:38ID:???0482nobodyさん
2008/12/14(日) 21:46:26ID:???wordpressでつくったサイトのトップページに、
ブログの更新情報をPHPで表示したいのですが、
2008.12.14 ブログの更新情報
2008.12.14 ブログの更新情報
2008.12.14 ブログの更新情報
という風に表示するには、どういう記述をしたらいいのでしょうか。
詳しい方お願いします!
0483476
2008/12/14(日) 21:49:33ID:???0484nobodyさん
2008/12/14(日) 21:50:56ID:???echo'2008.12.14 ブログの更新情報
2008.12.14 ブログの更新情報
2008.12.14 ブログの更新情報';
0485nobodyさん
2008/12/14(日) 21:55:18ID:???base64エンコードされたものをデコードし、得られた文字列を出力可能なものに
変換するというのが基本。
しかし、絵文字などはキャリア依存だったりするので、キャリア別のマップを入手して
それに合わせて変換するライブラリを用意する必要があるが、PHPではあまり見かけない。
MobaSiFはPerlだが、これを参考にPHP用のを書いて公開してくれ。
0487482
2008/12/14(日) 22:05:42ID:???0488476
2008/12/14(日) 22:17:15ID:???レスありがとうございます。
デコードとかしなきゃいけないんですね。
2chに絵文字をいれるとiPhoneでちゃんとひょうじされるのでそんなこともしてあるんですね。
utf-8じゃなくshift-jisだと絵文字はみれるんだけど。
Macでみると・になってたりするけどw
レスをヒントにもう少し悩んで見ます。
0490476
2008/12/15(月) 17:50:21ID:???$subject = mb_decode_mimeheader($subject);
とする事で絵文字は表示するようになったのですが
通常の文字と絵文字を混在すると例えば「あいうえお@@@@@」(←@は絵文字です)な風ですが
=?utf-8?B?44GC44GE44GG44GI44GK77+977+977+977+977+977+977+977+9?=
ってログになってしまいます。
前半のあいうえおが絵文字の中に入ってしまってて後半の絵文字がおかしくなってるように思うのですが
これってどうすれば分離?出来るんでしょうか?
0491466
2008/12/15(月) 20:24:06ID:???phpでzip書庫のテストをする処理方法をご存じの方いらっしゃったら教えてください!!
0492nobodyさん
2008/12/15(月) 20:37:18ID:???zipの仕様に完全に則ってるファイルはzipでそれ以外は破損扱いにすればいいじゃん
0494nobodyさん
2008/12/15(月) 23:30:01ID:???0495nobodyさん
2008/12/16(火) 01:08:24ID:???0496nobodyさん
2008/12/16(火) 04:55:52ID:???上の記述で Parse error: syntax error, unexpected T_STRING のエラーが出るのですがなぜでしょうか?
.htaccessなどの設定ファイルはすべて削除済みです。
サーバーの設定で影響しそうな箇所があれば教えてください。
print 'aaa"bbb'; でエラーは出ませんが、根本的に解決したいです。
0497nobodyさん
2008/12/16(火) 05:30:17ID:???0500496
2008/12/16(火) 06:04:44ID:???0501nobodyさん
2008/12/16(火) 18:08:58ID:???/**
* @access public
のメソッドにつけるコメントの意味あいがいまいちわかりません。
この辺のドキュメントはありませんでしょうか?
検索しにくく、通常のアクセス修飾子に関してしかでてこず困っております。
0502nobodyさん
2008/12/16(火) 18:26:54ID:???0503nobodyさん
2008/12/17(水) 00:24:15ID:???クラス内のメソッド内でローカルの関数のつもりで定義したのですが、
クラスのフィールドにアクセスできないみたいで泣けてました。
この辺に関する記述があるドキュメントはありませんでしょうか?
0504nobodyさん
2008/12/17(水) 00:28:27ID:???0505nobodyさん
2008/12/17(水) 09:10:43ID:???>>501ですが、PEARのphpDocumentorのページからマニュアルのリンクを見つけることができました。
ありがとうございました。
@accessについては、privateをつけるとphpDoc実行時--parseprivateをつけない時にドキュメントに表示されない、
くらいの意味合いみたいですね。
@access
http://manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/tutorial_tags.access.pkg.html
phpDocumentor Tutorial
http://manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html
0506nobodyさん
2008/12/17(水) 10:02:58ID:???ありがとうございます。
「関数内関数」で見つけられず、「inner function」で検索したところ
(何故かw)以下のページが見つけられました
PHP: 関数 - Manual
http://jp.php.net/manual/ja/language.functions.php
> PHP では、関数やクラスはすべてグローバルスコープにあります -
> 関数の内部で定義したものであっても関数の外部からコールできますし、
> その逆も可能です。
「例3 関数の中の関数」の例と上記の解説だけではよくわからないのですが、
クラス内メソッドで宣言してもメソッドにならずにグローバル関数になる、という解釈であっているようです。
webでも検索単語がわるいのか、この手の話題を扱っている人がいなくてちょっと悲しい
0507nobodyさん
2008/12/17(水) 10:07:45ID:???> クラス内メソッドで宣言してもメソッドにならずにグローバル関数になる
こんなことどこにも書いてないでしょ。
基本的過ぎて誰も書かないけど、
マニュアルのクラスとオブジェクト(PHP5)のところも読んでみたら?
0508nobodyさん
2008/12/17(水) 10:11:09ID:???クラスメソッドのなかでfunction宣言やclass宣言をしたりインクルードした場合に
内部関数や内部クラスになるかというとそれはない。
PHPでは、functionもclassもグローバルという解釈であってる。
0509nobodyさん
2008/12/17(水) 10:13:26ID:???じゃないと、
クラス内メソッドとして宣言してもと、読み間違える(って俺の日本語力のせい?)
0510nobodyさん
2008/12/17(水) 10:23:23ID:???質問もこれだけしてたら質が向上しそうなもんだけど、
>>322を見る限り、池っぷりは明白だし難しいんだろうなぁ・・・
0511nobodyさん
2008/12/17(水) 10:24:01ID:???0512506
2008/12/17(水) 17:06:31ID:???すまそ。ちょっとphpの用語というか全般に慣れてない成果、互換を与えているみたいです。
こういう状況を想定しています。Hoge::mageメソッドのhoge内から$thisにアクセスできないので、
グローバルなんだ、と判断してしまっていました。
class Hoge
{
var $foo;
function mage()
{
function hoge()
{
$this->foo; #アクセスできない!?
}
}
}
0514nobodyさん
2008/12/17(水) 19:25:55ID:???<table width="367" border="1">
<tr>
<td width="84">'htmlspecialchars'($post['content'])</td>
<td width="267">htmlspecialchars($post['name'])</td>
</tr>
</table>
eof;
エラーが出ます 助けてください><
0515nobodyさん
2008/12/17(水) 19:39:45ID:???配列を使うときの誤用
0516nobodyさん
2008/12/18(木) 12:27:03ID:???ヒアドキュメント内では関数は使用できない
ヒアドキュメント内で変数を使う場合{}で囲む癖をつける{$post['content']}
グローバル変数の$_POSTとどうも勘違いしてるような気がするが
$postという変数を用意してるならそっちでhtmlspecialcharsをやる
$post['content'] = htmlspecialchars($_POST['content']);
0518nobodyさん
2008/12/18(木) 13:36:48ID:???もっと一発で格好良く書く方法はありませんでしょうか?
$correct_count = 0;
foreach ($results as $result) {
if ($result->is_correct) { $correct_count++; }
}
$results は、stdClassでis_correct(boolean)をプロパティに持つ Array です。
0519nobodyさん
2008/12/18(木) 13:37:45ID:???$count = 0;
foreach ($flags as $flag) {
if ($flag) { $count++; }
}
0520nobodyさん
2008/12/18(木) 13:41:16ID:???0521nobodyさん
2008/12/18(木) 13:58:30ID:???すいません。こんな感じです。(例です)
$flags = array(TRUE, FALSE, TRUE, FALSE, TRUE, TRUE);
$count = 0;
foreach ($flags as $flag) {
if ($flag) { $count++; }
}
RubyのEnumerable#countみたいにさっくりいける関数がないかと思っていたのです。
flags.count {|x| x }
また、
$count = array_count_values($flags)[TRUE];
でいけるかと思ったのですが、array_count_valuesは
stringとinteger以外(上記のbooleanとか)だと例外が発生するみたいで使えないっぽいですね。
0522nobodyさん
2008/12/18(木) 14:06:09ID:???0523nobodyさん
2008/12/18(木) 16:28:40ID:???0524521
2008/12/19(金) 18:09:01ID:???phpは向かないのに、ゴルフしようとするクセがあってスマソ
短くしたかっただけなのです。
0525nobodyさん
2008/12/19(金) 18:19:12ID:???0526nobodyさん
2008/12/20(土) 08:02:14ID:???$flags = array(TRUE, FALSE, TRUE, FALSE, TRUE, TRUE);
echo count(array_keys($flags, false, true));
0528nobodyさん
2008/12/20(土) 14:58:54ID:???そんくらいいいってことよ
0529nobodyさん
2008/12/20(土) 15:02:39ID:???それに、booleanしか格納しないなら配列はお勧めしない。
0530nobodyさん
2008/12/20(土) 15:12:01ID:???0531nobodyさん
2008/12/20(土) 15:40:52ID:???0532529
2008/12/20(土) 15:47:42ID:???サーセン
0533nobodyさん
2008/12/20(土) 15:55:21ID:???0534nobodyさん
2008/12/20(土) 16:17:53ID:???何が知りたいのかわからん
0535nobodyさん
2008/12/20(土) 16:20:44ID:???0536nobodyさん
2008/12/20(土) 16:22:20ID:???0537nobodyさん
2008/12/20(土) 16:41:51ID:???元もわからないから説明できないんでしょ
0538nobodyさん
2008/12/20(土) 16:46:09ID:???0539nobodyさん
2008/12/20(土) 16:48:10ID:???0540nobodyさん
2008/12/20(土) 16:49:19ID:???0541nobodyさん
2008/12/20(土) 16:52:44ID:???0542nobodyさん
2008/12/20(土) 16:54:56ID:???0543nobodyさん
2008/12/20(土) 17:01:43ID:???特にIDスレに発生したスパム質問には呆れる。
そのうちここにも来るかもなw
0544nobodyさん
2008/12/20(土) 18:03:48ID:???説明できるならどこそこ言わなくても言えるわけだから
0545nobodyさん
2008/12/20(土) 20:56:19ID:???その面白さに免じて釣られたるわ。
冗長だからお勧めはしない。 => 配列を再育成する分オーバーヘッド
素直にループで数えた方が速い。 => ステップ数から速いのは自明
それに、booleanしか格納しないなら配列はお勧めしない。
=>用途によるが固定長ならビット演算、複雑ならオブジェクト内でロジックを実装(たとえばFilterIterator)
0548nobodyさん
2008/12/20(土) 23:49:04ID:???0549nobodyさん
2008/12/21(日) 00:17:37ID:???nbへのサービスだよ
0550nobodyさん
2008/12/21(日) 16:55:41ID:???これを一気に検索することは可能ですか?
10枚をまとめて1枚にすればいいんですよね
でも重くなりそう・・・
0551nobodyさん
2008/12/21(日) 17:01:00ID:???それがイヤなら最適化するなり工夫しろ
0552nobodyさん
2008/12/21(日) 17:09:10ID:???ありがとうです
0553521
2008/12/21(日) 23:33:23ID:???>>545
> 冗長だからお勧めはしない。
> 素直にループで数えた方が速い。
いや、速くなくても コードが冗長じゃなければおkでした
> booleanしか格納しないなら
元のコードは >>518 なんで・・・
というかゴルフしたかっただけです(´・ω・`)
0555nobodyさん
2008/12/22(月) 07:48:41ID:???$resultsは$resultの集合でしょ。$resultがオブジェクトだよな?
設計に問題がなければArrayObjectを使うなり、オブジェクト側で
implements countable してcount()を実装すれば、
利用側はcount($results)でok
0556nobodyさん
2008/12/22(月) 09:08:51ID:???0557nobodyさん
2008/12/22(月) 13:09:41ID:???0558521
2008/12/22(月) 13:29:24ID:???構造体っぽくみせたいときに
stdClassつかうもんだと思ってたんですが、そういうわけでもない?
0559nobodyさん
2008/12/22(月) 13:29:53ID:???■ このスレッドは過去ログ倉庫に格納されています