【PHP】下らねぇ質問はID出して書き込みやがれ 91
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/12/08(火) 13:53:09ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 90
http://pc11.2ch.net/test/read.cgi/php/1258187482/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0497nobodyさん
2009/12/23(水) 05:40:00ID:9xQ+acVIそして返ってきたヘッダーにsetCookieが有った場合、それを任意のファイルに保存する事が出来、
そのファイルを指定すると、そのクッキー内容をセットして送信してくれる
またその関数はオプションで、レスポンスヘッダーにLocationが存在した場合、自動的にそのURLにリダイレクトもしてくれる
という関数を探しています。
以前使った記憶があるのであるはずなのですが、どうにも検索出来ません。
php cookie ですと、サーバーからクライアントにクッキーを渡す、受ける方法しか出てこないので。
この関数に心当たりの有る方、是非教えてください。
0498nobodyさん
2009/12/23(水) 06:20:09ID:yNzqV2OY用途を言え
さすれば>>499が答えてくれるはず
0500nobodyさん
2009/12/23(水) 07:13:44ID:9xQ+acVIそれです。ありがとうございました。
>>498
サイトのソースを取得したかったが、file_get_contentsだと「オメーのアクセス不正だからデータ出してやんねー」
って弾かれるから、セッションとかその辺がいかんのかなぁと思って聞いた。
が、どうもUAが空なのが原因だったらしい。
0501nobodyさん
2009/12/23(水) 09:31:57ID:???stream_filter_append で convert.base64-decodeと bzip2.decompress なんて手も。
0502nobodyさん
2009/12/23(水) 10:34:14ID:cvJgDWhA俺もやってみるわ。なんか書き込んでとか生意気なこといったのに応じてくれてありがとう
0503nobodyさん
2009/12/23(水) 10:35:28ID:GedKCbN8function print_current_date($params, &$smarty)
{
if(empty($params['format'])) {
$format = "%b %e, %Y";
} else {
$format = $params['format'];
}
return strftime($format,time());
}
?>
質問させてください。
関数print_current_dateの第2引数 &$smarty の意味が分かりません
参照渡しだと言う事は分かるのですが、引数に指定された時にはいったいどういう挙動をするのでしょうか?
0505nobodyさん
2009/12/23(水) 10:50:58ID:???その関数でsmartyの機能を参照できるようにするためで、引数に渡される。
使わないなら何もしない。 その関数の中で $smarty->trigger_error とか使うためのもの。
0506nobodyさん
2009/12/23(水) 11:04:44ID:GedKCbN8ありがとうございました
0507nobodyさん
2009/12/23(水) 17:00:21ID:NNi2TGwI何も表示されません。
クッキーの受け渡しは出来ているのですが、
もしかしてIFRAMEだとクッキーを認識しないのでしょうか?
0508nobodyさん
2009/12/23(水) 17:15:07ID:???してみろ
0509nobodyさん
2009/12/23(水) 17:28:54ID:???0510507
2009/12/23(水) 17:28:57ID:NNi2TGwIPHPSESSIDはでますが、クッキー用の変数は出ません
0511nobodyさん
2009/12/23(水) 17:33:01ID:???0512nobodyさん
2009/12/23(水) 17:35:08ID:???ブラウザの戻るボタンと同様の動作はできますか?
リダイレクトheader('Location〜だと新しく読み直してしまうんですが・・
0513507
2009/12/23(水) 17:37:59ID:NNi2TGwIクッキーを渡すURLがhttp://localhost/admin/setting.php
クッキーを受け取るURLがhttp://localhost/test.php です。
渡し方はsetcookie("test_cookie","1");としています。
0515507
2009/12/23(水) 17:42:05ID:???setcookie("test_cookie","1",time()+3600,"/");
とすれば良いみたいです。おさわがせしました。
0517nobodyさん
2009/12/23(水) 20:59:16ID:IsKOC7oo【libxslt Version】1.1.24
XSLTProcessorなんだが
【×】
<xsl:variable name="fragment" select="'091223006'"/>
<xsl:template match="a[@name=$fragment]">
<div><xsl:value-of select="$fragment" /></div>
</xsl:template>
↓
Undefined variable
compilation error: file xxxx.xsl line 2 element template
Failed to compile predicate
【○】
<xsl:variable name="fragment" select="'091223006'"/>
<xsl:template match="a[@name='091223006']">
<div><xsl:value-of select="$fragment" /></div>
</xsl:template>
↓
<div>091223006</div>
なんで上のがエラーなんだよ。
死ねクソPHP。
0518nobodyさん
2009/12/24(木) 03:35:43ID:???ワロタw
0519nobodyさん
2009/12/24(木) 03:36:29ID:???0520nobodyさん
2009/12/24(木) 15:58:09ID:RlAOKAtPhoge::poge()
ってどう使い分ければいいんでしょうか?
0521nobodyさん
2009/12/24(木) 16:08:47ID:K1JQdV/Rぐぐってみれ
0522nobodyさん
2009/12/25(金) 02:20:42ID:???0523nobodyさん
2009/12/25(金) 02:21:45ID:???SmartIRCを使ってチャンネルのトピックや参加人数を
変数に取得したいのですが、やりかたがわからず。。
どなたか教えていただけると助かります。
0524nobodyさん
2009/12/25(金) 02:39:45ID:???0525nobodyさん
2009/12/25(金) 11:09:57ID:BJR7sXEG<?php
$test=$_GET['key'];
if($test==='aiueo'){
/* srcディレクトリにあるtest.zipをダウンロード開始 */
}else{
/* 何もしない */
}
?>
で、keyをphp側で受け取って'aiueo'と一致すれば
test.zipのダウンロード開始をしたいです。
このダウンロード開始というのは、
ブラウザで右クリック保存を押したときに、
保存画面が表示されるときのような感じです。
(または単に、.zipのようなファイルにアクセスがあったとき
ブラウザ側で勝手に拡張子を判断してダイアログをだしてくれるような)
keyが一致すれば、test.zipまでのファイルのパスを
aタグで指定したのを表示して〜(<a href="http〜〜〜/src/test.zip" title="test">ダウンロード</a>)
みたいに二段階だと簡単にできるのですが、一段階だと思うようにできません。
自分なりに考えたのが、RewriteRuleでtest.zipにアクセスがあったときtest.phpへつなぐようにして、
php側でkeyが一致したとき
echo file_get_contents('./src/test.zip');
を実行、
ダウンロード自体はhttp〜〜/src/test.zip?key=aiueoでアクセス、という感じです。
これなら一応できるにはできたのですが、そのままファイルの内容を表示してしまうので
実質urlの上で右クリックダウンロードしかできないし、そもそも間違った方法のような気がします。
ようは、普通ならhttp〜/src/test.zipへアクセスすれば単純にダウンロードできるところをkey一致の段階を付け足したいというところです。
ファイルのタイプはzip以外にもで、keyのaiueoも一定時間で変化するようにできたら、と考えています。
何か良い方法があればアドバイスお願いします。
PHP5.2.6 Apache2
0526nobodyさん
2009/12/25(金) 11:12:03ID:???http://jp2.php.net/manual/ja/function.header.php
0527nobodyさん
2009/12/25(金) 11:21:44ID:BJR7sXEGおぉ、こんな簡単な方法が。
やりたいことができました!
ありがとうございました。
0528nobodyさん
2009/12/25(金) 11:31:51ID:v7rwUytB会社の意向でPHPを2週間で習得しなければならなくなりました。
個人的にはrubyやpythonが使えるので今更PHPみたいな名前も構文も
設計思想も時代遅れの糞言語を習得する時間がもったいなくてたまり
ません。RoRやdjangoの素晴らしさを説明してもアホな上司は何もわ
かってくれないし(泣
僕はどうすればいいのでしょうか?アドバイスお願いします。
0534nobodyさん
2009/12/25(金) 12:58:53ID:???>
> 会社 で
> 使え な
> い
> アホな
>
>
> 僕はどうすればいいのでしょうか?アドバイスお願いします。
気にせずクリスマスを祝えばいいと思うよ
0535nobodyさん
2009/12/25(金) 13:07:56ID:???0536nobodyさん
2009/12/25(金) 13:11:14ID:???0538nobodyさん
2009/12/25(金) 13:53:03ID:9hjXXeKP0539nobodyさん
2009/12/25(金) 15:22:23ID:???表示できるフォントあるいは他の解決法があれば教えてもらえないでしょうか。お願いします。
0540539
2009/12/25(金) 16:37:50ID:???0541nobodyさん
2009/12/25(金) 17:06:12ID:ODrit1bBfunction smarty_prefilter_no_php($src, &$o_smarty) {
$result=str_replace("{php}","{ldelim}php{rdelim}",$src);
$result=str_replace("{/php}","{ldelim}/php{rdelim}",$result);
return $result;
}
?>
上記の関数内の変数resultはどちらも「=」で代入されていますが、オーバーライドされないのでしょうか?
0542nobodyさん
2009/12/25(金) 17:24:54ID:???$a = 5 + $a ってだけですね。
0543nobodyさん
2009/12/25(金) 17:35:52ID:ODrit1bBすみません
$a .= 5 のように「=」の前にドットを付けるとそのようになるのは知っているのですが、単なる「=」でもそのように出来るのですか?
-> 等は追記していけるのは分かりますが、=がそのような動作を出来るとは知りませんでした
普通に
$a = Hello;
$a = World;
とするとオーバーライドだれると思うのですが、>>541の場合は第2引数の参照渡しとかが何か影響しているのでしょうか?
0544nobodyさん
2009/12/25(金) 17:48:40ID:???>>543
$a=4;
$a=5+$a;
//ここで$aは9だ。
0545nobodyさん
2009/12/25(金) 17:57:27ID:???変数 $src の中の {php}という文字列を {ldelim}php{rdelim} に置き換えたものを $resultに入れます。
$result=str_replace("{/php}","{ldelim}/php{rdelim}",$result);
変数 $result の中の {/php}という文字列を {ldelim}/php{rdelim} に置き換えたものを $result に入れます。
プログラムの用語でオーバーライドは別の意味に使うので、 ただの変数の上書きの時には使わないです。
0546nobodyさん
2009/12/25(金) 18:15:11ID:???0547nobodyさん
2009/12/25(金) 18:19:15ID:ODrit1bBわかりました
オーバーライドの意味自体を勘違いしていたようです
自分の言いたかったのは上書きでした
ごめんなさい、まだ良く分かっておりません(苦笑)
<?php
$a = Hello;
$a = World;
print $a;
?>
で試すとブラウザには「Hello」が上書きされて「World」と出力されますが、これと、
>変数 $src の中の {php}という文字列を {ldelim}php{rdelim} に置き換えたものを $resultに入れます
という今回のコードでの意味との違いは何なのでしょうか?
str_replace()だと違う挙動になるのでしょうか?
0548547
2009/12/25(金) 18:21:00ID:ODrit1bB非常に馬鹿でした
$result=str_replace("{/php}","{ldelim}/php{rdelim}",$result);
の$resultが見えていなかったようです
ほんとお騒がせしてすみませんでした
0549nobodyさん
2009/12/25(金) 18:27:05ID:???$a += 5
//$a:9
0550nobodyさん
2009/12/25(金) 18:54:34ID:+jc140hL(というより検索クエリ自体が化けているらしく結果も正しくありません)
フォームはGETで、ページはUTF-8です。auはフォームからのデータがSJISになってしまうということは
ググってわかったのですが、どうやってSJIS→UTF-8に変更してデータを送るかがわかりません。。。
どのような方法がありますでしょうか。
0551nobodyさん
2009/12/25(金) 19:09:37ID:dFEOAZcldefine('CARRIER_DOCOMO', 'i');
define('CARRIER_EZWEB', 'e');
define('CARRIER_SOFTBANK', 's');
define('CARRIER_PC', 'pc');function mobileStart()
{
//■php内部文字エンコーディング
mb_internal_encoding('utf-8');
//■header出力
//携帯アクセスでdocomoの場合は、Content-Typeを出力
if (whichCarrier() == CARRIER_DOCOMO) {
header("Content-Type: application/xhtml+xml;");
}
//auのみ、ブラウザキャッシュが効くのでキャッシュ無効にする
if (whichCarrier() == CARRIER_EZWEB) {
header('Cache-Control: no-cache');
}
//■出力バッファ開始
ob_start();
0553taigo ◆RpNs8sZ5pNfE
2009/12/25(金) 21:52:22ID:+jc140hLありがとうございます、が。。。やはり文字化けしてしまいます。
ページ変遷がなく、同じページを読み込んでいるのですが
それが原因となることはありますか?
0554nobodyさん
2009/12/25(金) 22:38:29ID:9hjXXeKPphpとかrubyだとたくさん資料あるのですが自分はC++つかっててよくわかりませんでした。
わかる方いらっしゃったらぜひともよろしくお願いします
0556nobodyさん
2009/12/26(土) 06:41:22ID:3WIBYwDf一つだけならセットできたのですが、違う商品を登録すると上書きされてしまいます。
$_COOKIE[`a`]に登録したいものをarray_pushとかで配列として増やすことは可能ですか?
何度か試したけれどエラーがでて上手くいかないので・・・
0558nobodyさん
2009/12/26(土) 08:40:23ID:???0559nobodyさん
2009/12/26(土) 10:03:43ID:???http://www.php.net/manual/ja/function.setcookie.php
クッキー名で配列を記述することにより、 クッキーの配列を設定することも可能ですが、
複数のクッキー がユーザーのシステム上に保存されることになります。
explode() を使用して ひとつのクッキー上に複数の名前と値をセットすることも 考慮してください。
serialize() の使用はセキュリティーホールになり得るため、 この目的のために使用することはお勧めしません。
0560nobodyさん
2009/12/26(土) 11:08:36ID:wIFCZoqoそれはおそらくphpの話だと思うのですが
0561nobodyさん
2009/12/26(土) 11:32:50ID:???0562nobodyさん
2009/12/26(土) 11:33:15ID:???つまりスレ違い
0563nobodyさん
2009/12/26(土) 11:57:21ID:wIFCZoqoすいませんでした
自分で考えます
0564nobodyさん
2009/12/26(土) 13:33:40ID:wnAP/Wohイメージは2ちゃんねるの外部リンク「http://ime.nu/」と同じです。
具体的な要件は・・・
外部リンクのURL -> http://自分のサイトドメイン/[外部リンクページのURL]という
ページを自動生成
確認ページに外部リンク先のURLを表示させてクリックすると実際にそのページへ飛ぶ
初心者質問かもしれませんが、どなたかお力をお貸しください。
よろしくお願いいたします。
0565nobodyさん
2009/12/26(土) 13:41:29ID:???http://自分のサイトドメイン/index.php?url= [外部リンクページのURL]
確認ページを挟みたいなら、http://自分のサイトドメイン/sure.php?url= [外部リンクページのURL]
0566nobodyさん
2009/12/26(土) 14:13:51ID:cSlUn0miログ保存の処理をしています。(log.phpとします)
このファイルをIFRAMEなどで2つ読み込んだ時、
どちらか一方のログが記録されない場合があります。
同時アクセスが原因だと思いますが、こういう場合どう対処すればいいのでしょうか?
0567nobodyさん
2009/12/26(土) 14:19:08ID:???0569nobodyさん
2009/12/26(土) 14:26:53ID:???0570nobodyさん
2009/12/26(土) 17:54:40ID:7XqYgoy00571nobodyさん
2009/12/26(土) 18:38:14ID:w2S23L5nfunction smarty_resource_db_source($tpl_name, &$tpl_source, &$o_smarty) {}や
function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$o_smarty) {}の
リソース名dbについて教えて欲しいのですが、
((ファイル2))
require_once("../MySmarty.class.php");
$o_smarty=new MySmarty();
$o_smarty->default_resource_type="db";
$o_smarty->display("resource_db.tpl");
の$o_smarty->default_resource_type="db";のリソースの種類dbと、ファイル1のリソース名dbは同じなのでしょうか?
普段はdefault_resource_typeのデフォルトはfileなようですが、もしdbがデータベースを表しているのであれば適当に付けた(?)dbとは意味が違ってくると思うのですが
0572551
2009/12/26(土) 20:21:10ID:XUPV0oR3実はまだつづきがあってね。
それを実行すれば
貼るとながいんだ。
はってもいいかな?
それをrequire_onceして共通関数として
使えば文字化けはなくなるよ。
0573551
2009/12/26(土) 20:56:29ID:XUPV0oR3はらなくてよさそうだ。
0574nobodyさん
2009/12/26(土) 21:07:32ID:wIFCZoqo病気でしょうか?
0575nobodyさん
2009/12/26(土) 21:08:17ID:wIFCZoqoあああはずかしいいいいいいい
0576nobodyさん
2009/12/26(土) 21:24:44ID:/CwwEmigこれのテストコードを書こうとして困っています。
テストするためには当然その関数を呼び出す必要があるわけですが、
そうするとexit()でテストコードが終了してしまいます。
なんかいい方法ないでしょうか。
当方PHP5.2.x使用
0577nobodyさん
2009/12/26(土) 21:29:22ID:???0578nobodyさん
2009/12/26(土) 21:44:59ID:???してほしいのかしてほしくないのかどっちなんだw
0579nobodyさん
2009/12/26(土) 22:09:18ID:/CwwEmig通常はexit()で終了してほしいけど、テストのときは終了してほしくない、ということです。
たとえば
function redirect_to($url) {
header('Location: '.$url);
exit();
}
というのがあって、これをテストしたい場合、
・redirect_to()を呼ぶと引数が Location: ヘッダの値として設定されることをテストする
・(可能なら)exit()が呼ばれることをテストする
ということになると思います。こういうテストがしたいんですけど、PHPでは無理ですか。
0580nobodyさん
2009/12/26(土) 22:13:21ID:???0581nobodyさん
2009/12/26(土) 22:15:48ID:/CwwEmigexit()を上書きできる言語ならできます。RubyとかPythonとか。
0582nobodyさん
2009/12/26(土) 22:19:01ID:???http://www.php.net/manual/ja/book.runkit.php
0584nobodyさん
2009/12/26(土) 23:02:30ID:???何言ってるんだよお前ッ!!
お前がチンチンが痒いって言うから親身に相談にのってやってんだろうが!!
俺だっていそがしんだからな、分かったか?
0585553
2009/12/26(土) 23:21:13ID:???あれからurlencodeとかdecodeとかhttp_outputとか調べて色々試したのですが
まだ解決できていません...
可能であれば貼ってもらってもよろしいでしょうか。
0587551
2009/12/27(日) 01:12:28ID:HTyX6aDgecho '<'.'?xml version="1.0" encoding="Shift_JIS" ?'.'>'."\n";
switch (whichCarrier()) {
case CARRIER_DOCOMO:
case CARRIER_PC:
echo '<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.3) 1.0//EN" "i-xhtml_4ja_10.dtd">';
break;
case CARRIER_EZWEB:
echo '<!DOCTYPE html PUBLIC "-//OPENWAVE//DTD XHTML 1.0//EN" "http://www.openwave.com/DTD/xhtml-basic.dtd">';
break;
case CARRIER_SOFTBANK:
echo '<!DOCTYPE html PUBLIC "-//J-PHONE//DTD XHTML Basic 1.0 Plus//EN" "xhtml-basic10-plus.dtd">';
break;
function mobileFinish()
{
$content = ob_get_contents();
ob_end_clean();
$content = mb_convert_encoding($content, 'sjis-win', 'utf-8');
echo $content;
}
0588551
2009/12/27(日) 01:16:51ID:HTyX6aDg{
echo htmlspecialchars($str, ENT_QUOTES);
}
function whichCarrier()
{
global $_mobile_carrier;
//すでに判別済みの場合は前回結果を返す
if ($_mobile_carrier != null) {
return $_mobile_carrier;
}
$uaList = array(
array(
'regexp' => '!^DoCoMo!',
'carrier' => CARRIER_DOCOMO,
),
array(
'regexp' => '!^KDDI-!',
'carrier' => CARRIER_EZWEB,
),
array(
'regexp' => '!^UP\.Browser!',
'carrier' => CARRIER_EZWEB,
),
array(
'regexp' => '!^SoftBank!',
'carrier' => CARRIER_SOFTBANK,
0589551
2009/12/27(日) 01:17:37ID:HTyX6aDg'regexp' => '!^Vodafone!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^J-PHONE!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^MOT-!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^Semulator!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^Vemulator!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^J-EMULATOR!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^MOTEMULATOR!',
'carrier' => CARRIER_SOFTBANK,
),
);
0590551
2009/12/27(日) 01:21:43ID:HTyX6aDgforeach ($uaList as $item) {
if (preg_match($item['regexp'], $ua)) {
$_mobile_carrier = $item['carrier'];
break;
}
}
if ($_mobile_carrier == null) {
// PCやその他のUAでアクセスされたとき
$_mobile_carrier = CARRIER_PC;
}
return $_mobile_carrier;
}
?>
0591551
2009/12/27(日) 01:31:17ID:HTyX6aDg0592553
2009/12/27(日) 01:33:56ID:???長いコードを貼り付けていただき、ありがとうございます。
これで試してみます!
>>586
ケータイサイトなんです(泣)
0593nobodyさん
2009/12/27(日) 01:34:28ID:NIseTKcNInstallerというのがありません
どこにあるのでしょうか?
【ここにあるはずなのですが】
EXE
ZIP
EXEとZIPしかありません。
http://www.apachefriends.org/en/xampp-windows.html
0594nobodyさん
2009/12/27(日) 01:43:26ID:???0595551
2009/12/27(日) 01:45:37ID:HTyX6aDg0596553
2009/12/27(日) 01:47:52ID:???何回もすみません。
・・・
array(
'regexp' => '!^MOTEMULATOR!',
'carrier' => CARRIER_SOFTBANK,
),
); ←この行でエラーになってしまいます。
・・・
エラー:Parse error: syntax error, unexpected ';', expecting ')'
括弧の過不足など確認してみましたが、コードが複雑すぎて手に負えませんでした。
どのようなエラーでしょうか。。
■ このスレッドは過去ログ倉庫に格納されています