PHP-include 와 require 의 차이점

 

출처:

require: http://php.net/manual/en/function.require.php
include: http://php.net/manual/en/function.include.php

 

 

  • require
    • 원문: require is identical to include except upon failure it will also produce a fatal E_COMPILE_ERROR level error. In other words, it will halt the script whereas include only emits a warning (E_WARNING) which allows the script to continue.
    • require 는 에러가 발생될 때 E_COMPILE_ERROR 수준으로 오류가 생성됩니다. 즉, 스크립트에러가 발생하게 되면 계속 컴파일을 하는 include 와 달리 오류를 발생하며 더 이상 페이지를 로드하지 않게 됩니다.
    • C#에서 #include 와 같습니다.
  • include
    • 원문:
    • The include statement includes and evaluates the specified file.

      The documentation below also applies to require.

      Files are included based on the file path given or, if none is given, the include_path specified. If the file isn't found in the include_path, include will finally check in the calling script's own directory and the current working directory before failing. The include construct will emit a warning if it cannot find a file; this is different behavior from require, which will emit a fatal error.

      If a path is defined — whether absolute (starting with a drive letter or \ on Windows, or / on Unix/Linux systems) or relative to the current directory (starting with . or ..) — theinclude_path will be ignored altogether. For example, if a filename begins with ../, the parser will look in the parent directory to find the requested file.

      For more information on how PHP handles including files and the include path, see the documentation for include_path.

      When a file is included, the code it contains inherits the variable scope of the line on which the include occurs. Any variables available at that line in the calling file will be available within the called file, from that point forward. However, all functions and classes defined in the included file have the global scope.

    • include 는 외부 파일을 불러올 때 사용합니다. 페이지에서 로드할 때마다 새롭게 갱신(로드)하여 페이지에서 컴파일되어 보여지게 되는데, 스크립트의 에러가 발생하더라도 중지되지 않고 나머지 내용을 페이지에 출력합니다.
    • 일반적인 페이지 출력을 위해서 사용되며, include 문장을 만날 때 호출이 됩니다.

'Languages > others' 카테고리의 다른 글

PHP-include 와 require 의 차이점  (0) 2013.10.29

Eclipse-SVN 특정 파일 제외하기-setup ignore file list

 

 

Eclipse 에서 maven project 를 하게 되면

build 후 target 폴더가 project 하위에 기본적으로 생기게 됩니다.

 

  • 위의 이미지와 같이 ?(알 수 없는 새로운 파일/폴더) 로 앞으로 svn 에 적용할 파일이라고 표시가 됩니다.

 

그러나 target 과 같은 폴더를 굳이 버전관리를 할 필요가 없으며, 이로 인해 svn Synchronize 를 할 때 속도도 많이 느려지게 됩니다.

 

Eclipse 에서는 다음과 같이 특정 파일 명(규칙) 혹은 폴더 명을 지정하여 제외시킬 수 있습니다.

 

    1. Window –> Preferences 를 접근합니다.
    2. Team –> Ignored Resources 를 선택하고 Add Pattern… 을 클릭합니다.
    3. 제외할 파일 이름(규칙: *= 모든 문자, ?= 특정 문자의 수(예; ??x.abc : 12x.abc, 13x.abc)) 혹은 폴더 명(예; target)을 지정합니다.
      • 권장하는 파일 및 폴더 목록
        • target
        • .classpath
        • .project
        • .settings
    4. OK 끝
  • 이제 위와 같은 이미지처럼 변경된 내용을 확인하실 수 있습니다. 변경된 후에는 svn Synchronize 를 하더라도 반영되지 않습니다.

