fopen

resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )

$filename

파일을 로드할 파일명 또는 파일이있는 주소 이다.


$mode


어떠한 모드로 파일을 열 것인지 설정하는 인자.

인자

모드 

포인터 위치 

파일이 존재 유무 

읽기 전용 

파일의 시작 

파일 내용 보존 

r+ 

읽고 쓰기 

파일의 시작 

파일 내용 보존 

쓰기 전용 

파일의 시작 

파일 내용 삭제, 없으면 새로 생성 

 w+

읽고 쓰기 

파일의 시작 

파일 내용 삭제, 없으면 새로 생성 

쓰기 전용 

파일의 끝 

파일 내용 보존, 없으면 새로 생성 

a+ 

읽고 쓰기 

파일의 끝 

파일 내용 보존, 없으면 새로 생성 

쓰기 전용 

새로운 파일 생성 

파일이 존재하면 flase 리턴  

x+ 

읽고 쓰기 

새로운 파일 생성 

파일이 존재하면 flase 리턴 


파일 읽고 쓰기 예제


$m ='수정할 text';

$dir ='파일 주소'

$file_handle = fopen($dir, "w+") or die("can't open file");

fputs($file_handle, $m);

fclose($file_handle);



<a href="image/test.png" download>이미지 다운로드</a>


href 에 원하는 주소를 넣으면 된다.


download 속성이 설정되어 있으면, 링크가 가르키는 파일을 다운로드 한다.


iphone 과 사파리에서는 새창이 열린다 ㅠ

새창에서 안열리고 이미지 다운로드 됨

downTest.html

<a href="fileDown.php?filename=testimg01&Imgurl=이미지URL">Download</a>

======================================================================

fileDown.php

<?php

$filename = $_REQUEST['filename']; $save_dir = $_REQUEST['Imgurl']; /*
Header("Content-type: application/x-msdownload"); Header("Content-Disposition: attachment; filename=".$filename.".png"); Header("Content-Transfer-Encoding: binary"); Header("Pragma: no-cache"); Header("Expires: 0");
$handle = fopen($save_dir, "r"); while(!feof($handle)){ echo fread($handle,4096); };
*/

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($filename));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($save_dir));
ob_clean();
flush();
readfile($save_dir);
exit;

?>

date : 로컬 날짜/시간을 형식화 한다.


string date ( string $format [, int $timestamp ] )


정수형으로 주어지는 timestamp나, timestamp가 주어지지 않았을 경우에는 현재 로컬 시간을 사용하여, 주어진 포맷 문자열에 따라 형식화한 문자열을 반환합니다. 즉 timestamp는 선택적이고, 기본값은 time()의 값입니다.


 인수 

format

다음 문자들을 format 인수 문자열로 인식한다.

--- 일 ---
d  :  일, 앞에 0이 붙는 2 숫자  [ 01에서 31 ]
D  :  요일 글자 표현, 3 문자 [ Mon에서 Sun ]
j  :  앞에 0이 붙지 않는 일 [ 1에서 31 ]
l  :  (소문자 'L') 요일의 완전한 글자 표현 [ Sunday에서 Saturday ]
N  :  요일의 ISO-8601 숫자 표현 (PHP 5.1.0에서 추가) [ 1(월요일)에서 7(일요일) ]
S  :  일 영어 접미사, 2 문자 [ st, nd, rd, th. j와 같이 사용하기 좋음. ]
w  :  요일 숫자 표현 [ 0(일요일)에서 6(토요일) ]
z  :  해당 연도 일차 [ (0에서 시작) 0에서 365 ]


--- 주 ---
W  :  ISO-8601 주차, 주는 월요일에 시작 (PHP 4.1.0에서 추가) [ 예시: 42 (그 해의 42번째 주) ]


---월 ---
F  :  January나 March 같은 월의 완전한 글자 표현 [ January에서 December ]
m  :  0이 붙는 월 숫자 표현 [ 01에서 12 ]
M  :  월의 축약 글자 표현, 3 문자 [ Jan에서 Dec ]
n  :  0이 붙지 않는 월 숫자 표현 [ 1에서 12 ]
t  :  주어진 월의 일 수 [ 28에서 31 ]


