トップページphp
1001コメント321KB

【PHP】下らねぇ質問はID出して書き込みやがれ 113

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2011/11/29(火) 19:55:27.17ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 112
http://hibari.2ch.net/test/read.cgi/php/1320005469/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0302nobodyさん2011/12/12(月) 06:44:18.12ID:???
ms_strlen
0303nobodyさん2011/12/12(月) 07:04:30.12ID:M66zaH+0
俺のやり方が悪いのか、そもそも出来ないことをやろうとしてるのか、どっちかわからない、というのがつらいです〜
0304nobodyさん2011/12/12(月) 07:36:00.80ID:???
>>300
可能
0305nobodyさん2011/12/12(月) 10:48:58.06ID:NA15lax7
XPにapacheとPHPの安定最新版を入れたのですがPDO driversがno valueになってしまい
sqliteが使えません。これはどうしてでしょうか?

[PHP_PDO_SQLITE]
extension=php_pdo_sqlite.dll
03063052011/12/12(月) 11:39:02.23ID:???
自己解決

自分がしょぼいプログラマだったらどんな処理をするか考えて対処したら動くようになったw
03073052011/12/12(月) 14:10:47.40ID:???
おれも自己解決したわ
0308nobodyさん2011/12/12(月) 17:06:36.09ID:15hpQrXG
質問です
PHP5.3.8の環境で、某ライブラリを利用していたらE_DEPRECATEDという見慣れないエラーが出力されました
それで、ググったら
http://php.net/manual/ja/migration53.deprecated.php「PHP 5.3.x で推奨されない機能」というページを見つけ
そこに以下のように書いてありました
推奨されない機能
 new の返り値を参照で代入すること
 呼び出し時の参照渡し

ライブラリのエラー対象行には
$obj = & new $class_name($param);
と書いてあります
これがまさに推奨されない機能にあたるってことでしょうか。どちらかに該当したのでしょうか。別の問題でしょうか?
「new の返り値を参照で代入すること/呼び出し時の参照渡し」の両方とも具体的にどういうのかわかりません
具体的にどういうものなのか、すみませんが教えてください
0309nobodyさん2011/12/12(月) 17:31:48.02ID:???
= &
これは参照で代入してる。

なので、
> $obj = & new $class_name($param);
これは、newの返り値を参照で代入してる。
03103082011/12/12(月) 17:34:33.61ID:???
>>309
ありがとうございました
自分はこれ使ったことなかったんで今まで無縁だったんですね
効果など調べてみます、ありがとう
0311nobodyさん2011/12/12(月) 21:05:50.74ID:M66zaH+0
<?php
$url="http://park16.wakwak.com/~html-css/hp_koza/lv_3.html";
$nikki = file_get_contents($url);
preg_match('/script(.+)CSS/', $nikki, $matches);
print_r($matches);

↑だと、同一行内なので文字列を拾えるのですが、
↓のように、改行を挟むと文字列を拾えません。 改行があっても文字列が拾えるようにするにはどうすればいいでしょうか?

<?php
$url="http://park16.wakwak.com/~html-css/hp_koza/lv_3.html";
$nikki = file_get_contents($url);
preg_match('/script(.+)keywords/', $nikki, $matches);
print_r($matches);
0312nobodyさん2011/12/12(月) 21:19:07.36ID:???
http://www.php.net/manual/ja/reference.pcre.pattern.modifiers.php
0313nobodyさん2011/12/12(月) 21:48:07.51ID:M66zaH+0
>>312
おー、ありがとうございます。よくわからないけど、適当にsを付けたら改行を挟んで拾えるようになりました。
ありがとうございました。
0314nobodyさん2011/12/12(月) 22:03:56.84ID:1pnkY9E6
みなさん、PHPでのHTMLのパーサーってどんなの使ってます?
利用したいんですが、オススメ等ありましたら、宜しくおねがいします。
0315nobodyさん2011/12/12(月) 22:27:59.81ID:???
http://www.php.net/manual/ja/book.dom.php
0316nobodyさん2011/12/12(月) 23:11:06.87ID:v66Vpq3K

