トップページ⇒php
986コメント361KB

【PHP】質問スレッドpart27【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん05/03/03 22:41:23ID:???
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
 http://www.php.net/
■日本 PHP ユーザ会
 http://www.php.gr.jp/
■PHP マニュアル
 http://www.php.net/manual/ja/
■PEAR マニュアル
 http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-10辺り
0415nobodyさん皇紀2665/04/01(金) 01:55:33ID:???
有難うございます。
何ページですか。
0416nobodyさん皇紀2665/04/01(金) 01:59:08ID:6CcmQp6c
>>415 おいおいそれはたよりすぎ。
www.php.net いって、sessionで検索。
あとはまかせた。

session はある程度の知識がないうちに公開しちゃうと、
いろいろとセキュリティーホールになるので注意
0417nobodyさん皇紀2665/04/01(金) 02:02:03ID:???
SingleHTML版のマニュアルを落としてきて、1ページ目を読む。
0418nobodyさん皇紀2665/04/01(金) 02:02:12ID:???
おいおい
エイプリルフールですyo!
0419nobodyさん皇紀2665/04/01(金) 02:08:52ID:???
なるほど
0420nobodyさん皇紀2665/04/01(金) 08:16:41ID:???
おまいら、PHP 4.3.11と5.0.4がリリースされましたよ。
昨夜PHP4も5もコンパイルしたばっかりだというのに...orz
0421nobodyさん皇紀2665/04/01(金) 08:38:19ID:???
>>420
うそと思いながらも確認してしまった俺
0422nobodyさん皇紀2665/04/01(金) 11:08:27ID:???
だぁ〜っ、ネタかよっ!釣られた!
>>412
error_reporting
0423nobodyさん皇紀2665/04/01(金) 11:16:34ID:???
php4は昨年と変わらず(ナディア)、php5はウサギ(?)だった
0424nobodyさん皇紀2665/04/01(金) 12:21:42ID:???
たぶん>>420はここのネタにつられたんではないかと。
ttp://www.sitepoint.com/blog-post-view.php?id=248887
0425421皇紀2665/04/01(金) 12:41:40ID:???
今見たら本当にリリースされてるし
リリースの日付は3/31だからエイプリルフールじゃないよな
0426nobodyさん皇紀2665/04/01(金) 19:11:43ID:???
PHPのログが犬になってるのはイースターエッグだな
0427nobodyさん皇紀2665/04/01(金) 19:12:12ID:???
ログじゃねー ロゴだ
phpinfo() や公式に確認可
0428nobodyさん皇紀2665/04/02(土) 01:44:36ID:???
ショッピングカートのセッションについて教えてください。
2つのブラウザで同時にアクセスすると同一セッションになりますが、
1つ目のブラウザが決済のページに入ったら2つ目のブラウザは
決済ページを表示できないようにしたいです。
0429nobodyさん皇紀2665/04/02(土) 02:42:07ID:???
>>428
新しいセッション開始すれば?
0430nobodyさん2005/04/02(土) 05:01:43ID:4/Eqlz9k
PHP5はそろそろ乗り換えてもいい感じですかね。
0431nobodyさん2005/04/02(土) 05:02:31ID:???
PHP6になるまで待つのだ
0432nobodyさん2005/04/02(土) 11:45:09ID:???
5.0.4揚げ
0433nobodyさん2005/04/02(土) 18:06:21ID:55/k15cN
PHPサイトを立てようと思っているのですが、負荷テストを行いたいです。

知り合いにそういったツールがあると聞いたのですが、どんなものがあるのでしょうか?
0434nobodyさん2005/04/02(土) 18:37:44ID:???
2ちゃんで晒す
0435nobodyさん2005/04/02(土) 18:40:02ID:???
>>433
ab
0436nobodyさん2005/04/02(土) 20:25:51ID:A7D+JrLe
phpでパスワード付きzipを作成するコマンドを発行したいのですがどうしたらよいのでしょうか。 
0437nobodyさん2005/04/02(土) 23:15:02ID:???
>>436
PHPからコマンド発行するには
systemかexec関数を使えば良いよ
0438nobodyさん2005/04/02(土) 23:20:20ID:A7D+JrLe
パスワードを入力する対話型の部分はどうしたらよいのでしょう?
0439nobodyさん2005/04/02(土) 23:25:29ID:???
>>438
作ればいいんじゃない?
0440nobodyさん2005/04/02(土) 23:39:27ID:???
>>438