--- 연 ---
L  :  윤년 여부 [ 윤년엔 1, 그 외엔 0 ]
o  :  ISO-8601 연도. Y와 같지만, ISO 주차(W)가 전해나 다음해에 해당하면, 그 연도를 사용합니다. (PHP 5.1.0에서 추가) [ 예시: 1999나 2003 ]
Y  :  연도의 완전한 숫자 표현, 4 숫자 [ 예시: 1999나 2003 ]
y  :  도의 두 숫자 표현 [ 예시: 99나 03 ]


--- 시간 ---
a  :  오전과 오후의 소문자 [ am 또는 pm ]
A  :  오전과 오후의 대문자 [ AM 또는 PM ]
B  :  스와치 인터넷 시간 [ 000에서 999 ]
g  :  0이 붙지 않는 12시간 형식 시 [ 1에서 12 ]
G  :  0이 붙지 않는 24시간 형식 시 [ 0에서 23 ]
h  :  0이 붙는 12시간 형식 시 [ 01에서 12 ]
H  :  0이 붙는 24시간 형식 시 [ 00에서 23 ]
i  :  0이 붙는 분 [ 00에서 59 ]
s  :  초, 0이 붙음 [ 00에서 59 ]
u  :  마이크로초 (PHP 5.2.2에서 추가) [ 예시: 54321 ]


--- 시간대 ---
e  :  시간대 식별자 (PHP 5.1.0에서 추가) [ 예시: UTC, GMT, Atlantic/Azores ]
I  :  (대문자 i) 일광 절약 시간 여부  [ 일광 절약 시간이면 1, 아니면 0 ]
O  :  그리니치 시간(GMT)과 시차 [ 예시: +0200 ]
P  :  시와 분 사이에 콜론이 들어가는 그리니치 시간(GMT)과 차이 [ 예시: +02:00 ]
T  :  시간대 축약어 [ 예시: EST, MDT ... ]
Z  :  시간대 오프셋 초. UTC 서쪽은 항상 음수, UTC 동쪽은 항상 양수 [ -43200에서 50400 ]


--- 날짜/시간 표현 ---
c  :  ISO 8601 날짜 (PHP 5에서 추가) [ 2004-02-12T15:19:21+00:00 ]
r  :  ≫ RFC 2822 형식 날짜 [ 예시: Thu, 21 Dec 2000 16:01:07 +0200 ]
U  :  유닉스 에포치(January 1 1970 00:00:00 GMT)부터 초수 [ time() 참조 ]


timestamp

선택적인 timestamp 인수는 timestamp가 주어지지 않앗을 경우, 현재 로컬 시간을 기본값으로 가지는 integer 유닉스 타임스탬프이다. 

죽, 기본값은 time() 값이다.


'PHP' 카테고리의 다른 글

[PHP] php에서 파일 생성 및 수정하기  (0) 2017.08.25
[PHP] 간단한 이미지 다운로드 (수정)  (0) 2017.08.23
[PHP] str_replace  (0) 2017.08.14
[PHP] 반복문(while, do..while, for)  (0) 2017.07.17
[PHP] 조건문 Switch  (0) 2017.07.04

str_replace 발견한 모든 검색 문자열을 치환 문자열로 교체


str_replace($search, $replace, $subject[, int $count])


subject에서 발견한 모든 search를 주어진 replace 값으로 치환한 문자열이나 배열을 반환한다.


(정규표현식처럼) 복잡한 치환 규칙이 필요하지 않으면, ereg_replace()나 preg_replace() 대신 이 함수를 사용해야 된다.


search와 replace가 배열이면, str_replace()는 각가의 배열에서 취한 값을 사용해서 subject를 검색 치환한다.


replace가 search보다 적은 값을 가지고 있으면, 나머지 치환값으로 빈 문자열을 사용한다.


search가 배열이고 replace가 문자열이면, search의 모든 값에 이 치한 문자열을 사용한다.


search나 replace가 배열이면, 그 요소는 처음부터 마지막 순으로 처리된다.


subject가 배열이면, 검색 및 치환을 subject의 모든 원소에서 수행하고, 배열을 반환한다.