Java-HTTPS 통신 (링크)

 

 

 

  1. http://tjjava.blogspot.kr/2012/03/https.html
  2. http://java2go.net/blog/197

 

 

 

  • 간단한 예제
    • HTTPS Client 프로그램입니다.
    • 물론 아래의 예제를 사용하면 인증서 관련 에러가 발생될 수 있습니다.
    • 이에 관련하여 아래의 포스팅을 참고해 주세요.
      package foo;
      
      import java.net.URL;
      import java.io.*;
      import javax.net.ssl.HttpsURLConnection;
      
      public class JavaHttpsExample
      {
        public static void main(String[] args)
        throws Exception
        {
          String httpsURL = "https://your.https.url.here/";
          URL myurl = new URL(httpsURL);
          HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
          InputStream ins = con.getInputStream();
          InputStreamReader isr = new InputStreamReader(ins);
          BufferedReader in = new BufferedReader(isr);
      
          String inputLine;
      
          while ((inputLine = in.readLine()) != null)
          {
            System.out.println(inputLine);
          }
      
          in.close();
        }
      }

 

출처: http://alvinalexander.com/blog/post/java/simple-https-example

Java-HTTPS 주소의 파일 다운로드

 

 

HTTPS 건 HTTP건 일반적인 환경에서 URL 접속은 대게 아래와 같이 사용하고 있습니다.

    URL url = new URL("https://hostname:port/file.txt");
    URLConnection connection = url.openConnection();
    InputStream is = connection.getInputStream();
    // .. then download the file

 

 

하지만 HTTPS 환경에서는 server 인증서가 없거나 지정하지 않을 경우 아래와 같은 오류를 만나게 됩니다.

    avax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target ......... ........... ..........

 

 

그렇기 때문에 인증서가 있다면 인증서의 위치를 지정해줘야 하지만, 인증서가 없을 경우에는 아래와 같이 작성해서 사용할 수 있습니다.

    // Create a new trust manager that trust all certificates
    TrustManager[] trustAllCerts = new TrustManager[]{
        new X509TrustManager() {
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return null;
            }
            public void checkClientTrusted(
                java.security.cert.X509Certificate[] certs, String authType) {
            }
            public void checkServerTrusted(
                java.security.cert.X509Certificate[] certs, String authType) {
            }
        }
    };
    
    // Activate the new trust manager
    try {
        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, trustAllCerts, new java.security.SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    } catch (Exception e) {
    }
    
    // And as before now you can use URL and URLConnection
    URL url = new URL("https://hostname:port/file.txt");
    URLConnection connection = url.openConnection();
    InputStream is = connection.getInputStream();
    // .. then download the file

 

 

 

이 방법이 해답은 아니며, HTTPS 프로토콜을 사용한다면 서버의 인증서를 지정하는 방식을 사용하는 것을 권합니다.

 

 

출처: http://stackoverflow.com/questions/10135074/download-file-from-https-server-using-java


기타 HTTPS 파일 다운로드 예제

http://www.mkyong.com/java/java-https-client-httpsurlconnection-example/



MySQL-Concat 사용 시 한글 깨짐 현상

 

MYSQL을 사용 시 CONCAT 을 사용할 때 한글 깨짐 현상.

 

 

* 테이블 A 가 있습니다.

* 컬럼 colA, colB 가 있습니다.

* 컬럼 colA = varchar, colB = number 입니다.

 

두 개의 컬럼은 서로 유형이 다릅니다.

 

SELECT colA, colB FROM A; 

 

정상 출력 됩니다.

 

SELECT CONCAT(colA, colB) FROM A;

 

출력 시 한글이 깨지게 됩니다.(일부 툴에서는 정상적으로 출력됨을 확인)

 

해결방법

CONCAT 을 할 때, number 유형이나 각기 다른 유형의 컬럼을 합치고자 할 때 CAST 를 해주시면 됩니다.

 

SELECT CONCAT(colA, CAST(colB AS CHAR)) FROM A;

 

 

 

참고사이트: http://srzero.tistory.com/entry/Mysql-Concat-%ED%95%9C%EA%B8%80%EA%B9%A8%EC%A7%90

|  1  |