ここにLinuxでパスワード付きのzipファイル生成する話題が出てるんで
このコマンドをphpからsystem関数で発行すれば良いかも

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19632&forum=10&3
0441nobodyさん2005/04/03(日) 09:11:32ID:rv9qNWYe
単にファイルをダウンロードさせたいだけなのですが、
どうしてもファイルの中身がブラウザに表示されてしまいます。
(以下が、スクリプトまるごと全部です。)
//===========================================================
$sFilename = "seminar.csv";

$sUnixPathFile = $_SERVER["DOCUMENT_ROOT"] . "../data/" . "seminar_request.csv";
$fh = fopen ($sUnixPathFile, "r");
flock($fh,LOCK_EX) or die();
$buffer = fread ($fh, filesize ($sUnixPathFile));
flock($fh,LOCK_UN) or die();
fclose ($fh);

header("Content-disposition: attachment; filename={$sFilename}");
//dummyはIE対策
header("Content-type: application/octet-stream-dummy; name={$sFilename}");
print $buffer;
exit;
//===========================================================
どうすればダウンロードできるのでしょうか?
お助けいただければ幸いです。よろしくお願いします。
0442nobodyさん2005/04/03(日) 10:23:20ID:???
4.3.11 入れたのに phpinfo が 4.3.10 だ。なぜだ。
0443nobodyさん2005/04/03(日) 10:44:02ID:???
>>442
インストールミスか、再起動してないとかじゃないの?
ソースはきちんと4.3.11になってたよ。
0444nobodyさん2005/04/03(日) 13:35:14ID:???
>>433
OSSの性能・信頼性評価/障害解析ツール開発
ttp://www.ipa.go.jp/software/open/forum/DevInfraWG.html
0445nobodyさん2005/04/03(日) 13:42:01ID:QiTsRZ7F
当方PHPを学んでみようと思ってる者です。
みなさんはどのようにしてPHPを覚えられましたか?
本でしょうか、それともネット上で?
0446nobodyさん2005/04/03(日) 13:54:12ID:???
>>445
マニュアルを読めば十分。
マニュアルはネットで配布されている。

関数が豊富に用意されているので、
まったくのド素人でも、覚えることそんなに無いかと思う。

とは言っても、アルゴリズムの一つや二つ知ってるだけでも、
かなり違ってくると思うので、本を買うのも、また良し。
(本に書いてあるかどうかは不明)
0447nobodyさん2005/04/03(日) 14:00:57ID:QiTsRZ7F
即時の返答ありがとうございます!
マニュアルってこれのことですね。
ttp://php.s3.to/man/

早速トライしてみます。
0448nobodyさん2005/04/03(日) 14:47:13ID:IkqaEHUC
当方MacOSX、PHP5.0.4、POSTFIX2.?を使ってプログラムを組んでいます。
メールアドレスを登録してくれた人に、返信メールを送るシステムを作ったのですが、
携帯に返信できません。(実験したdomainは@t.vodafone.ne.jp)
Mb_Send_Mail($address, $subject, $text, $header)
で、$headerには自分のドメイン(DDNSで運営している)を入力しているのですが。

知ってる方いらっしゃいませんか?
04494412005/04/03(日) 16:00:01ID:rv9qNWYe
>>441 どなたかわからないでしょうか?
0450nobodyさん2005/04/03(日) 17:24:55ID:???
>>449
俺はPEARのHTTP_Downloadを使ってる。

$dl = &new HTTP_Download();
$dl->setData($fileData);
$dl->setLastModified(time());
$dl->setContentType("application/x-octetstream");
$dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, $fileName);
$dl->send();

$fileData:ファイルの中身
$fileName:ファイル名
こんな感じでo.k.
0451nobodyさん2005/04/03(日) 18:06:18ID:???
全角カタカナと全角ナカグロ(・)と全角ハイフン(−)のみで構成されている文字列か否かは、
以下の正規表現ではだめなのでしょうか?
どうしてもfalseになってしまいます・・・

if (preg_match("/^[ア-ン・−]+$/",$aParam["company_name_kana"]))