count 넘겨지면, 매치하여 교체하는 수를 가진다.


이 함수는 치환한 값을 가지는 문자열이나 배열을 반환한다.


예제


<?php

$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

//결과 : <body text='black'>


$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");

$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");


echo $onlyconsonants; 

//결과 : Hll Wold f PHP


$phrase  = "You should eat fruits, vegetables, and fiber every day.";

$healthy = array("fruits", "vegetables", "fiber");

$yummy   = array("pizza", "beer", "ice cream");


$newphrase = str_replace($healthy, $yummy, $phrase);


echo $newphrase."<br>"; 


//결과 : You should eat pizza, beer, and ice cream every day.


$str = str_replace("ll", "", "good golly miss molly!", $count);

echo $count."<br>"; // 2


$str     = "Line 1\nLine 2\rLine 3\r\nLine 4\n";

$order   = array("\r\n", "\n", "\r");

$replace = '<br />';


// \r\n을 먼처 처리해서 두번 변환되지 않도록 합니다.


$newstr = str_replace($order, $replace, $str);

echo $newstr."<br>";

/*

결과 : 

Line 1

Line 2

Line 3

Line 4

*/


$letters = array('a', 'p');

$fruit   = array('apple', 'pear');

$text    = 'a p';

$output  = str_replace($letters, $fruit, $text);

echo $output;

//결과 : apearpearle pear


?>

'PHP' 카테고리의 다른 글

[PHP] 간단한 이미지 다운로드 (수정)  (0) 2017.08.23
[PHP] Date 함수  (0) 2017.08.14
[PHP] 반복문(while, do..while, for)  (0) 2017.07.17
[PHP] 조건문 Switch  (0) 2017.07.04
[PHP] 조건문 - IF문  (0) 2017.07.03

php 부분


<?php

function CurlGet( $url ){


        $curlsession = curl_init ();

        curl_setopt($curlsession, CURLOPT_CUSTOMREQUEST, "GET");

        curl_setopt ($curlsession, CURLOPT_URL, $url);

        curl_setopt ($curlsession, CURLOPT_HTTPGET, TRUE);

        curl_setopt ($curlsession, CURLOPT_RETURNTRANSFER, 1);

        //curl_setopt($curlsession, CURLOPT_HTTPHEADER, $headers);

        $res = curl_exec ($curlsession);


        return $res;

    }

 $Chnelurl = 

'https://www.googleapis.com/youtube/v3/playlistItems?playlistId=재생목록ID&key=나의 KEY&part=snippet&fields=*&maxResults=50';

    $res = CurlGet($Chnelurl);


?>

---------------------------------------------------------------------------------------------

html 부분


<table>

<tr>

<th>img</th>

<th>title</th>

<th>ViewCount</th>

<th>regdate</th>

</tr>

<tbody id="getVideo"></tbody>

</table>

---------------------------------------------------------------------------------------------

script 부분


<script>

var div ;

$(function () {

var res = <?=$res?>;

var count = Object.keys(res.items).length;

var videoId, videoImg, videotitle, Viewurl, qwer;

for(var i = 0; i<count; i++){

  videotitle = res.items[i].snippet.title; 

  videoId = res.items[i].snippet.resourceId.videoId;

  videoImg = res.items[i].snippet.thumbnails.default.url;

  url = 'https://www.googleapis.com/youtube/v3/videos?id='+videoId+'&key=나의 KEY&part=statistics,snippet&fields=*';

ViewUrl(url,videoId, i);

$("#getVideo").append(

'<tr><td><img src="'+videoImg+'"></td><td><a href="http://www.youtube.com/watch?v='+videoId+'">'+videotitle+'</a></td><td id="countvideo_'+i+'"></td><td id="regdate_'+i+'"></td></tr>'

);

}

});

function ViewUrl(urls,vid,count){

$.ajax({

        url: urls,

        dataType: "json",

        success: function (data) {

console.log(data);

if(vid == data.items["0"].id){

var dataviews = data.items["0"].statistics.viewCount;

var regdate = data.items["0"].snippet.publishedAt;

var regdates = regdate.split('T');

$("#countvideo_"+count).html(dataviews + " view");

$("#regdate_"+count).html(regdates[0]);

}

},

 error:function(request,status,error){

        alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);

       }

    });

}


