最近(ずっと前から?)PHP3やらPHP4等という言葉を聞きます。いったいPHPって何なんですか?XMLやらPerlなどとは関係ないのですか?教えて下さい!!

このQ&Aに関連する最新のQ&A

A 回答 (3件)

PHPというのはPerlと同じくスクリプト言語です。



Perlはもともと、テキスト処理用の汎用スクリプト言語として生ま
れて、その後その簡便さから様々な拡張がほどこされつつCGIに使
われるようになりました。

PHPはよりCGI向きに使えるように、さらにデータベースシステムと
の連係も重視して設計されたスクリプト言語です。

PerlでCGIプログラムを作るには、HTMLのタグを print でいちいち
出力しないといけないので、非常に見づらいプログラムになってし
まうのですが、PHPでは、HTML のタグのすきまに各処理を記述する
ので、みやすいという利点があります。

もっとも、最近は、Perl にもデータベースを扱う機能が付加され
たり、ePerl といって HTML に埋め込めるように拡張したものも開
発されているので、ほとんど差はないと言っていいです。

あと、kaju さんのように PHP はサーバ自身が実行するのでいいと
いう意見もありますが、Perl も apache のモジュールとしてサー
バが直接実行するようにもできるので、これも差はないです。

どちらを使うかは、設計思想とか文法の趣味と、使い易さの問題だ
けだと思います。
    • good
    • 0
この回答へのお礼

ご回答有り難うございます。結局は両方似たり寄ったりと言う事ですね?どちらを選ぶかは自分次第ということですね

お礼日時:2000/12/16 22:07

皆さんがいろいろ書いているので、PHPとは?は省略。



PHPとCGI(Perl)の違いは理解されたようなので、
私は使い勝手について・・・
1.CGIならば、たいていのプロバイダでPerlを許可
 しているので、さほど問題なく導入可能。
2.それに対してPHPは、まだ対応しているところが
 少ないので、動作環境を整えたければ、自分で
 サーバを立ててやる必要がある。
 #探せば別です。OKWebもPHPだし。
3.文字操作については、あまり変わりませんが、
 やっぱりPerlの方が使いやすいと私は思う。
 #使っている人が多いからサンプルが多い。
4.実行速度はPHPの方がやや速いらしい。自分以外の
 プロセスを起動しないで良い分だけ。と言うのが
 確かPHP.ORGか何かに書いてあった記憶が・・・
5.ソースの書き方については、PHPの方が明らかに
 楽だと思う。PerlではPrintを書くのが面倒。
6.PHPは参考書が少ない。
 #最近本屋さんに並び始めたので、安心かな?

間違いがありましたらご指摘ください。
ではでは☆
    • good
    • 0
この回答へのお礼

回答有り難うございます。
今の所はPerlで十分事足りるんでしたらPHPはまだ必須ではないということですか?とりあえずPerlから勉強しようと思います。
有り難うございました。

お礼日時:2000/12/24 03:17

PHPはサーバーサイドスクリプトと言われています。


どう言うことかというとJavaScriptはブラウザ側で実行されるスクリプトですよね。それとは逆にサーバー側で処理されるスクリプトです。
では、Perlのような物かというと似てはいますが少しちがいます。
いったい何がちがうのか、
それはプログラムの実行形態が違います。
PerlはCGIという形でWebサーバーが外部プログラムを起動させて動いています。
それに対してPHPはスクリプトの実行をWebサーバー(Apache)自信が実行します。これはマイクロソフトのASPも同じような形態になっています。
そのため、サーバー側では余計なプロセスが発生することないため、CGIと比べて処理が軽くなります。
    • good
    • 0
この回答へのお礼

ご回答有り難うございます。良く分かりました。

お礼日時:2000/12/16 22:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q[PHP+XML]PHPで動的に出力するXMLをどのようにして読み込めばいいでしょうか?

こんにちは、どうしても解決ができなくて困っています。
お助け願います。

DBからデータを取得し成形するなどした結果をXMLで出力できるようにPHPを用意しました。
ブラウザから確認でき、XMLをソース表示しても問題ありません。

次にこれを読み込むPHPを書いています。
simplexml_load_fileなどでXMLファイルを開くことはこれまでにもやっていたので、直接XMLファイル名を記述するところに用意したPHPを指定しました。