お助け願えれば幸いです。
0452nobodyさん2005/04/03(日) 18:42:28ID:???
マルチバイト文字は
mb_eregiかmb_eregを使って正規表現できる
0453nobodyさん2005/04/03(日) 18:44:05ID:???
>>451
カタカナが違うっぽい。
chr()とord()を使って文字コードについて考えるよろし。
0454nobodyさん2005/04/03(日) 18:44:49ID:???
preg_*だとUTF8使えば可能
04554512005/04/03(日) 19:45:30ID:rv9qNWYe
>>452さん
んー、PHPのサイトみたらnmb_eregiかmb_eregは、まだ実験的ってあるので、避けたいところでして・・・

>>453さん
んー、しらべてみたところ、
if (preg_match("/^[ァ-ヶ・−]+$/"/",$aParam["company_name_kana"]))
かな、と思ったのですが、実行してみたら、だめでした・・・_| ̄|○

>>454さん
「preg_*だとUTF8使えば可能」ってのは、UTF8を使わないとダメってことでしょか?
あるいはEUCでも可能な方法はあるのでしょうか・・・

恐縮ですが、よろしくお願いします。
0456nobodyさん2005/04/03(日) 21:22:06ID:???
>>442
Windows版PHPでphp-ts.dll他を入れ替えてないというオチでは?

>>447
検索だとそのサイトがどうも上位に来るようなんだけど、マニュアルが古いから
ちゃんと本家のマニュアルをベースにした方が良いよ。
あと手元にアーカイブをコピーしてそっち見るとか。
http://jp.php.net/manual/ja/
0457nobodyさん2005/04/03(日) 21:47:00ID:wg0bg1Ve
hogehoge
2ch

という2つのフォルダが同じディレクトリ内にあるとして、
2chのindex.phpからhogehogeのindex.phpを指定する場合

<?php chdir("../hogehoge/"); include("index.php"); ?>

と記述するとエラーが出てしまうんですが、どこが間違っていますか?
0458nobodyさん2005/04/03(日) 21:55:15ID:???
なぜ
<? include("../hogehoge/index.php") ?>
と書かないの?
0459nobodyさん2005/04/03(日) 22:02:23ID:???
>>455
マニュアルの記述は古いので現在は実験的ステータスってのは英語版のマニュアルには無い。

preg_*はUTF8でないと正確に日本語を扱うことは出来ない。
04604572005/04/03(日) 22:08:12ID:???
>>458
以前その書き方をした時にエラーが出て、457のような書き方を知ったんですよ。。
でも今それを試してみたらできました。
よくわかんないけど解決しました。
ありがとうございました。
0461nobodyさん2005/04/03(日) 22:39:13ID:???
>>460
その環境のセーフモードに関わるあたりの設定か、
その当時の(PHPのセーフモード絡み)バグかと思われ。
# セーフモード絡みのバグは結構多い。
0462nobodyさん2005/04/04(月) 00:28:53ID:/X5zJ+6W
ITmedia エンタープライズ:PHP、DoS攻撃の脆弱性に対処
http://www.itmedia.co.jp/enterprise/articles/0504/03/news010.html
0463nobodyさん2005/04/04(月) 00:53:24ID:???
ob_start()っていみあんの?
マニュアル読んだけどポンとこないいだなぁ
どんなとき使うの?
0464nobodyさん2005/04/04(月) 01:25:35ID:???
>>463
ob_start();
curl_exec($ch);
$str = ob_get_contents();
ob_end_clean();
0465nobodyさん2005/04/04(月) 02:28:34ID:???
バッファリングする必要はある?
0466nobodyさん2005/04/04(月) 02:51:56ID:???
>>465
curl_exec()はphpinfo()等といっしょで、実行すると(通常は)標準出力に垂れ流しちゃうから、
こうやってバッファリングでキャッチするしか、その出力を変数として取得できないんよ。
0467nobodyさん2005/04/04(月) 04:10:19ID:???
curlって普段使ってないんですけど、あまり関係ないかなぁ
こんな使い方で着ますか?
header("location...."の出力の前になにか出力されていると
エラーになるけどob_start()使えば大丈夫?
0468nobodyさん2005/04/04(月) 04:21:27ID:???
>>467
header前に出力してしまうような仕様を見直したほうがいいぞ。
不意に出力してしまうのを回避ってなら、ob_start()前に出力してしまう可能性もあるわけだし。

あと、某スレへの誤爆してしまったものだがw

> 881 名前:nobodyさん[] 投稿日:2005/04/04(月) 03:08:04 ID:Es2o76gF
> PEARのエラーハンドリングもob_start()でphpが出す
> エラーメッセージをそのまま出力しないように取り込んでるね。
0469nobodyさん2005/04/04(月) 09:34:12ID:???
PEARのソース(HTTP.phpとかHTTP/Download.php)を読んでいて、
$_SERVER['REMOTE_HOST']
$_SERVER['PATH_INFO']
$_SERVER['CONTENT_TYPE']
$_SERVER['HTTPS']
$_SERVER['HTTP_RANGE']
$_SERVER['HTTP_IF_NONE_MATCH']
$_SERVER['HTTP_IF_MATCH']
$_SERVER['HTTP_IF_UNMODIFIED_SINCE']
$_SERVER['HTTP_IF_MODIFIED_SINCE']
の様な記述を見たのですが、cliでもApacheモジュールでも値が取得できません。
これらの値はどういうときにセットされるんですかね?
0470nobodyさん2005/04/04(月) 09:59:45ID:???
>>469
CLIは無理だろ。サーバモジュール版で取れない理由は判らんが、
サーバ側がセットしてないからかな。mod_envを入れてないとか。
04714472005/04/04(月) 10:43:04ID:???
>>456
わざわざありがとうございます!ここの板の方は親切な方ばかりで。
本家のマニュアルを参考にしてPHPを使いこなせるように精進します。
0472nobodyさん2005/04/04(月) 12:54:34ID:???
Spreadsheet_Excel_Readerで日本語を表示させられるのでしょうか?
0473nobodyさん2005/04/04(月) 15:50:32ID:8msdlW8Q
linux fedora core2にphp4がインストールされているのですが、これをphp5にバージョンアップするにはどのようにしたらよいのですか?
04744692005/04/04(月) 16:14:02ID:???
>>470
> >>469
> CLIは無理だろ。
いや分かってますが、一応お約束ということで確認しました。

Apacheのhttpd.confではmod_envが有効になっていますが、
$_SERVER['HTTPS']を表示させようとするとUndefined indexが
返ってくるので有効になってないということですかね。



0475nobodyさん2005/04/04(月) 16:21:11ID:???
>>469
$_SERVER['REMOTE_HOST']
Apache の設定がHostnameLookups Offになってるとセットされない
$_SERVER['PATH_INFO']
URLにPath infoが含まれないとセットされない
$_SERVER['CONTENT_TYPE']
GETの場合はセットされない
$_SERVER['HTTPS']
httpsじゃないとセットされない
$_SERVER['HTTP_RANGE']
$_SERVER['HTTP_IF_NONE_MATCH']
$_SERVER['HTTP_IF_MATCH']
$_SERVER['HTTP_IF_UNMODIFIED_SINCE']
$_SERVER['HTTP_IF_MODIFIED_SINCE']
ユーザーエージェントが送らないとセットされない
0476nobodyさん2005/04/04(月) 16:22:11ID:???
$_SERVER['HTTPS']なんてあったっけ、、、
あったとしてもSSL関連のっぽいし
print_r($_SERVER)してみたら
04774692005/04/04(月) 17:01:34ID:???
>>475
おお、ありがとうございます。
まさに解説のとおりでした。

>>476
HTTP.phpでは、
$protocol = isset($_SERVER['HTTPS']) ? 'https' : 'http';
みたいな感じで使ってました。


何がしたかったのかというと、$_SERVER と getenv が等価なのかを
知りたかったのです。
完全に等価なら getenv に書き換えて、php.iniの
variables_order = "EGPCS" を "GPC" にしてメモリを節約しようかと。

foreach ($_SERVER as $key => $value) {
echo $key .":". $_SERVER[$key] ."=>". getenv($key) ."</ br>";
}
でチェックすると、getenv には 'PHP_SELF' はセットされていないようですね。
PATH_INFO は使わないことにして、getenv('SCRIPT_NAME') で代替するかな。
0478nobodyさん2005/04/04(月) 17:42:57ID:???
質問です

例えばtest.phpがあったとして
そのソースの中にtest.phpを読み込む記述をしたら無限ループしちゃうの?
0479nobodyさん2005/04/04(月) 17:46:46ID:???
やってみれば?
0480nobodyさん2005/04/04(月) 18:17:36ID:???
>>478
怖いです…
0481nobodyさん2005/04/04(月) 18:18:40ID:???
>>478じゃなく>>479だった
レンタル鯖なんでダウンとかしたら怖いのです
0482nobodyさん2005/04/04(月) 18:29:31ID:???
>>481
2chに書き込んでいるマシンにPHPを入れて試せばいいやん。
別にApache入れたりせんでもコマンドラインで試せるでしょ。
0483nobodyさん2005/04/04(月) 19:41:50ID:???
無限ループになる可能性があるならinclude_onceを使うのが正しい方法
0484nobodyさん2005/04/04(月) 20:01:18ID:???
無限ループを起こすと PHP がスクリプトに強制停止命令を出してると思った
0485nobodyさん2005/04/04(月) 21:33:40ID:???
>>484
そんなことは無い。

xdebugかましてたり、php.iniで実行時間の上限を設定していたら別だが。
0486nobodyさん2005/04/05(火) 00:26:42ID:???
質問です。
以下のxmlスクリプトをsimpleXML関数で読み込み、
<root>
 <p>ああ</p>
 <p>いい</p>
 <comment>アア</comment>
 <p>うう</p>
 <comment>イイ</comment>
</root>
これを上から順に、以下のように出力したいのですが、どうすればいいのでしょうか?
ああ
いい
アア
うう
イイ
0487nobodyさん2005/04/05(火) 09:06:53ID:???
filesize()やgetimagesize()を使うときに
fsockopen()みたいにHTTPヘッダを自分で用意することはできないのでしょうか?
もしくはfsockopen()でソケット接続ときに上の関数で取得する方法

またfilesize()を使ってからgetimagesize()使うと
URLに2回アクセスすることになるのですが、
1回のアクセスで同時に取得することは可能ですか?

分かる方がいたら教えてください。
0488nobodyさん2005/04/05(火) 09:29:10ID:???
>>487
リモートのファイルを取得してローカルの/tmpに保存。
そのファイルに対して各関数を適用すればいいんじゃないの?
httpのheadリクエストでも取得できる場合もあるけども。
0489U N S E T( ) ◆g9jPPQs3mo 2005/04/05(火) 10:07:51ID:???
>>478
俺はチャレンジャーなのでやってみた。
winxpsp2

コードは下記
<?php
include "incl.php";
?>
結果はページは表示されません、っとでます。
ちょっと期待してたのに詰まんないので、下記もやってみる。
<?php
echo "a";
include "incl.php";
?>
一緒だったorz
0490nobodyさん2005/04/05(火) 10:44:32ID:???
500? 403?
0491nobodyさん2005/04/05(火) 11:21:06ID:???
Perlのuse strictに相当するものってないんでしょうか?
0492nobodyさん2005/04/05(火) 11:22:29ID:???
>>489
実は俺もやった
Windows のApache2.0 moduleで
Parent: child process exited with status 3221225477 -- Restarting.
>>490
Apacheの子プロセスがこけたので何も帰ってきません
0493nobodyさん2005/04/05(火) 13:16:47ID:FyaY+6Ab
textareaからPOSTで渡ってきた値にnl2brをかけて(エスケープ処理は略)
改行コードだけを取り除き、ファイルに保存しようとしているのだが

$str = nl2br(trim($_POST['str']));
$str = str_replace("\n", "", $str);
$str = str_replace("\r\n", "", $str);
$str = str_replace("\r", "", $str);

改行が取れない、nl2brを行わなければ問題なく改行コードを
除去できるのだが、何故?
0494nobodyさん2005/04/05(火) 13:25:15ID:???
>>491
ないけど、エラーレポート最大に上げれば結構厳密なチェックが出来るよ
0495nobodyさん2005/04/05(火) 13:48:01ID:???
cronから-fで起動した時だけに

PHP Warning: Unknown(): Unable to load dynamic library

のエラーが出ます。普通に起動した場合はちゃんと動きます。
どんな理由が考えられるでしょうか。どなたかお助けを・・・。
0496nobodyさん2005/04/05(火) 13:53:27ID:???
>>493
nl2brの使い方を間違ってるから。
0497nobodyさん2005/04/05(火) 13:54:19ID:???
>>495
環境変数の関係でphp.iniを指定してやらなならんのですバイ。
0498nobodyさん2005/04/05(火) 14:02:24ID:???
>>493
自分の環境ではちゃんと削除されました。
WinXP PHP5.0.4
Linux PHP4.3.10
0499nobodyさん2005/04/05(火) 14:22:34ID:???
>>488
返信ありがとうございます。
そちらのほうが効率も良さそうなので早速使ってみました。

調子に乗って悪いのですが
受け取るデータの量を制限したいので↓みたいにして動作はするのですが
while(!feof($fp)){
  $data .= fgets($fp, 128);
  if(strlen($data) > 1048576){
    fclose($fp);
    echo "IMB超えちゃった";
    break;
    die;
  }
}
ループ毎にstrlenで数えて判定をだすというのは効率が悪い気がするので
うまくチェックする方法はないですか?
05004992005/04/05(火) 14:23:59ID:???
dieするならbreakはいらないか
0501nobodyさん2005/04/05(火) 15:24:53ID:???
>>497
ありがとうございます。
php自体は動くようになったのですが、今度はpostgresが動かない。
configureの確認かな・・・。
0502nobodyさん2005/04/05(火) 15:54:20ID:???
>>501
postgres単独では動作してるの?

PHP + PostgreSQL
http://pc8.2ch.net/test/read.cgi/php/983128806/
こんなのもあるよ。
0503nobodyさん2005/04/05(火) 16:42:18ID:???
くだ質スレ向きかもしれないけど・・・
phpinfo()で表示される
Thread Safety  disabled
ってPHPのこといってるんでしょうか。
0504nobodyさん2005/04/05(火) 17:05:06ID:???
>>503
Yes.

Zend Thread Safety(ZTS)
--enable-maintainer-zts
--enable-roxen-zts
05054912005/04/05(火) 19:04:41ID:???
>>494
どーもです。
<?php
ini_set('error_reporting', E_NOTICE);
echo $a[0];
echo $b;
?>
としたら
Warning: Undefined variable: a in /home/miyakegumi/public_html/wat/php/test.php on line 3
Warning: Undefined variable: b in /home/miyakegumi/public_html/wat/php/test.php on line 4
と吐いてくれました。
代入は検出できませんが、これだけでもあると助かります。
0506nobodyさん2005/04/06(水) 07:26:06ID:nH8oVa9B
php5をFedora core2にインストールしたのですが、apache2から使えるようにするにはどうしたらよいのでしょうか?
0507nobodyさん2005/04/06(水) 07:35:25ID:???
>>506
>>4
0508nobodyさん2005/04/06(水) 07:53:21ID:???
>>504
ありがとう。
このオプションを付けてメイクしApache2と組み合わせれば、スレッドセーフな
PHPが利用できるということですか?
今はApache 1.3の環境しかないので週末にでも試してみます。
0509nobodyさん2005/04/06(水) 08:36:34ID:???
>>493
最初に\n消しちゃ駄目だ
0510nobodyさん2005/04/06(水) 10:46:50ID:gc7DD2Cw
文字列になったXMLのパースをさせたいのですが、例えば
'<mojiretsu>moji"retsu</mojiretsu>'
みたいなかんじに、その文字列内に実体参照が入っています。
これを xml_parse_into_struct() に喰わせてやると、
実体参照がことごとく消えてしまうのですが、
これはそういう仕様なんでしょうか?
'MOJIRETSU' => 'moji"retsu'
みたいに取り出すにはどうすればいいでしょうか?
PHPは5.0.3を使っています。
0511nobodyさん2005/04/06(水) 10:57:56ID:???
↑の2行目の " は &quot; のことです。
'<mojiretsu>moji&quot;retsu</mojiretsu>'
0512nobodyさん2005/04/06(水) 11:18:54ID:???
>>510
><mojiretsu>moji"retsu</mojiretsu>
そもそも、これはXMLの仕様で許されるのか?
CDATAセクションでもなしに。
0513nobodyさん2005/04/06(水) 11:20:40ID:???
>>511
ちゃんとなってるのね。
0514nobodyさん2005/04/06(水) 12:04:20ID:???
>>510
<?php
$str = '<mojiretsu>moji&"retsu</mojiretsu>';
$p = xml_parser_create();
xml_parse_into_struct($p,$str,$val,$idx);
xml_parser_free($p);
var_dump($idx);
var_dump($val);
?>

PHP4.3.9(Win)もPHP5.0.4(Win)でも 
array(1) {
["MOJIRETSU"]=>
array(1) {
[0]=>
int(0)
}
}
array(1) {
[0]=>
array(4) {
["tag"]=>
string(9) "MOJIRETSU"
["type"]=>
string(8) "complete"
["level"]=>
int(1)
["value"]=>
string(10) "moji"retsu"
}
}
05155142005/04/06(水) 12:05:47ID:???
$strは>>511の内容。
■ このスレッドは過去ログ倉庫に格納されています