</script>

---------------------------------------------------------------------------------------------

ViewUrl.php


<?php

function CurlGet( $url ){


        $curlsession = curl_init ();

        curl_setopt($curlsession, CURLOPT_CUSTOMREQUEST, "GET");

        curl_setopt ($curlsession, CURLOPT_URL, $url);

        curl_setopt ($curlsession, CURLOPT_HTTPGET, TRUE);

        curl_setopt ($curlsession, CURLOPT_RETURNTRANSFER, 1);

        //curl_setopt($curlsession, CURLOPT_HTTPHEADER, $headers);

        $res1 = curl_exec ($curlsession);


        return $res1;

    }

$Viewurl = $_POST['url'];

 $res1 = CurlGet($Viewurl);

echo '<pre>'.$Viewurl.'</pre>';


?>


결과물 




'API' 카테고리의 다른 글

[GoogleCharts] ComboChart 예제  (0) 2017.07.21

select box 옵션 선택 시, 선택 된 값 스타일 변화


// selected 주기 위함

<?php

$selectBTS = "";

$selectTWICE = "";

if($_REQUEST['singsel'] == "BTS"){

$selectBTS = "selected";

}else if($_REQUEST['singsel'] == "TWICE"){

$selectTWICE = "selected";

}


?>


<!doctype html>

<html lang="en">

 <head>

  <meta charset="UTF-8">

<!-- style 주기 -->

  <style>

.register_account { color: #FF0000; background: white; }

option:not(:checked) { color: #000000; background: white; }

  </style>


 </head>

 <body>

  <select id="singsel">

<option value ="">가수들</option>

    <option value="BTS" <?=$selectBTS?>>BTS</option>

    <option value="TWICE" <?=$selectTWICE?>>TWICE</option>

  </select>

  

<script src="js/jquery-3.2.1.min.js" type="text/javascript"></script>

  <script>

$(function() {

// singsel 의 값이 있으면 class 값 주기

if($("#singsel").val()){

$("#singsel").addClass('register_account');

}


// singsel change 

$("#singsel").change(function() {

var singsel = $("#singsel").val();

if(singsel){

location.href="<?=$_SERVER['PHP_SELF']?>?singsel="+singsel;

}else{

location.href="<?=$_SERVER['PHP_SELF']?>";

}

});

});

  </script>

 </body>

</html>


결과


value 없을 때 

값 선택 전


값 선택 시 글씨 색 변경



'Javascript > JQuery' 카테고리의 다른 글

[JQuery] Append 이용한 Row 추가 삭제  (0) 2017.08.28


위에 데이터 차이가 많이 날 경우 , Y축에 보조축으로 같이 두고있을때, 

targetAxisIndex:1 을 하게 되면, 다음과 같이 나오게 된다.


결과 화면 


'API' 카테고리의 다른 글

[Youtube API] 유튜브 API통해 재생목록 및 View_count 출력  (0) 2017.08.02

반복문(WHILE, DO..WHILE, FOR)


WHILE, DO..WHILE 문


while (조건) {

실행문;

}

* 조건이 참인 동안 실행문이 반복되어 실행된다.

* 반복을 벗어나기 위해서는 실행문내에 조건을 변경하거나, break 문이 필요하다.

* 조건에 변화가 없으면 무한 반복된다.

* 조건은 실행문이 반복될 때 마다 반복해서 실행된다.


ex) while 문을 이용하여 1에서 10까지 출력

$a=1;

while($a<=10){

echo $a."<br>";

$a++;

}


결과





do {

실행문;

}while(조건)


* While문의 병형으로 일단 실행문 실행되고 조건이 검사된다.

* While문과 다른 점은 조건이 처움부터 거짓이라도 실행문이 한번은 실행이 된다.

* 현재는 거이 쓰지 않다 ㅠㅠ


앞써 보여준 1에서 10까지 출력을 Do while 문으로 바꾸면

$a = 1;

do{

echo $a."<br>";

$a++;

}while($a<=10);


결과는 똑같다.



이렇게 된다.


while문을 이용한 홀/짝수의 합을 구하기!

test.html


화면 


test.php

결과값 : 



for 문


for(초기식; 조건; 증감식){

실행문;

}


* 조건이 참인 동안 실행문을 반복 실행한다.

* 초기식은 맨 처음 한번만 실행된다.

* for문은 반복횟수를 구체적으로 확인 가능, 가장 가독성이 좋다.


ex) for문을 이용하여 1에서 10까지 출력

