<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>NetBeans IDE 6.9-7.0のPHPエディタ(プレビュー)</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
    <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
  </head>
  <body>
    
    
    <h1>NetBeans IDE 6.9-7.0のPHPエディタ(プレビュー)</h1>
    
    <table>
      <tr>
      <td class="valign-top">
          
          <p>
            Roman Stroblが、NetBeans IDE 6.9から7.0で使用できる新しいPHP機能の開発ビルドを紹介します。PHPプロジェクトは、ローカルWebサーバーやリモート・サイト(FTP経由)に自動的にデプロイしたり、スクリプトをコマンド行で実行できます。NetBeans IDE 6.9から7.0のPHPエディタは、コード補完、構文の強調表示、出現箇所のマーク、リファクタリング、コード・テンプレート、ドキュメントのポップアップ、コード・ナビゲーション、エディタの警告、およびタスク・リストなどのすべての標準機能をサポートします。
          </p>
          <p>作成者: Roman Strobl<br>時間: 5:10<br><a href="https://netbeans.org/files/documents/4/2028/php_demo.zip" target="_blank">ダウンロード</a> (6.35MB)
          </p>
          <p><br></p>
          
          <p><b>関連リンク</b></p>
          <ul>
            <li><a href="../../../kb/docs/php/editor-screencast.html">PetrによるNetBeans IDE 6.9-7.0 PHPエディタのスクリーンキャスト</a>
            <li><a href="../../../features/php/index.html">PHP向けのNetBeans IDE</a>
            <li><a href="../../../kb/trails/php.html">PHPの学習</a>
            <li><a href="http://blogs.oracle.com/netbeansphp/" target="_blank">PHP向けのNetBeansブログ</a>
          </ul>
          <div class="feedback-box" style="float:left">
            <a href="../../../about/contact_form.html?to=3&subject=Feedback: Roman's 6.5 PHP Editor screencast">このチュートリアルに関するご意見をお寄せください</a>
          </div>
          <br style="clear:both;">
        </td><td width="425" class="valign-top" class="align-center">
          
          <script type='text/javascript'>
            var var_pid = "6656";
            var var_furl = "http://netbeans.tv/images/";
            var var_notPanorama = "0";
            var var_altLink = "https://netbeans.org/files/documents/4/2028/php_demo.zip";
          </script>
          
          <div id="videoPlayer" class="video">
          <p>フラッシュ・プレイヤを読み込むことができません。</p></div>
          
          <script type="text/javascript">

            <!--
            var so = new SWFObject(var_furl+"playerWidget.swf" , "pv", "410", "331", "8", "#666666");
            so.addParam("quality", "high");
            so.addParam("allowScriptAccess", "sameDomain");
            //so.addParam("menu", "false");
            so.addParam("allowFullScreen", "true");
            so.addVariable("autoPlay", "false");
            so.addVariable("urlFileIdList", var_pid);
            so.addVariable("show_title", "true");
            so.addVariable("PLAY_CALLBACK","emphasize");
            so.addVariable("resizeLimitMax","true");
            so.addVariable("lang", "en");
            so.addVariable("flash_play","true");
            so.addVariable("author_name","NetBeans.tv");
            so.addVariable("configUrl",'http://sun.ora.ma/config.sun.ora.ma.xml');
            if (var_notPanorama == '1')
            {
              so.addVariable("clickAction","clickAction");
            }
            so.write("videoPlayer");
            // -->

          </script>
          
      </td></tr>
    </table>
    
  </body>
</html>