結果はエラー。
いろいろ検証した結果、PHPがアクションする前にPHPファイルが開かれてしまっている感じ。

DOMDocumentのload()やloadXML()で読み込む方法もトライしましたが結果は同じ・・・。

根本的に間違ってますか?
PHPから吐き出されるXMLを読み込むためにXMLファイルを記述するところにPHPスクリプトを指定すること自体が間違っているようにも思っています。

お手数をお掛けいたしますがお教え願います。

Aベストアンサー

1)
simplexml_load_file('./outputxml.php');
のような表示ではなく、URL経由で
simplexml_load_file('http://www.example.com/outputxml.php');
として落としましょう。

2) web経由が無理であれば、前述のプログラムを関数にして、
吐き出しを変数で渡します。そして、
simplexml_load_file の代わりに
simplexml_load_string で受け取ります。

例えば、
XML出力: outputxml.php
<?
echo file_get_contents('http://okwave.jp/rss.php');
?>
処理 : do.php
<?
$xmldata = simplexml_load_file('./outputxml.php');
?>

ならば、
XML出力: outputxml.php
<?
function outputxml() {
return file_get_contents('http://okwave.jp/rss.php');
}
?>
処理 : do.php
<?
include 'outputxml.php';
$xmldata = simplexml_load_string(outputxml());
?>
などとします。

1)
simplexml_load_file('./outputxml.php');
のような表示ではなく、URL経由で
simplexml_load_file('http://www.example.com/outputxml.php');
として落としましょう。

2) web経由が無理であれば、前述のプログラムを関数にして、
吐き出しを変数で渡します。そして、
simplexml_load_file の代わりに
simplexml_load_string で受け取ります。

例えば、
XML出力: outputxml.php
<?
echo file_get_contents('http://okwave.jp/rss.php');
?>
処理 : do.php
<?
$xmldata = simplexml_load_f...続きを読む

QPEAR XML_Query2XMLを利用したPHPからFlash(AS3)へのXMLデータの渡し方について。

毎度お世話になっております。
前回させていただいた質問で、PHPからFlashへのデータ受け渡しをしたいと考えていたところ、XML形式がいいと教えていただき、試していました。

FlashのただのXMLファイルの読み込みはでき、PHPのPEAR XML_Query2XMLを利用してデータベースのデータをXMLに整形することも出来ました。
しかし、その後の連結的な操作が分からず戸惑っております。
お時間があるときでよろしいので、何を使ったらよいかなどアドバイス等を頂ければと思います。
よろしくお願いします。

環境
Flash CS3(AS3)
PHP5.2.6
MySQL5.1.29
Apache2.2.10


・PHPの今のところのプログラム

<?php
// include required files
include 'XML/Query2XML.php';
include 'MDB2.php';

try {
// initialize Query2XML object
$q2x = XML_Query2XML::factory(MDB2::factory('mysql://ユーザ名:パスワード@localhost/データベース名'));

// generate SQL query
// get results as XML
$sql = "SELECT * FROM table名";
$xml = $q2x->getFlatXML($sql);

// send output to browser
header('Content-Type: text/xml');
$xml->formatOutput = true;
echo $xml->saveXML();
} catch (Exception $e) {
echo $e->getMessage();
}
?>


・AS3の今のところのプログラム

System.useCodePage = true;

// 外部XMLはURLLoaderで読み込む
var myLoader:URLLoader = new URLLoader();

myLoader.addEventListener(Event.COMPLETE, completeData);
myLoader.load(new URLRequest("test.xml"));

// 読み込み完了後の処理
function completeData(event:Event):void {

// 読み込んだ文字列をmyXMLに入れる
var myXML:XML = new XML(myLoader.data);

// データのnameとpriceの値をリストアップ表示
trace(myXML.drink[1].name);

for (var i = 0; i < myXML.drink.length(); i++) {;

//ダイナミックテキストでi番目を表示
db.text = myXML.drink[i].name
trace(myXML.drink[i].name);
trace(myXML.drink[i].@price);

}

}

よろしくお願いします^^

毎度お世話になっております。
前回させていただいた質問で、PHPからFlashへのデータ受け渡しをしたいと考えていたところ、XML形式がいいと教えていただき、試していました。