$rss = simplexml_load_file( "http://blog.livedoor.jp/dqnplus/index.rdf" );
print_r( $rss->xpath( "//title" ) );
結果は空の配列になのですが、これは何を間違っていますか?

rss は
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel rdf:about="http://blog.livedoor.jp/dqnplus/">
<title>痛いニュース(ノ∀`)</title>

のようになっているので title 要素がないわけではありません。
0317nobodyさん2011/12/12(月) 23:14:07.14ID:???
まずXMLがどういうものか理解した方が良いかも
0318nobodyさん2011/12/12(月) 23:35:04.86ID:???
痛いニュースw
0319nobodyさん2011/12/12(月) 23:42:34.98ID:v66Vpq3K
ちなみに
$rss->channel->title;
だと値を取得できます。
でもxpath にすると駄目なようです。

simplexml_load_file の第二引数が必要な気がしているのですが、何を入れればいいのか分からないです。
0320nobodyさん2011/12/12(月) 23:51:19.30ID:???
ほしい、近い!
$rss->channel->title;であるならばxpath()の中に何を入れますか?
0321nobodyさん2011/12/13(火) 00:21:07.48ID:l7M8JeoW
しつもんです
携帯のメールを解析/添付ファイルをアップロードなどするために便利な道具として
PearのMail_mimeDecode と Qdmail_receiverがあると思いますが、どっちがおすすめですか?
お勧めする・使ってる理由があったら教えてもらえると嬉しいです
もしくは、これ以外にも便利なツールあるでしょうか?


また、上記とは別に、
携帯メールでの日記投稿/写真アップロードなどした後(postfixからのパイプ処理で)、
そのメールのデータは不要になるので、添付ファイルごと該当ファイルを削除したいです
(メールボックスの形式はMaildirです)
どうやったらこの処理は実現できるんでしょうか?

どなたか教えてください。よろしくお願いします
0322nobodyさん2011/12/13(火) 00:47:25.54ID:p0PBCRmH
その形式はしらないけど、一通一ファイルだったらそのまま削除すれば良い。
そうでなかったら変換すれば良い。
0323nobodyさん2011/12/13(火) 00:59:11.21ID:???
>>321
それぞれ検索して何が出来るかもう一度読むといいかも。
受信メールの処理のサンプルとか含めて。
まず、メールをPOPかなんかでとりに行くのか、 パイプで処理するだけなのか。
そのとき、添付ファイルはどうやって取得するのか調べればすぐ分かるから。
それら全部はここには書ききれない。
0324nobodyさん2011/12/13(火) 01:06:48.24ID:???
>>322,323
夜中にありがとうございました
もう少し頭整理して調べてみます。それでわからなかったらまた聞かせてください
0325nobodyさん2011/12/13(火) 01:10:31.75ID:u1iPfY/A
PHPUnitがうまく動いてくれない…助けて
testHOGEメソッドが認識されなくて
LK(0 tests, 0 assersion)になる。
public function testHOGE() {
$this->assertTrue(false);
}
こんな感じだよね?
構文崩すとエラーになるのでファイル自体は認識されている模様
windows7 XAMPP2.5 PHPUnit3.5.14(xamppに最初から入っていたみたい)
03263252011/12/13(火) 01:11:36.30ID:u1iPfY/A
PHP5.3.8です
0327nobodyさん2011/12/13(火) 07:07:05.94ID:7NxNFZMg
curlでRAWデータをPOSTするにはどうしたらいいんでしょうか?

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "<xml>25kb分");

これでやるとローカルでは問題ないんですが共有サーバーだと90MBとかの異常なメモリ割り当てが発生して
エラーになってしまいます。(本来は array('key' => 'value') 形式で指定するので間違った使い方なのかも)
試しに
curl_setopt($ch, CURLOPT_POSTFIELDS, array('key' => "25kb分の文字列"));
としたところ送信はできますが、相手が要求するフォーマットがxmlでkey=value形式ではないのです。

この問題はHTTP/Request.phpのaddRawPostData()を用いて送信し解決できましたが
後学のためcurlでPOSTする方法教えてもらえないでしょうか
0328nobodyさん2011/12/13(火) 11:58:47.97ID:55RnZhjc
Windowsでlocalファイルにアクセスするときにurlエンコードすると
エンコード後のパスにアクセスしてしまいます。
サーバーはいつデコード処理をしてるんでしょうか。
Windowsではurlエンコードは使えませんか。
0329nobodyさん2011/12/13(火) 12:06:00.61ID:???
私は日本人ではないのでコードを掲載してください
03303282011/12/13(火) 12:13:37.74ID:55RnZhjc
これを実行すると、C:/アニメ.txtの中身は0なんです。後半では書き換えられないです。別パスにアクセスします。


$path="C:/アニメ.txt"; file_put_contents($path, "0");

$path="C:/" . urlencode("アニメ.txt"); file_put_contents($path, "1");

$path=urlencode("C:/アニメ.txt"); file_put_contents($path, "2");

$path= "file:///" . urlencode("C:/アニメ.txt"); file_put_contents($path, "3");

return;
0331nobodyさん2011/12/13(火) 12:48:55.35ID:???
file_put_contents(urldecode($path), "4");

とかじゃだめなんか?
0332nobodyさん2011/12/13(火) 13:29:35.03ID:???
それ一行で書いただけじゃん
0333nobodyさん2011/12/13(火) 13:41:25.56ID:???
えーと
file_put_contents はURLエンコードされたファイル名を受け付けるとか
その先にあるファイル名を扱う関数群がURLエンコードを受け付けるとか
OSがURLエンコードを受け付けるとか、どっかに書いてあったのか?
0334nobodyさん2011/12/13(火) 15:41:29.01ID:1bAeIiq3
質問させてください。centOS5.6とPHP5.3.8使ってます
特定のディレクトリにユニークな名前のファイルを作りたいと思って以下のようにしました
 $image_dir = "/var/www/user_file/";
 $path = tempnam($image_dir, '');
が、実際には/var/www/user_file/xxxxxみたいなファイルはできず、/tmp/xxxxxというファイルが代わりにできてしまいます

tempnam()の仕様を読んだところ「対象のディレクトリがないときはシステムの一時ファイル領域にファイルを作る」と
ありますが、$image_dirのディレクトリは存在しています。
で、さらに調べたら、ls -la /tmp/xxxxx の結果が 0600 nobody:nobodyになってました
(このスクリプトは携帯メールの添付ファイル保存が目的で、postfixからのパイプ処理で動いています
 また、ls -la /var/www/user_file/ の結果は 0775 apache:apacheです)


質問
・このnobodyユーザ扱いのせいで$image_dirにファイルを作れないと考えて間違いないですか?
・どうやったら、当初の目的のディレクトリ$image_dirにファイルを作れるでしょうか?
 $image_dirの権限を0777 にする以外の方法でお願いします
 たとえばtempnam()の実行時にapacheユーザとしてファイルを作れたら良いはずですが、
 そんなこと可能でしょうか
0335nobodyさん2011/12/13(火) 15:48:15.18ID:???
7x7にしないでどうやってディレクトリを作れるの?wwwwwwwwwwwwwwwww
0336nobodyさん2011/12/13(火) 15:54:29.94ID:???
suidビットつけた実行ファイル用意してそいつに作らせるとか

わかってない奴が安易にやると穴が開くからお勧めできんが

あとはディレクトリのオーナーをnobodyに
0337nobodyさん2011/12/13(火) 16:18:40.01ID:M1gnknNt
>>325
すみませんが、私にはわかりませんので、ほかの人に聞いてください
0338nobodyさん2011/12/13(火) 16:30:18.18ID:M1gnknNt
>>327
curlとPOSTでググるとよいと思います。
0339nobodyさん2011/12/13(火) 17:30:43.08ID:???
includeで指定したファイルの内容を呼び出す方法はわかったのですが
編集が楽なので1ファイルの1行ごとに内容をまとめて、そのファイルの行ごとの内容を呼び出したいです。


test.phpの156行目を出力する

このようなことは可能でしょうか?
03403392011/12/13(火) 17:31:39.90ID:TW5GIlZo
申し訳ないID表示忘れてました。
0341nobodyさん2011/12/13(火) 17:47:48.67ID:???
>>339
test.phpがテキストデータなら可能
おまえはMVCを学ぶべき段階にきていると思うよ
何かフレームワークを使って作れ
0342nobodyさん2011/12/13(火) 17:53:47.68ID:???
落ちたら落ちたで仕方ないのでは?
需要ないんだろうしさ
03433392011/12/13(火) 17:55:16.26ID:TW5GIlZo
>>341
テキストデータのtest.txtで問題ないです。
MVC、フレームワークはよくわからないので、

<?php include("test.txt"); ?>
になにか加えて簡易的にできる方法を教えてもらえれば助かります
0344nobodyさん2011/12/13(火) 18:22:25.21ID:???
>>339
改行コードで分割して、156行目のデータを出力
実行したいならeval、だけど、なんか変だと思うよそれ
0345nobodyさん2011/12/13(火) 18:38:07.02ID:XO4P9E+z
echo $name ."<br>\n";
これが正しいらしいのですが、
echo $name ."<br>";
これでもエラーになりません。
\n
これっていったい何なんでしょうか?
0346nobodyさん2011/12/13(火) 18:38:24.87ID:???
>>343
フレームワークうんぬんは無視しとけ

// メモリが問題にならないなら
$test = file('test.txt');
echo $test[155];

// 問題になるなら
$test = fopen('test.txt', 'r');
for ($i = 0; $i < 155 && fgets($test) !== false; $i++) { }
echo fgets($test);
0347nobodyさん2011/12/13(火) 18:51:31.18ID:???
>>346はダメなコード
普通はバイトで読み込む
0348nobodyさん2011/12/13(火) 18:56:01.44ID:???
そもそもそういう用途はフレームワークでモデル使うべき
0349nobodyさん2011/12/13(火) 18:57:10.47ID:???
呼び出したいって言ってるし、echoじゃなくてevalじゃないんか
どっちにしろおかしいけど
0350nobodyさん2011/12/13(火) 18:59:52.08ID:???
>>345
"\n"は改行
'\n'は文字列
0351nobodyさん2011/12/13(火) 19:06:32.10ID:???
>>345
ブラウザで、そのページのソース見てみるといい
0352nobodyさん2011/12/13(火) 19:08:32.89ID:???
Ajax使え君に正規表現使うな君、お次はフレームワーク使え君か
相変わらず芸がないな
0353nobodyさん2011/12/13(火) 19:18:45.55ID:???
php でフォームを作るとき
バリデーションやら、これでよろしいですか?画面やら
DBにインサートやら正直キレそうなんですけど
これらを、簡単に制作することはできないんですか?
03543532011/12/13(火) 19:22:20.94ID:B3orhDGR
ID出し忘れました
0355nobodyさん2011/12/13(火) 19:25:11.60ID:???
>>353
スレタイを読んでくださいね。
0356nobodyさん2011/12/13(火) 19:38:27.21ID:???
>>353
日本語でお願いします
0357nobodyさん2011/12/13(火) 19:46:52.95ID:???
HTML5
0358nobodyさん2011/12/13(火) 19:49:02.86ID:vJKh4WOZ
>>338
一応ミタんですけど>>327と同じ方法しか書いてないですよ
03593392011/12/13(火) 19:52:15.17ID:TW5GIlZo
>>341
>>344
>>346
>>346-349

レスありがとうございます。
0360nobodyさん2011/12/13(火) 20:06:35.36ID:Y6ZWV3Gc
configureでオプションつけなくても 後からphp.iniでモジュールを読み込んで利用することはできますか?
0361nobodyさん2011/12/13(火) 20:46:45.17ID:???
>>352
適材適所
0362nobodyさん2011/12/13(火) 21:39:46.88ID:???
>>352
定期的に○○君とか呼んでるお前がきめえよ
0363nobodyさん2011/12/13(火) 21:47:52.86ID:???
どっちも芸がない
どっちもきめえ
よって引き分けノーゲーム
0364nobodyさん2011/12/13(火) 22:15:19.17ID:M1gnknNt
>>353
それが簡単にできるようになったらプログラマの仕事が無くなるだろ?
0365nobodyさん2011/12/13(火) 22:39:51.64ID:???

Windowsのファイル名に使えない文字。
\/:*?"<>|

Windowsのパスに使えない文字。
*?"<>|

Windowsのパスに使える記号。
\/:!#$%&'()+,-.;=@[]^_`{}~

WindowsのAscii文字のパスにヒットする正規表現。
[0-9A-Za-z\\\/:!#\$%&'\(\)\+,\-\.;=@\[\]\^_`\{\}~]+
0366nobodyさん2011/12/13(火) 22:47:12.14ID:???
なんだその正規表現は
ユニコード表記でかけよ
0367nobodyさん2011/12/13(火) 22:51:27.80ID:???
ユニコード表記とは?
03683452011/12/13(火) 23:20:32.52ID:XO4P9E+z
>>351
本当ですね、\nがあると、ソースが改行してますw
じゃ、ソースを改行するため、クライアントさまにソースを見ていただくために、\nを入れるんですか?
0369nobodyさん2011/12/13(火) 23:27:17.92ID:???
>>367
\uxxxx-\uxxxx
0370nobodyさん2011/12/14(水) 00:12:48.87ID:hH9P1H+w
>>368
クライアントだけじゃなく自分がHTMLをチェックするときも改行があったほうが見やすいだろ?
逆に敢えて改行を入れない場合もあるから好きにすればいい
03713452011/12/14(水) 00:33:43.94ID:QUjeWNXA
>>370
なるほど、どうもです。
あと、↓の、echo $name ."<br>\n";を表示するときに、実験的に一時的に文字に赤色を付けたいのですが、
どうするの一番お手軽でしょうか?

<?php
$i = 0;
$title = "kyonun";
while( $i <= 10 ){
$count = $i;
$number = str_pad($count, 4, "0", STR_PAD_LEFT);
$name = $number . $title.".html";
echo $name ."<br>\n";
$i++;
}
?>
03723452011/12/14(水) 00:36:45.53ID:QUjeWNXA
赤色を付けたいではなく、表示文字を黒ではなく赤にしたい、です。
0373nobodyさん2011/12/14(水) 00:53:58.00ID:???
echo '<p style="red">'. $name. '</p>', PHP_EOL;
03743452011/12/14(水) 01:21:09.79ID:QUjeWNXA
>>373
すみません、↓でやってみたけど黒いまんまです。

<?php
$i = 0; //ファイルの連番用
$title = "kyonun";
while( $i <= 10 ){
$count = $i;
$number = str_pad($count, 4, "0", STR_PAD_LEFT);
$name = $number . $title.".html";
// echo $name ."<br>\n";
$i++;
echo '<p style="red">'. $name. '</p>', PHP_EOL;

}
?>
0375nobodyさん2011/12/14(水) 02:35:17.37ID:???
日本語を正しく分割できるmb_explodeができた。


print_r( explode( "\\" , "すう\\あすあxソ\\ソ\\ソソxx") );
print_r( mb_explode( "\\" , "すう\\あすあxソ\\ソ\\ソソxx") );
return;


function mb_explode( $delimiter , $string , $encode=NULL ) {
if(!is_array($delimiter)) $delimiter = array($delimiter);
if($encode===NULL) $encode = mb_detect_encoding( $string , "ASCII, UTF-8, SJIS-win, eucJP-win, JIS, UTF-16LE, UTF-16BE", TRUE);
$array = array( mb_convert_encoding( $string , "UTF-16LE", $encode ) );
foreach( $delimiter as $delim ) {
$delim = mb_convert_encoding( $delim , "UTF-16LE", $encode );
for( $n=0; $n<count($array); $n++ ) {
$subarr = explode( $delim , $array[$n] );
if(count($subarr)===1) continue;
array_splice($array, $n, 1, $subarr );
$n+=count($subarr)-1; }}
foreach( $array as &$val ) $val = mb_convert_encoding( $val , $encode, "UTF-16LE");
return $array; }
0376nobodyさん2011/12/14(水) 02:38:30.19ID:???
次はもっと計算量を考えましょうね
0377nobodyさん2011/12/14(水) 04:29:37.65ID:hH9P1H+w
>>374
<p style="red"> じゃなくて <p style="color:red"> だな。
>>373も間違ってるが、あんたもPHPだけじゃなくCSSも勉強したほうがいい。
03783452011/12/14(水) 05:13:46.41ID:QUjeWNXA
>>377
おお、ありがとうございます。うまく行きました。
しかし、これって改行が2つも入るんですよね。1つにならないでしょうか?
あと、あと、最後のPHP_EOLって何でしょうか? デリっても表示は変わりません。
echo '<p style="color:red">'. $name. '</p>', PHP_EOL;
0379nobodyさん2011/12/14(水) 05:40:31.71ID:???
改行を意味する定数。ようは\nと一緒。
だが改行コードはOSによって違うので、
OSによって適切な改行コードにしてくれる。
ぶっちゃけ\nでいい
0380nobodyさん2011/12/14(水) 05:49:55.87ID:???
>>378
end of line
03813452011/12/14(水) 05:57:46.02ID:QUjeWNXA
>>379
どうもです。
つーか、エディターはWZ6を使ってるんですけど、
文字コードをシフトJISからutf-8に変えて無意識で保存して、10分ぐらい苦労したコードを飛ばしちゃいましたw
文字コードは何がなんだかさっぱりわからんのですがどうしたらいいんですかね?
htmlファイルを自動で生成するphpを作ってうまく動いたんだけど、
ファイル名の日本語部分がめちゃくちゃ文字化けするから、
文字コードをシフトJISからutf-8に変えてみたんですよねw
そしたらソースがメチャクチャになっちゃったw
文字コードにはどういう心がけで接したらいいのかまったくわからないです〜
03823452011/12/14(水) 06:10:58.72ID:QUjeWNXA
ネット上から日本語文字列をゲットして、それをIEに表示させると文字化けしないのに、
それを、htmlファイルの名前にしてhtmlファイルを出力すると名前が文字化けするんですよね。
03833452011/12/14(水) 06:29:46.30ID:QUjeWNXA
そもそも、WZ6の使い方からしてあまりよくわかんないんですw
03843452011/12/14(水) 06:32:49.69ID:QUjeWNXA
つーか、phpはファイル名が日本語.phpだと使えないじゃないですか、それと同じ理屈なのかな?
0385nobodyさん2011/12/14(水) 07:09:32.44ID:???
一人暴走するのは迷惑なんで
ちょっとは自分で調べて頑張れよ
0386nobodyさん2011/12/14(水) 08:35:53.33ID:hH9P1H+w
>>381
utf-8で保存したならutf-8で開けば問題ないはず。
ファイル名を管理するのはOSのファイルシステムなのでファイル内の文字コードとは関係ない。
OSやウェブサーバー等の環境によっては日本語ファイル名はトラブルの原因になるので
詳しいことがわからないなら日本語ファイル名は避けるのが基本。
WZの使い方は自分で調べること。
0387nobodyさん2011/12/14(水) 10:47:14.85ID:???
このスレ以前の問題の自分で勉強しないksがいるようだな
0388nobodyさん2011/12/14(水) 12:26:31.39ID:???
つーかw
0389nobodyさん2011/12/14(水) 17:00:13.28ID:36qjf2FU
すみません。質問させてください。

if ($result = $mysqli->query("SELECT * FROM tbUser WHERE seq = ".$_SESSION['seq'])) {
if ($result->num_rows > 0) {
$row = $result->fetch_array(MYSQLI_ASSOC);
$result->close();
$decoded = json_decode($row['profile']);

$smarty->assign('gender', $decoded->gender);
$smarty->assign('locale', $decoded->locale);
$smarty->assign('img', $decoded->img);
$smarty->assign('bio', $decoded->bio);

こんな感じの書き方で(途中ですが)apachiのエラーログに下のようなエラーが出ます
Undefined property: stdClass::$gender

どのように修正したら良いのでしょうか?
よろしくお願いします。
0390nobodyさん2011/12/14(水) 17:04:24.51ID:???
property_exists
0391nobodyさん2011/12/14(水) 17:13:59.09ID:???
>>389
queryは使うな市ね
0392nobodyさん2011/12/14(水) 17:48:19.02ID:???
>>390ありがとうございます。
if(property_exists('decoded','gender')){
$smarty->assign('gender', $decoded->gender);
}
issetと同じように上のようにしたらその部分を読まなくなってしましました。
property_existsの引数の書き方が悪いのでしょうか?
0393nobodyさん2011/12/14(水) 17:51:53.33ID:???
>>392

>>1
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
03943892011/12/14(水) 18:10:43.40ID:36qjf2FU
すみません。
392は自分です。よろしくお願いします。
03953452011/12/14(水) 18:55:32.05ID:QUjeWNXA
自分は345ですが、
<?php
$name = "2ちゃんねらー.html"; // ファイル名を作る
echo '<p style="color:green">'. $name. '</p>', PHP_EOL; // ファイル名表示
$fp = fopen($name,"a"); // ファイルを作る。
fclose ($fp); // ソケットを閉じる
?>
を実行すると、
鐚???<????????????.html、が表示され、
・偵■繧・s縺ュ繧峨・.html、というファイルが生成されます。
日本語でも文字化けさせないソースを作るにはどうしたらいいのでしょうか?
よろしくお願いします。
環境は、winXP、IE8.06001、PHP Version 5.3.8です。
03963452011/12/14(水) 18:59:13.15ID:QUjeWNXA
あと、
MySQL
サーバのバージョン: 5.5.16
Web サーバ
Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1
phpMyAdmin
バージョン情報: 3.4.5
です。
03973452011/12/14(水) 19:05:18.41ID:QUjeWNXA
>>386
ありがとうございます。

あと、
info.phpに
mbstring
Multibyte Support enabled
Multibyte string engine libmbfl
HTTP input encoding translation disabled
とあるのですが、これと文字化けは関係ありますか?
0398nobodyさん2011/12/14(水) 19:08:52.76ID:???
Windowsのファイル名はShift_JISで扱わないといけない
mb_convert_encoding
0399nobodyさん2011/12/14(水) 19:29:07.35ID:???
最近のは、内部でエスケープしちゃってるので、ダメ文字入りのファイルでどうやっても困ることがあったはず。
使わない方がいいんだが。
04003452011/12/14(水) 19:59:10.69ID:QUjeWNXA
>>398-399
レスありがとうございます。
つか、どうもIE8のソースの文字コードはECUです。
で、ECUの文字列をコピペして、UTF-8のファイルに貼り付けると、どうなっちゃうんですかね?w
04013452011/12/14(水) 20:02:35.46ID:QUjeWNXA
あと、>>395のソースは、>>398さんの言われるように、Shift_JISで保存したら、
表示も、ファイルも日本語で作れました。
■ このスレッドは過去ログ倉庫に格納されています