for($a=1; $a<=10; $a++){

echo $a."<br>";

}




Continue문


Continue문은 반복문 내에서 쓰이는 제어문이다.

이런 제어문은 break문도 있는데 ,

break 문은 반복문을 완전히 빠져나오는 기능을 하는 반면,

continue문은 현재 수행중인 반복을 종료하고 다음 반복으로 건너뛰는 기능을 담당한다.



'PHP' 카테고리의 다른 글

[PHP] Date 함수  (0) 2017.08.14
[PHP] str_replace  (0) 2017.08.14
[PHP] 조건문 Switch  (0) 2017.07.04
[PHP] 조건문 - IF문  (0) 2017.07.03
[PHP] 연산자  (0) 2017.07.03

 CSS(Cascading Style Sheet)


(1) 디자인의 효과적인 관리

(2) 웹 디자인의 표준화

(3) version : 1.x -> 2.x -> 3.x

(4) 사용방법

1) Inline Style

- 태그 안에서 직접 사용하는 방식(즉흥적)

-style이라는 속성을 통해서 사용

2) Internal Style

3) External Style

- 별도의 .css 파일을 만ㄷ르어서 불러다 사용하는 방식

- 여러 페이지에서 재사용 가능

(5) 문법

Selector -> 디자인이 적용될 위치 선택

Selector {property:value; property:value;}

(6)property 정리

1) font관련

font-family : 글꼴

font-size : 크기

font : 여러개의 속성을 하나로 묶어서 상요할때

font-style : normal, italic, oblique

font-weight : 굴자 굵기

line-height : 줄간격

font-variant : 텍스트를 작은 대문자로

2)색상 및 이미지 관련된

color : 글자색

background-color : 배경색

background-image : 배경 이미지의 반복방법지정

background-attachment : 배경이미지의 고정 여부

background-position : 배경이미지의 시작위치

3) Text 관련

text-transform : 대문자를 소문자로 소문자는 대문자로

text-align : 수평적인 정렬 left right center

text-indent : 문단의 들여쓰기

text-decoration : 텍스트에 더해진느 여러가지 장식

vertical-align : 위아래 가운데 수직적인 정렬 top middle bottom

line-height

4) 여백 관련

- 가장 바깥쪽 여백

margin-top, margin-left, margin-rignt, margin-bottom

- 가장 안쪽 여배

padding-top, padding-left, padding-rignt, padding-bottom

- 경계선 여백 (바깥쪽과 안쪽의 중간 여백)

border-top, border-left, border-right, border-bottom

border-width, border-style, border-color

(7) 상속

1) 독립적 상속

- 하나의 태그가 다른 태그를 포함할 경우, 그 포함된 태그는 포함하는 태그

스타일의 영향을 받는다.

- 만약 상속을 거부할 경우, 다시 포함된 태그에서 프로퍼티를 지정해주면 된다.

2) 선택적 상속

- A태그안에 B태그를 포함시켜 정의하는 방식으로 

B태그는 A채그 영역에서만 유효한 값을 지닌다.

ex) 

h1 span{} : h1안에있는 span 태그만 사용하겠다는 선택적 상속

(8) 원하는 디자인 골라서 사용하기

1) Class

ex) h1.bl{color:blue;}

-> h1 class b1의 글자색은 파랑색으로 한다.

2) id

ex) h1#b1{color:blue;}

'HTML|CSS' 카테고리의 다른 글

[HTML5] a의 Download 속성  (0) 2017.08.23
[웹 프로그래밍] HTML (Hyper Text Markup Language)  (0) 2017.07.14

+ Recent posts