FlashのただのXMLファイルの読み込みはでき、PHPのPEAR XML_Query2XMLを利用してデータベースのデータをXMLに整形することも出来ました。
しかし、その後の連結的な操作が分からず戸惑っております。
お時間があるときでよろしいので、何を使ったらよいかなどアドバイス等を頂ければと思います。
よろしくお願いします。

環境
...続きを読む

Aベストアンサー

1.phpからの出力を確認してtest.xmlと同様になっているのを確認
2.FLASH側でphpを呼び出す
  myLoader.load(new URLRequest("http://hoge/hoge.php"));
以上でよいです、ちゃんとwebサーバーないとだめですけど

QPerlの XMLin()はPHPではどうなるのでしょうか? PerlからPHP part3

Perlの以下のソースをPHPに置き換えた場合、
どのように書くのが一般的でしょうか?

PHPは4.3系を使っています。

# Perl
use XML::Simple;

my $xml = XMLin( $content );
my $namae = $xml->{NAMAE};

PHPとXMLのお勧め本も知りたいです。

Aベストアンサー

PHP4.3以降であればDOM XML関数をおつかいになると
よいでしょう。

参考URL:http://www.php.net/manual/ja/ref.domxml.php

QPHP ”XML_unserialize”でXMLを配列に変換したのですが・・・

XMLファイルを配列としてとってこれる
XML_unserializeというライブラリを使用して
XMLファイルに含まれるデータをとってPHPで利用することが
できたのですが、ここで一つ大きな問題が発生しました。

XML_unserializeをつかうと

<XMLTAG>
 取り出したいデータ
</XMLTAG>

     ↓

array(
 [XMLTAG] = 取り出したいデータ
)

と、たしかに取り出したいデータを配列に変換することができます。
しかし、取り出したいデータの中にタグが含まれていた場合
例えば
<XMLTAG>
 <div>取り出したいデータ</div>
</XMLTAG>
とかになっていると
<div>もXMLと判断されてしまって
必要なデータがうまくとってこれないのです。
正規表現でエスケープさせるにしても数が膨大ですし、
XMLタグ名に実際にHTMLで使われている
タグ名が使われているとも限りません。
どうすれば、
”XMLの中に入っているHTML等のタグを含むデータ”をうまくとってくることが
できるのでしょうか?

XMLファイルを配列としてとってこれる
XML_unserializeというライブラリを使用して
XMLファイルに含まれるデータをとってPHPで利用することが
できたのですが、ここで一つ大きな問題が発生しました。

XML_unserializeをつかうと

<XMLTAG>
 取り出したいデータ
</XMLTAG>

     ↓

array(
 [XMLTAG] = 取り出したいデータ
)

と、たしかに取り出したいデータを配列に変換することができます。
しかし、取り出したいデータの中にタグが含まれていた場合
例えば
<XMLTAG>
 <div>取...続きを読む

Aベストアンサー

「取り出したいデータ」がどのタグ(要素)にあるのか事前にわからないなら、シリアライズしてして配列にいれてしまうと、正規表現でサーチするしかないですね。
サーチする必要があるなら、XML本来の利点を生かすためにもXMLのまま扱ってDOM XML関数とか、SimpleXML関数を使うか、XMLパーサー関数で、
要素のハンドラー関数を用意して必要なデータを探します。

QphpでXML等のデータを取るとき、多次元配列の扱い方について

phpでRSS等のXMLファイルを、
XMLファイルを配列に変換するライブラリ等で配列に変換するとします。

XMLの入れ子の深いところにあるデータは
$row['hoge']['1200']['hogehoge']['hoge-5']['data']等と
(配列名は仮名)
と、配列階層が深すぎてとても長くなってしまいます。
実際は、10以上の深い階層になることもありえます。
取得するデータが膨大になると、混乱してくるおそれもあるので
これを何とか簡略したいのですが、
深い多次元配列を簡略的に把握する良い方法があれば
アドバイスをお願いいたします。

Aベストアンサー

長い変数名を書くのが面倒くさいだけなら、
単に
$hogehoge = $row['hoge']['1200']['hogehoge'];
として、
print $row['hoge']['1200']['hogehoge']['hoge-5']['data'];の代わりに
print $hogehoge['hoge-5']['data'];
print $hogehoge['hoge-6']['data'];
print $hogehoge['hoge-7']['data'];
で、いいような、意図がちがいますか?


人気Q&Aランキング

おすすめ情報