【PHP】下らねぇ質問はここに書き込みやがれ 44
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/04/12(木) 16:54:47ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0220nobodyさん
2007/04/16(月) 17:03:07ID:???0221217
2007/04/16(月) 17:03:26ID:N9diKUeiなるほど。そういうことですか。
ではサーバのPHPをかえてもらわないとダメになるわけですね。
MySQL+PHPを使ったログイン機能があるサイトを作ろうと思っているのですが、
そのログインページ(PHPでできた)でSSLをつかいたいと思ったのですが、
PHPでSSLをサポートしなくても、Webでサポートしていれば、
入力された情報はちゃんと暗号化してくれるのでしょうか?
0222nobodyさん
2007/04/16(月) 17:24:09ID:???当たり前だけどしてくれるよ
PHPでSSLを使うって事はプログラムで内部でhttpsなURLに対して
リクエストを送る事が可能になったりするってことだ。
0223nobodyさん
2007/04/16(月) 17:25:38ID:dwzdMgji「Windowu Binaries」の「PHP 5.2.1 zip package」をクリックすると
タイムアウトしてしまいます。
みなさんのところからはダウンロードできますか?
0224nobodyさん
2007/04/16(月) 17:27:23ID:???時間帯ずらしてダウンロードをためしてみたらいいよ
0225217
2007/04/16(月) 17:28:07ID:N9diKUeiひとつ勉強になりました。これで一安心です。
早速プログラムを組みたいと思います。
どうもありがとうございました。
0226nobodyさん
2007/04/16(月) 17:51:24ID:???なんだかクラスを使った場合と使わない場合がうまく想像できないのです
0227nobodyさん
2007/04/16(月) 18:00:38ID:???0229nobodyさん
2007/04/16(月) 18:21:04ID:???0230nobodyさん
2007/04/16(月) 18:26:19ID:???0231nobodyさん
2007/04/16(月) 18:29:11ID:???0232nobodyさん
2007/04/16(月) 18:35:08ID:???日本語に関しては
0233nobodyさん
2007/04/16(月) 18:40:47ID:???0234nobodyさん
2007/04/16(月) 19:10:27ID:???0236nobodyさん
2007/04/16(月) 19:51:10ID:???別のサーバからFTPでアップされたjpg画像を
上書き保存されない様にmv、cpとfopenはパーミッションの問題でエラーになりました。
そこで、上記コマンド実行前にchmodを入れてみましたがやはりパーミッションの問題が…。
file_get_contentsはPHPのバージョンの問題で使えませんでした。
要は、常に上書き保存されていってしまう画像をリネームして保存しておきたいのですが
上記以外の手法でパーミッションに捕われないような手法はありますでしょうか?
0237236
2007/04/16(月) 19:57:10ID:???0238236
2007/04/16(月) 20:29:36ID:Fo/N831Cちょw誰だよwww
解決してネーよw
sageってメル欄だとID出ないんね。
メル欄空でもsagaるんかな?
0240nobodyさん
2007/04/16(月) 20:53:17ID:???それじゃ無理だろうね。FTPの方でパーミッションのread許可の対応するしかない。
FTPのユーザもあなたなら、簡単だけど。
0242nobodyさん
2007/04/16(月) 21:45:30ID:???0243nobodyさん
2007/04/16(月) 21:55:35ID:ozAmxKpX0245nobodyさん
2007/04/16(月) 22:43:26ID:???東MAX最近みないね、
0246nobodyさん
2007/04/17(火) 01:52:56ID:wSkpW1Usfunction mobile_agent(){
$agent = $_SERVER['HTTP_USER_AGENT'];
switch ($agent){
case preg_match("/DoCoMo/", $agent):
$agent = "docomo";
break;
case preg_match("/Vodafone/", $agent) || preg_match("/SoftBank/", $agent):
$agent = "softbank";
break;
case preg_match("/KDDI/", $agent):
$agent = "au";
break;
case preg_match("/DDIPOCKET/", $agent) || preg_match("/WILLCOM/", $agent):
$agent = "willcom";
break;
default:
$agent = FALSE;
}
return $agent;
}
auでアクセスすると返り値が「docomo」になります。
switch内でのpreg_matchはダメなのでしょうか?
0247nobodyさん
2007/04/17(火) 02:07:43ID:???0249nobodyさん
2007/04/17(火) 03:26:53ID:???0250nobodyさん
2007/04/17(火) 05:38:28ID:???0251nobodyさん
2007/04/17(火) 06:42:52ID:???専用のスレがあるよ
エンコード文字列だけのスレ
http://pc11.2ch.net/test/read.cgi/php/1065258181/
0252nobodyさん
2007/04/17(火) 08:52:36ID:???preg_matchの返り値って知ってる? 0か1がかえってくる。
ということは
case 0:
$agent = "docomo";
break;
とかやってくることになる。
switch使うんじゃなくてelseif使うのが良いと思われる。
0254nobodyさん
2007/04/17(火) 11:24:13ID:cz59188Tヒアドキュメント内でSIDを付加する方法はありますでしょうか?
0255254
2007/04/17(火) 11:28:14ID:???0256nobodyさん
2007/04/17(火) 11:40:27ID:???0257nobodyさん
2007/04/17(火) 11:46:09ID:cz59188T( ^ω^)お?
気を取り直して、
ヒアドキュメントでHTML部分を出力するのではなく、
<?php ?>と処理後に直接HTMLを書き、↓のように埋め込むか、
<a href="nextpage.php?<?php echo strip_tags(SID)?>">リンク</a>
もしくは、.htaccessが利用できるなら↓がスマートなんでしょうか。
php_flag session.use_trans_sid On
他にはどのような方法がありますでしょうか?御教示ありましたら宜しくお願いします。
0258nobodyさん
2007/04/17(火) 12:16:24ID:wSkpW1Usいや、位置情報取得のフォームを出力するんで、
携帯のブラウザによっても変化するからUAじゃないとダメっす
0259nobodyさん
2007/04/17(火) 12:33:54ID:IrxiH2Fq公開すると言うのが一般的だと思うのですが、
やっぱりデザインとPHPの分岐・分類って限界がありますよね?
Smartyとか使ってもやっぱり、デザイン用のHTMLにソースを埋め込むわけで。
かといってガチガチのプログラムにすると、後からデザイン面を
修正する時にしずらいし。(CSSを使っても限界あるし)
自分は各パーツをclass分けしてて、「登録内容一覧」とか表示する時は
classを使って必要情報を抽出し、whileで出力してます。
くだ質ですが、作りながら思ったので質問してみました。
0260虚弱PHP
2007/04/17(火) 13:05:48ID:???パーツ毎にきちんとテンプレートを分割するだけでも、
デザインとロジックはかなり分離できるよ。
> デザイン用のHTMLにソースを埋め込むわけで。
これは、人によってかなり差が出るところだね。
> デザイン用のHTMLにPHPのコードを埋め込んで
と似たような状態になるなら、
テンプレートエンジンを有効に使えてないと思う。
0261259
2007/04/17(火) 13:08:37ID:???テンプレートは分けてますよ。ただ、例えばSmartyの場合でも
<table>
{foreach item=list from=$list}
<tr>
<td>{$list.name}</td>
<td>{$list.date};</td>
{/foreach}
</tr>
</table>
みたいに専用のコードがテンプレートファイルにはいるので、
結局分離出来ていないような気がするんです。
Smartyを知らない人は、SmartyのコードもPHPのコードも変わらないだろうし。
0262nobodyさん
2007/04/17(火) 13:21:28ID:???それはない
0264nobodyさん
2007/04/17(火) 13:27:25ID:???それを突き詰めちゃうと完全なHTMLにするしかなくて
完全にHTMLのままでそれをパースして
コードに置き換えてくれるテンプレートエンジンもあるにはあるけど
結局それだとどこがコードに置き換わるのか
一目ではわかりづらくてそれはそれでやりづらいと個人的には思うよ
最小限のループと出力に留めるのが実際の落としどころだと思う
0265259
2007/04/17(火) 13:29:42ID:???結構知らない人多いと思いますが・・。
>>264
そうですね。自分も基本的には、パーツ毎に分けてて
includeして読み込んでいるのですが、最近それすら良いのかどうか
よくわからなくなってきました。分離するという意味で。
ただ、おっしゃるようにやっぱり限界はありますよね。
どの程度分離するか考えながらコーティングします。
アドバイスありがとうございました。
0266nobodyさん
2007/04/17(火) 13:41:55ID:???PHPで書かれたテンプレートエンジンって屋上屋を架すみたいな印象はあるね。
0267nobodyさん
2007/04/17(火) 14:06:31ID:ZbMg7dcR別にCRONが使えるサーバを契約しました。
CRONで、任意のスクリプトを任意の時間で実行することができるのは知っていて実際アクセス解析などのログ格納などに
使っているのですが、CRONから起動される(シェルスクリプトから起動される)PHPファイルの書き方で、あるページのURLをクリックしたときと同等の効果を期待することができる
スクリプトの書き方はどのようにすればよろしいでしょうか?
今やっていることは、
CRON起動→シェルスクリプトの実行→PHPファイルの実行
という流れです。
そこで、最後のPHPファイルに
<META HTTP-EQUIV="refresh" content="0;URL=http://www.example.com/test.php?param1=0¶m2=1¶m3=1¶m4=0">
という記述をしています。
流れの最後のPHPファイルや、http://www.example.com/test.php?param1=0¶m2=1¶m3=1¶m4=0
に直接ブラウザからアクセスすると、きちんと起動してくれてるのですが
CRONからの起動はうまくいっていない模様です。
0268nobodyさん
2007/04/17(火) 14:09:35ID:ZbMg7dcRhttp://www.example.com/test.php?param1=0¶m2=1¶m3=1¶m4=0 の部分は
http://www.example.com/test.php?param1=0&param2=1&param3=1&param4=0 です。
よろしくお願いします。
0269虚弱PHP
2007/04/17(火) 14:14:07ID:???> 結局分離出来ていないような気がするんです。
そういうのは「分離できてる」って表現するのが一般的だと思う。
原理主義に陥らないのが一番。
使ったことないから分からないけど、
デザイナが良く使ってるDreamweaverって
Smarty対応してるんじゃなかったっけ?
>>265
↓こんな考え方もあるみたいね。
http://kaede.to/%7Ecanada/doc/mvc2-framework
0271nobodyさん
2007/04/17(火) 15:34:18ID:???ラッパー関数でも作らないとダメ?
0272nobodyさん
2007/04/17(火) 15:47:30ID:???そら<meta>タグを出力しても動かないだろう
出力された<meta>タグを解釈して、動かすのはクライアント側の機能なんだから
PHPの設定にもよるけど、これでいけるだろう
別にreadfileでなくてもいいけど
readfile("http://www.example.com/test.php?param1=0¶m2=1¶m3=1");
0274nobodyさん
2007/04/17(火) 19:16:53ID:teAF4U4F$temp = array('a','b','c');
echo $temp[2]; // OK
echo array('a','b','c')[2]; // NG
3行目のNGですが、1行で出力するにはどうすればいいでしょうか?
0276nobodyさん
2007/04/17(火) 19:25:41ID:???0277nobodyさん
2007/04/17(火) 19:26:58ID:iyno4+7x$temp = array('a','b','c');
echo $temp[2];
を1行で、というか1文で書きたいってこと?
0278nobodyさん
2007/04/17(火) 19:34:59ID:iyno4+7x{
return $array[$key];
}
echo array_pick(array('a', 'b', 'c'), 2);
とかやるしかないかも。
0280nobodyさん
2007/04/17(火) 19:47:39ID:???0281nobodyさん
2007/04/17(火) 19:50:13ID:6MazO8z/エラーが出て起動前に終了してしまいます。
OSはWindowsXPで、PHPはphp-5.2.1-Win32です。
apacheはC:\Apacheフォルダにインストールしました。
httpd.exe: Syntax error on line 115 of c:/Apache/conf/httpd.conf: Cannot load C:/php/php5apache2.dll into server: \x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83\x85\x81[\x83\x8b\x82\xaa\x8c\xa9\x82\xa9\x82\xe8\x82\xdc\x82\xd9\x82\xf1\x81B
Note the errors of messages above, and press the <ESC> key to exit. 17...
httpd.confのline 115は↓の通りです。
LoadModule php5_module c:/php/php5apache.dll
LoadModule php5_module c:/php/php5apache2.dll
LoadModule php5_module c:/php/php5apache2_2.dll
LoadModule php5_module C:/php/php5apache2.dll
LoadModule php5_module "C:\php\php5apache2.dll"
それぞれどれか一行を入れ替えて試しました。
どれでも同様のエラーになってしまいます。
また、色々な解説サイト様に以下のような記述を足すように書かれていますが、
解凍した段階でAddModuleの行が一行もありません。
http://allabout.co.jp/internet/database/closeup/CU20040928A/set02.jpg
AddModule mod_php5.c
この行はどこに書けばよいのでしょうか?
(現在は書いていません)
何か見当違いのことを書いていたら申し訳ありません。
ご教授お願い致します。
0282nobodyさん
2007/04/17(火) 20:09:17ID:???0283281
2007/04/17(火) 20:14:00ID:6MazO8z/phpフォルダもC直下に置いてあって、中身も解凍したものをそのまま入れています。
phpフォルダを開くと直にdllファイルがあります。
半角の確認もしました。
0284nobodyさん
2007/04/17(火) 20:17:21ID:???0285281
2007/04/17(火) 20:23:42ID:6MazO8z/apache_2.2.4-win32-x86-no_sslです。どちらも今日ダウンロードしました。
0286nobodyさん
2007/04/17(火) 20:25:09ID:???0287nobodyさん
2007/04/17(火) 20:28:33ID:???http://www.php.net/manual/ja/install.windows.apache2.php
0288281
2007/04/17(火) 20:45:08ID:6MazO8z/早速拝見し、↓の部分かと思ったのですが違う部分でしょうか?
Apache モジュールの使用
Apache 2.0 でモジュール版の PHP を使用するには、 以下の行を Apache 設定ファイル httpd.conf に追加してください。
例 6.6. Apache 2.0 でモジュール版の PHP を使用する場合の設定
# PHP 5 の場合
LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php
# php.ini の場所を設定
PHPIniDir "C:/php"
これを足してみたのですが、やはり同じエラーがでます。
それともそういう問題ではなくヴァージョンが合っていないということでしょうか??
0289nobodyさん
2007/04/17(火) 21:06:11ID:teAF4U4Fあ、そうなんですか
>>277
そうです
>>278-279
なるほど。。。そうなんですか。分かりました。ありがとうございます。
>>280
あなたには理解できないでしょうねぇ、残念ながら。
0291nobodyさん
2007/04/17(火) 21:22:28ID:???0292nobodyさん
2007/04/17(火) 21:36:15ID:???0293nobodyさん
2007/04/17(火) 21:38:08ID:???0295nobodyさん
2007/04/17(火) 23:10:20ID:???0296nobodyさん
2007/04/18(水) 00:15:19ID:???あ、傷ついちゃいました?
>>294
簡単に言うと>>290はオブジェクト指向の発想ができないということですw
0297nobodyさん
2007/04/18(水) 00:16:57ID:???0298nobodyさん
2007/04/18(水) 00:21:17ID:???0299nobodyさん
2007/04/18(水) 00:42:13ID:???それはどうしても
echo array('a','b','c')[2];
と書かなければいけないものなのか?
0300nobodyさん
2007/04/18(水) 00:50:01ID:???と言う書き方が通ったから、他でもやりたいって気持ちは分かるよ。
0301nobodyさん
2007/04/18(水) 00:51:37ID:???0302nobodyさん
2007/04/18(水) 01:03:57ID:???てやりたい時はある
0304nobodyさん
2007/04/18(水) 02:24:40ID:???が、でPHP5できるようになったから、
PHP6では>>302ができるようになるはず!
0305nobodyさん
2007/04/18(水) 02:45:15ID:???0306nobodyさん
2007/04/18(水) 03:09:10ID:???0307nobodyさん
2007/04/18(水) 06:15:48ID:2pczTFS7いくつか関数を調べたのですが
どれも失敗しました。
他に何か方法は無いでしょうか?
phpのバージョンは4.2.3です。
$html=domxml_open_file($url);
同一行を指示した同じようなwarningが沢山でて使えませんでした。
$html=fopen($url,"r");
Noと言われる。
$html=implode("",file($url));
bad argument
$html=file_get_contents($url);
undefined function
0309307
2007/04/18(水) 06:48:07ID:2pczTFS7//$html=file_get_contents($url);
//$html=fopen($url,"w");
//$html=implode("",file ($url));
//$html=domxml_open_file($url);
$text=strip_tags($html);
print $text;
です。//をそれぞれ外して出たエラーは
$html=file_get_contents($url);
Fatal error: Call to undefined function: file_get_contents() in c:\phpdev\www\ereg.php on line 21
$html=fopen($url,"w");
Warning: fopen("http://en.wikinews.org/wiki/33_dead%2C_15_injured_in_Virginia_Tech_University_shootings", "w") - No error in c:\phpdev\www\ereg.php on line 24
$html=implode("",file ($url));
Warning: file("http://en.wikinews.org/wiki/33_dead%2C_15_injured_in_Virginia_Tech_University_shootings") - No error in c:\phpdev\www\ereg.php on line 26
Warning: Bad arguments to implode() in c:\phpdev\www\ereg.php on line 26
0310307
2007/04/18(水) 06:54:18ID:???は行数制限でそのままコピペできないので意味のありそうなとこを
クリップします。
Warning: http://en.wikinews.org/wiki/33_dead_15_injured_in_Virginia_Tech_University_shootings:234: in c:\phpdev\www\ereg.php on line 19
Warning: error: in c:\phpdev\www\ereg.php on line 19
Warning: Entity 'nbsp' not defined in c:\phpdev\www\ereg.php on line 19
Warning: e='submit' name="go" class="searchButton" id="searchGoButton" value="Go" />&nbs in c:\phpdev\www\ereg.php on line 19
Warning: ^ in c:\phpdev\www\ereg.php on line 19
Warning: Entity 'reg' not defined in c:\phpdev\www\ereg.php on line 19
Warning: ons Attribution 2.5 License unless otherwise specified.
WikinewsR in c:\phpdev\www\ereg.php on line 19
Warning: Opening and ending tag mismatch: br and li in c:\phpdev\www\ereg.php on line 19
Warning: ource="http://web.resource.org/cc/DerivativeWorks"/> -->c:\phpdev\www\ereg.php on line 19
Warning: Premature end of data in tag 0.064 secs. --> in c:\phpdev\www\ereg.php on line 19
0311nobodyさん
2007/04/18(水) 07:23:21ID:???0312nobodyさん
2007/04/18(水) 07:55:03ID:???0313nobodyさん
2007/04/18(水) 08:00:50ID:???携帯だから細かくかけないけどとりあえずwはねえだろ
0314nobodyさん
2007/04/18(水) 08:15:20ID:???rでやっても同じでした。
0315nobodyさん
2007/04/18(水) 09:15:02ID:???>>Fatal error: Call to undefined function: file_get_contents() in c:\phpdev\www\ereg.php on line 21
まずもって、この意味もわからんやつが、domxml_open_fileなんぞという関数を使おうと思うな。
0316nobodyさん
2007/04/18(水) 12:06:59ID:???print $text;
せめてfopenぐらいは勉強してから質問しる
0318nobodyさん
2007/04/18(水) 15:16:23ID:???<?php
$url = "http://www.google.com/";
$list = file($url);
foreach ($list as $val) {
echo htmlspecialchars($val);
}
?>
</pre>
0319nobodyさん
2007/04/18(水) 15:54:19ID:???スクリプトだけ書いて一切言葉しゃべらない人いるよね
まじキモイんですけど…
■ このスレッドは過去ログ倉庫に格納されています