CSS 3에서 CSS Flex Box 모듈은 매우 유연한 방식으로 페이지 레이아웃 처리를 구현하는 데 사용되는 매우 중요한 모듈입니다.
페이지 레이아웃 처리를 구현하기 위해 다른 CSS 스타일 속성을 사용할 수도 있지만, CSS 유연한 상자 모듈에 정의된 유연한 상자 레이아웃 기술을 사용하면 페이지의 각 로컬 영역을 페이지 레이아웃 처리에 따라 자동으로 조정할 수 있습니다. 화면 크기 또는 브라우저 창 크기는 매우 유연한 레이아웃 처리를 실현합니다.
CSS Flex Box 모듈이 발표된 지 수년이 지났지만 모듈에 정의된 내용은 최초 출시 이후 몇 차례 대대적인 수정을 거쳤습니다. 현재 발표된 공식 버전은 ◦ CSS 유연한 박스 레이아웃 모듈 - W3C 후보 권장 사항, 2012년 9월 18일입니다.
현재까지 Opera 12.10 이상, IE 11 이상, Chrome 21 이상, Firefox 22 이상이 모두 이 최신 버전을 지원합니다.
샘플 페이지에서 최신 버전의 Flexbox 레이아웃 학습을 시작하세요.
다음으로, 샘플 페이지에서 최신 버전의 Flexbox 레이아웃 학습을 시작하세요. 이 예제 페이지의 body 요소에 있는 코드는 다음과 같습니다.
<body> <div id="main"> <div class="content"> <section> <h1 id="section-nbsp">section 1</h1> <p>示例文字</p> </section> <section> <h1 id="section-nbsp">section 2</h1> <p>示例文字</p> </section> <section> <h1 id="section-nbsp">section 3</h1> <p>示例文字</p> </section> <section> <h1 id="section-nbsp">section 4</h1> <p>示例文字</p> </section> </div> <div class="content"> <section> <h1 id="section-nbsp">section 5</h1> <p>示例文字</p> <section> <h1 id="section-nbsp">section 6</h1> <p>示例文字</p> </section> <section> <h1 id="section-nbsp">section 7</h1> <p>示例文字</p> </section> <section> <h1 id="section-nbsp">section 8</h1> <p>示例文字</p> </section> </div> <div class="content"> <section> <h1 id="section-nbsp">section 9</h1> <p>示例文字</p> </section> <section> <h1 id="section-nbsp">section 10</h1> <p>示例文字</p> </section> <section> <h1 id="section-nbsp">section 11</h1> <p>示例文字</p> </section> <section> <h1 id="section-nbsp">section 12</h1> <p>示例文字</p> </section> </div> </div> </body>
다음으로, 먼저 페이지의 각 div 요소와 섹션 요소에 대한 테두리 스타일을 지정합니다.
<style> #main { border: 1px dotted #f0f; padding: 1em; } .content { border: 1px dotted #0ff; padding: 1em; } section { border: 1px dotted #f00; padding: 1em; } </style>
지금까지의 샘플 페이지를 브라우저에서 열어보면 아래 그림과 같이 페이지의 요소들이 위에서 아래로 수직으로 배열되어 있습니다.
샘플 페이지에서 플렉스 박스 레이아웃을 사용하세요.
플렉스 박스 레이아웃을 지정하는 방법은 다음과 같습니다. 속성을 배치해야 하는 요소의 요소입니다. CSS Flex Box 모듈에서는 컨테이너 요소의 각 요소를 "Flex 항목"이라고 하며, 컨테이너 요소를 "Flex 컨테이너"라고 합니다.
유연한 상자 레이아웃 방법과 float 및 기타 스타일 속성을 사용하는 레이아웃 방법의 주요 차이점 중 하나는 float 및 기타 스타일 속성을 사용할 때 컨테이너의 각 요소에 대해 스타일 속성을 지정해야 한다는 것입니다. 유연한 상자 레이아웃을 사용하는 경우 컨테이너 요소에 스타일 속성만 지정하면 됩니다.
다음으로 먼저 스타일 클래스 이름이 콘텐츠인 모든 div 요소에 대해 유연한 상자 레이아웃을 사용합니다. 이 div 요소의 컨테이너 요소는 id 속성 값이 main인 div 요소입니다. 다음과 같이 표시:
#main { border: 1px dotted #f0f; padding: 1em; display: flex; }
브라우저에서 샘플 페이지를 열면 페이지 내 스타일 클래스 이름 내용이 포함된 모든 div 요소의 배열이 아래 그림과 같이 가로 배열로 수정됩니다.
요소 배열 방향 설정
flex-direction 스타일 속성을 사용하여 컨테이너 내 모든 하위 요소의 배열 방향을 제어할 수 있습니다. 지정할 수 있는 값은 다음과 같습니다.
row: 가로 배열(기본값)
row-reverse: 가로 역배열
column: 세로 배열
column-reverse: 세로 역배열
방향으로 정렬합니다. id 속성값이 main인 div 요소의 스타일 코드를 다음과 같이 수정합니다.
#main { border: 1px dotted #f0f; padding: 1em; display: flex; flex-direction: row-reverse; }
브라우저에서 샘플 페이지를 열고, 페이지 이름은 content로 명명됩니다. div 요소의 배열은 그림과 같이 컨테이너 요소, 즉 id 속성 값이 main인 div 요소의 오른쪽 끝부터 수평 및 역방향으로 정렬되도록 수정됩니다. 아래에.
다음으로 먼저 스타일 클래스명 내용을 포함한 모든 div 요소의 배열을 가로 및 정방향 배열로 복원하고, id 속성을 가진 div 요소의 스타일 코드를 수정합니다. 다음과 같이 main 값을 지정합니다.
#main { border: 1px dotted #f0f; padding: 1em; display: flex; }
그런 다음 스타일 클래스 이름이 content인 모든 div 요소에 대해 flex-direction:column-reverse; 코드를 지정합니다.
.content { border: 1px dotted #0ff; padding: 1em; display: flex; flex-direction: column-reverse; }
브라우저에서 샘플 페이지를 열면 페이지 내 모든 콘텐츠 div 요소의 모든 섹션 하위 요소 배열이 수직으로 반전되도록 수정됩니다(섹션 하위 요소의 섹션 손자 요소 제외). , 아래 그림과 같습니다.
使用order样式属性指定排列顺序
使用弹性盒布局的时候,可以通过order属性来改变各元素的显示顺序。可以在每个元素的样式中加入order属性,该属性使用一个表示序号的整数属性值,浏览器在显示的时候根据该序号从小到大来显示这些元素。
接下来首先设置所有样式类名为content的div元素的所有section子元素的排列方式为纵向正向排列,修改所有样式类名为content的div元素的样式代码如下所示:
.content { border: 1px dotted #0ff; padding: 1em; display: flex; flex-direction: column; }
接下来通过将所有样式类名为content的div元素中的第2个section子元素的order样式属性值设置为-1的方法设置这些section子元素被优先显示在其他section子元素之前,代码如下所示:
.content section:nth-child(2) { order: -1; }
在浏览器中打开示例页面,页面中所有样式类名为content的div元素中的第2个section子元素被显示在其他section子元素之前,如下图所示。
设置元素宽度及高度
接下来首先介绍如何设置被横向排列的每一个元素的宽度。
可以通过flex属性值的使用使所有子元素的总宽度等于容器宽度。
接下来通过将所有样式类名为content的div元素的flex属性值设置为1的方法使所有样式类名为content的div元素的总宽度等于容器元素,即id属性值为main的div元素的宽度,代码如下所示。当所有样式类名为content的div元素的flex属性值都被设置为1时,这些div元素的宽度均等。
.content { border: 1px dotted #0ff; padding: 1em; display: flex; flex-direction: column; flex:1; }
在浏览器中打开示例页面,所有样式类名为content的div元素的宽度自动增长,这些元素的总宽度等于容器元素,即id属性值为main的div元素的宽度,每一个样式类名为content的div元素的宽度均等,如下图所示。
接下来,我们设置第二个样式类名为content的div元素的flex属性值为2,代码如下所示。
.content:nth-child(2) { flex:2; }
为了更清晰地计算元素宽度,我们取消所有元素的边框设置及内边距设置,修改后的完整样式代码如下所示。
<style> #main { display: flex; } .content { display: flex; flex-direction: column; flex:1; } .content section:nth-child(2) { order: -1; } .content:nth-child(2) { flex:2; } </style>
在浏览器中打开示例页面,第二个样式类名为content的div元素宽度为其他样式类名为content的div元素宽度的两倍,假设这些元素的容器元素,即id属性值为main的div元素的宽度等于600px,则第一个与第三个样式类名为content的div元素宽度的宽度均等于150px,第二个样式类名为content的div元素宽度的宽度等于300px。
可以使用flex-grow属性来指定元素宽度,但是该样式属性对于元素宽度的计算方法与flex样式属性对于元素宽度的计算方法有所不同。
接下来指定所有样式类名为content的div元素的flex-grow样式属性值为1,宽度为150px,指定第二个样式类名为content的div元素的flex-grow样式属性值为为3。修改后的完整样式代码如下所示。
<style> #main { display: flex; } .content { display: flex; flex-direction: column; width:150px; flex-grow:1; } .content section:nth-child(2) { order: -1; } .content:nth-child(2) { flex-grow:3; } </style>
在浏览器中打开示例页面,假设这些元素的容器元素,即id属性值为main的div元素的宽度等于600,则第一个与第三个样式类名为content的div元素宽度的宽度均等于180px,第二个样式类名为content的div元素宽度的宽度等于240px。对于每个样式类名为content的div元素宽度的计算步骤如下所示:
600(容器宽度)-150*3(三个样式类名为content的div元素宽度的总宽度)=150
150/5(三个样式类名为content的div元素宽度的flex-grow样式属性值的总和)=30
第一个与第三个样式类名为content的div元素宽度的宽度均等于150(其width样式属性值+)+30*1(其flew-grow样式属性值)=180px
第二个样式类名为content的div元素宽度的宽度等于150(其width样式属性值+)+30*3(其flew-grow样式属性值)=240px
可以使用flex-shrink属性来指定元素宽度,该样式属性与flex-grow样式属性的区别在于:当子元素的width样式属性值的总和小于容器元素的宽度值时,必须通过flex-grow样式属性来调整子元素宽度,当子元素的width样式属性值的总和大于容器元素的宽度值时,必须通过flex-shrink样式属性来调整子元素宽度。
接下来指定所有样式类名为content的div元素的flex-shrink样式属性值为1,宽度为250px,指定第二个样式类名为content的div元素的flex-shrink样式属性值为为3。修改后的完整样式代码如下所示。
<style> #main { display: flex; } .content { display: flex; flex-direction: column; width:250px; flex-shrink:1; } .content section:nth-child(2) { order: -1; } .content:nth-child(2) { flex-shrink:3; } </style>
在浏览器中打开示例页面,假设这些元素的容器元素,即id属性值为main的div元素的宽度等于600,则第一个与第三个样式类名为content的div元素宽度的宽度均等于220px,第二个样式类名为content的div元素宽度的宽度等于160px。对于每个样式类名为content的div元素宽度的计算步骤如下所示:
250*3(三个样式类名为content的div元素宽度的总宽度)-600(容器宽度)=150
150/5(三个样式类名为content的div元素宽度的flex-shrink样式属性值的总和)=30
第一个与第三个样式类名为content的div元素宽度的宽度均等于250(其width样式属性值+)-30*1(其flew-shrink样式属性值)=220px
第二个样式类名为content的div元素宽度的宽度等于250(其width样式属性值+)-30*3(其flew-grow样式属性值)=160px
在使用flex-grow样式属性或flex-shrink样式属性调整子元素宽度时,也可以使用flex-basis样式属性指定调整前的子元素宽度,该样式属性与width样式属性的作用完全相同。
可以将flex-grow、flex-shrink以及flex-basis样式属性值合并写入flex样式属性中,方法如下所示。
flex:flex-grow样式属性值 flex-shrink样式属性值 flex-basis样式属性值;
在使用flex样式属性值时,flex-grow、flex-shrink以及flex-basis样式属性值均为可选用样式属性值,当不指定flex-grow、flex-shrink样式属性值时,默认样式属性值均为1,当不指定flex-basis样式属性值时,默认样式属性值为0px。
修改本示例中的样式代码如下所示:
<style> #main { display: flex; } .content { display: flex; flex-direction: column; width:250px; flex:250px; } .content section:nth-child(2) { order: -1; } .content:nth-child(2) { flex:1 3 250px; } </style>
在浏览器中打开示例页面,假设这些元素的容器元素,即id属性值为main的div元素的宽度等于600,则第一个与第三个样式类名为content的div元素宽度的宽度均等于220px,第二个样式类名为content的div元素宽度的宽度等于160px。
在子元素为横向排列时,flex、flex-grow、flex-shrink以及flex-basis样式属性均用于指定或调整子元素宽度,当子元素为纵向排列时,flex、flex-grow、flex-shrink以及flex-basis样式属性均用于指定或调整子元素高度。
单行布局与多行布局
可以使用flex-wrap样式属性来指定单行布局或多行布局,可指定样式属性值如下所示:
nowrap:不换行
wrap:换行
wrap-reverse:虽然换行,但是换行方向与使用wrap样式属性值时的换行方向相反
接下来首先恢复页面内各div元素的边框与内边距(padding)的指定,同时指定所有样式类名为content的div元素的宽度为250px,代码如下所示。
<style> #main { border: 1px dotted #f0f; padding: 1em; display: flex; } .content { border: 1px dotted #0ff; padding: 1em; display: flex; flex-direction: column; flex:250px; } section { border: 1px dotted #f00; padding: 1em; } .content section:nth-child(2) { order: -1; } </style>
然后指定容器元素,即id属性值为main的div元素的flex-wrap样式属性值为wrap,以指定允许对所有样式类名为content的div元素进行换行布局,代码如下所示。
#main { border: 1px dotted #f0f; padding: 1em; display: flex; flex-wrap: wrap; }
在浏览器中打开示例页面,当浏览器窗口宽度不足以容纳三个样式类名为content的div元素时,最右边的样式类名为content的div元素被换行显示,如下图所示。
可以将flex-direction样式属性值与flex-wrap样式属性值合并书写在flex-flow样式属性中。以下两段代码的作用完全相同。
//使用flex-direction样式属性与flex-wrap样式属性 .content { flex-direction: row; flex-wrap: wrap; } //使用flex-flow样式属性 .content { flex-flow: row wrap; }
弹性盒布局中的一些专用术语
接下来首先介绍弹性盒布局中的一些专用术语,在进行布局时这些术语的含义如下图所示。
주축: 레이아웃 시 레이아웃 기준으로 사용되는 축으로, 가로 레이아웃에서는 가로축, 세로 레이아웃에서는 세로축입니다.
main-start / main-end: 레이아웃할 때 레이아웃의 시작점과 끝점입니다. 가로 레이아웃에서는 컨테이너의 왼쪽과 오른쪽 끝 부분이고, 세로 레이아웃에서는 컨테이너의 위쪽과 아래쪽입니다.
교차축: 주축과 수직으로 교차하는 축입니다. 가로 레이아웃에서는 세로 축이고 세로 레이아웃에서는 가로 축입니다.
교차 시작/교차 끝: 교차축의 시작점과 끝점입니다. 가로 레이아웃에서는 컨테이너의 상단과 하단이고, 세로 레이아웃에서는 컨테이너의 왼쪽과 오른쪽 끝입니다. flex-wrap 속성 값을 Wrap으로 지정하고 가로 여러 줄 레이아웃을 수행하는 경우 교차 시작에서 교차 끝, 즉 위에서 아래 방향으로 레이아웃합니다. 역방향으로 여러 줄의 가로 레이아웃을 수행하는 경우, 행을 배치할 때 교차 끝에서 교차 시작 방향, 즉 아래에서 위로 레이아웃을 따릅니다.
justify-content 속성
justify-content 속성은 하위 요소를 제외한 컨테이너의 주축 방향을 레이아웃하는 방법을 지정하는 데 사용됩니다(배치 시 주축 축 방향은 수평임) 수평으로 배치할 경우 수직으로 배치) 레이아웃 시 주축(주축 방향이 세로 방향)에 남은 여백입니다.
flex-grow 속성 값이 0이 아닌 경우 각 하위 요소는 자동으로 주축 방향으로 컨테이너를 채우므로 justify-content 속성 값이 유효하지 않습니다.
justify-content 속성 값을 다음과 같이 지정할 수 있습니다.
flex-start: main-start부터 시작하는 모든 하위 요소를 레이아웃합니다(기본값).
flex-end: 메인엔드부터 시작하여 모든 하위 요소를 레이아웃합니다.
center: 모든 하위 요소를 중앙에 배치합니다.
space-between: 첫 번째 하위 요소를 메인 시작에 배치하고, 마지막 하위 요소를 메인 엔드에 배치하고, 모든 하위 요소 사이에 공백을 균등하게 분배합니다.
space-around: main-start와 첫 번째 하위 요소 사이, 각 하위 요소와 하위 요소 사이, 마지막 하위 요소와 main-end 사이 등의 위치에 공백을 균등하게 배포합니다.
위 속성값의 차이점은 아래 그림과 같습니다. (회색은 공백부분을 나타냅니다.)
align-items 속성 및 align-self 속성
align-items 속성은 justify-content 속성과 유사하며 다음을 지정하는 데 사용됩니다. 그러나 align-items 속성은 교차 축 방향으로 정렬을 지정합니다(가로 레이아웃에서는 교차 축 방향이 세로 레이아웃에서는 가로 방향으로 지정 가능). 다음과 같습니다.
flex-start: 교차 시작부터 시작하여 모든 하위 요소를 레이아웃합니다(기본값).
flex-end: 크로스엔드부터 시작하여 모든 하위 요소를 레이아웃합니다.
center: 모든 하위 요소를 중앙에 배치합니다.
기준선: 하위 요소의 레이아웃 방향이 컨테이너의 레이아웃 방향과 일치하지 않는 경우 이 값의 효과는 flex-start 속성 값의 효과와 동일합니다. 하위 요소의 레이아웃 방향이 컨테이너의 레이아웃 방향과 일치하는 경우 모든 하위 요소의 콘텐츠는 기준선을 따라 정렬됩니다.
stretch: 같은 행에 있는 모든 하위 요소의 높이가 최대로 조정됩니다. 하위 요소 높이가 지정되지 않은 경우 모든 하위 요소의 높이는 컨테이너 높이에 가장 가깝게 조정됩니다(요소 테두리와 패딩을 고려할 때 테두리 너비와 패딩이 모두 0인 경우 컨테이너 높이와 동일함). 컨테이너 높이).
위 속성값의 차이점은 아래 그림과 같습니다. (회색은 공백부분을 나타냅니다.)
align-self 속성과 align-items 속성의 차이점은 align-items는 컨테이너 요소의 스타일 속성으로 지정되며, 모든 하위 요소의 정렬 align-self 속성은 특정 하위 요소의 스타일 속성으로 지정되며 이러한 하위 요소의 정렬을 개별적으로 지정하는 데 사용됩니다. 예를 들어 컨테이너 요소의 align-items 속성 값을 center(가운데 정렬)로 지정한 후 첫 번째 자식 요소의 align-self 속성 값을 flex-start(교차 시작 끝에서 정렬)로 지정할 수 있습니다. 지정할 수 있는 값은 다음과 같습니다.
auto: 상위 요소의 align-items 속성 값 상속
flex-start
flex-end
중심
기준선
스트레치
align-content 속성
여러 줄 레이아웃을 수행할 때 align-content 속성을 사용하여 각 행의 정렬을 지정할 수 있습니다. 이 속성과 align-items 속성의 차이점은 align-items 속성은 하위 요소의 정렬을 지정하는 데 사용되고 align-content 속성은 행 정렬을 지정하는 데 사용된다는 것입니다. 지정할 수 있는 속성값은 다음과 같습니다.
flex-start: 교차 시작부터 모든 행을 레이아웃합니다.
flex-end: 크로스엔드부터 시작하여 모든 행을 레이아웃합니다.
center: 모든 행을 중앙에 배치합니다.
space-between: 첫 번째 줄을 교차 시작에 배치하고, 마지막 줄을 교차 끝에 배치하고, 빈 부분을 행 사이에 균등하게 분배합니다.
space-around: 교차 시작과 첫 번째 줄 사이, 각 줄 사이, 마지막 줄과 교차 끝 사이에 공백을 균등하게 분배합니다.
위 속성값의 차이점은 아래 그림과 같습니다. (회색은 공백부분을 나타냅니다.)

PHP는 동적 웹 개발 및 서버 측 응용 프로그램에 사용되는 서버 측 스크립팅 언어입니다. 1.PHP는 편집이 필요하지 않으며 빠른 발전에 적합한 해석 된 언어입니다. 2. PHP 코드는 HTML에 포함되어 웹 페이지를 쉽게 개발할 수 있습니다. 3. PHP는 서버 측 로직을 처리하고 HTML 출력을 생성하며 사용자 상호 작용 및 데이터 처리를 지원합니다. 4. PHP는 데이터베이스와 상호 작용하고 프로세스 양식 제출 및 서버 측 작업을 실행할 수 있습니다.

PHP는 지난 수십 년 동안 네트워크를 형성했으며 웹 개발에서 계속 중요한 역할을 할 것입니다. 1) PHP는 1994 년에 시작되었으며 MySQL과의 원활한 통합으로 인해 개발자에게 최초의 선택이되었습니다. 2) 핵심 기능에는 동적 컨텐츠 생성 및 데이터베이스와의 통합이 포함되며 웹 사이트를 실시간으로 업데이트하고 맞춤형 방식으로 표시 할 수 있습니다. 3) PHP의 광범위한 응용 및 생태계는 장기적인 영향을 미쳤지 만 버전 업데이트 및 보안 문제에 직면 해 있습니다. 4) PHP7의 출시와 같은 최근 몇 년간의 성능 향상을 통해 현대 언어와 경쟁 할 수 있습니다. 5) 앞으로 PHP는 컨테이너화 및 마이크로 서비스와 같은 새로운 도전을 다루어야하지만 유연성과 활발한 커뮤니티로 인해 적응력이 있습니다.

PHP의 핵심 이점에는 학습 용이성, 강력한 웹 개발 지원, 풍부한 라이브러리 및 프레임 워크, 고성능 및 확장 성, 크로스 플랫폼 호환성 및 비용 효율성이 포함됩니다. 1) 배우고 사용하기 쉽고 초보자에게 적합합니다. 2) 웹 서버와 우수한 통합 및 여러 데이터베이스를 지원합니다. 3) Laravel과 같은 강력한 프레임 워크가 있습니다. 4) 최적화를 통해 고성능을 달성 할 수 있습니다. 5) 여러 운영 체제 지원; 6) 개발 비용을 줄이기위한 오픈 소스.

PHP는 죽지 않았습니다. 1) PHP 커뮤니티는 성능 및 보안 문제를 적극적으로 해결하고 PHP7.x는 성능을 향상시킵니다. 2) PHP는 최신 웹 개발에 적합하며 대규모 웹 사이트에서 널리 사용됩니다. 3) PHP는 배우기 쉽고 서버가 잘 수행되지만 유형 시스템은 정적 언어만큼 엄격하지 않습니다. 4) PHP는 컨텐츠 관리 및 전자 상거래 분야에서 여전히 중요하며 생태계는 계속 발전하고 있습니다. 5) Opcache 및 APC를 통해 성능을 최적화하고 OOP 및 설계 패턴을 사용하여 코드 품질을 향상시킵니다.

PHP와 Python에는 고유 한 장점과 단점이 있으며 선택은 프로젝트 요구 사항에 따라 다릅니다. 1) PHP는 웹 개발, 배우기 쉽고 풍부한 커뮤니티 리소스에 적합하지만 구문은 현대적이지 않으며 성능과 보안에주의를 기울여야합니다. 2) Python은 간결한 구문과 배우기 쉬운 데이터 과학 및 기계 학습에 적합하지만 실행 속도 및 메모리 관리에는 병목 현상이 있습니다.

PHP는 동적 웹 사이트를 구축하는 데 사용되며 해당 핵심 기능에는 다음이 포함됩니다. 1. 데이터베이스와 연결하여 동적 컨텐츠를 생성하고 웹 페이지를 실시간으로 생성합니다. 2. 사용자 상호 작용 및 양식 제출을 처리하고 입력을 확인하고 작업에 응답합니다. 3. 개인화 된 경험을 제공하기 위해 세션 및 사용자 인증을 관리합니다. 4. 성능을 최적화하고 모범 사례를 따라 웹 사이트 효율성 및 보안을 개선하십시오.

PHP는 MySQLI 및 PDO 확장 기능을 사용하여 데이터베이스 작업 및 서버 측 로직 프로세싱에서 상호 작용하고 세션 관리와 같은 기능을 통해 서버 측로 로직을 처리합니다. 1) MySQLI 또는 PDO를 사용하여 데이터베이스에 연결하고 SQL 쿼리를 실행하십시오. 2) 세션 관리 및 기타 기능을 통해 HTTP 요청 및 사용자 상태를 처리합니다. 3) 트랜잭션을 사용하여 데이터베이스 작업의 원자력을 보장하십시오. 4) SQL 주입 방지, 디버깅을 위해 예외 처리 및 폐쇄 연결을 사용하십시오. 5) 인덱싱 및 캐시를 통해 성능을 최적화하고, 읽을 수있는 코드를 작성하고, 오류 처리를 수행하십시오.

PHP에서 전처리 문과 PDO를 사용하면 SQL 주입 공격을 효과적으로 방지 할 수 있습니다. 1) PDO를 사용하여 데이터베이스에 연결하고 오류 모드를 설정하십시오. 2) 준비 방법을 통해 전처리 명세서를 작성하고 자리 표시자를 사용하여 데이터를 전달하고 방법을 실행하십시오. 3) 쿼리 결과를 처리하고 코드의 보안 및 성능을 보장합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
