當前位置:首頁 » 編程語言 » qt和php

qt和php

發布時間: 2023-01-11 16:22:05

1. 用QT怎麼打開一個已經做好了的 php網頁

方法不止一個
1、使用QWebView
QWebView *view = new QWebView();
view->load(QUrl("網址"));
view->show();
另外.pro文件中要加一行:
QT += webkit
2、使用WinAPI中的WinExec函數:
WinExec("explorer.exe 網址",SW_SHOW);

2. 使用QT做界面該怎麼下手呀 我從來沒用過QT 希望你幫忙指點一下,真的謝謝了

首先你要熟悉C++,如果你不熟悉C++,那麼看Qt會異常的吃力。
我假設你已經熟悉C++與面向對象的知識了,用Qt做界面的話,可以使用代碼編寫界面,也可以使用Qt軟體自帶的designer直接把所需要的控制項拖進去,然後可以通過編譯器自動生成所相應的代碼,生成的代碼會把你所需要使用的指針傳給你,這樣你就可以操作界面上的控制項了。
推薦閱讀Qt自帶的assistant,如果對閱讀英語感覺吃力,可以買《精通Qt4編程》閱讀,但是其實上面都是翻譯的assistant文檔。
Qt中文論壇不錯,可以去學習很多基礎知識與技巧:http://www.qtcn.org/bbs/index.php?m=bbs

3. 常見的文件格式有哪些

常見的文件格式有:
A
AAC:MPGE-4高級音頻編碼
ACC:蘋果設備的專屬音樂格式
ACE:Ace壓縮檔案格式
ACT:Microsoft office助手文件
AIF,AIFF:音頻互交換文件,Silicon Graphic and Macintosh應用程序的聲音格式
ANI:Windows系統中的動畫游標
APK:AndroidPackage /Android(安卓)安裝包,APK是類似Symbian Sis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機中執行即可安裝
APS:開發環境使用的資源文件,若要修改資源需要修改3個文件,.aps文件.rc文件 Resource.h
ARC:LH ARC的壓縮檔案文件
ARJ:Robert Jung ARJ壓縮包文件
ASD:Microsoft Word的自動保存文件;Microsoft高級流媒體格式(microsoft advanced streaming
format,ASF)的描述文件;可用NSREX打開 Velvet Studio例子文件
ASF:Microsoft高級流媒體格式文件
ASM:匯編語言源文件,Pro/E裝配文件
ASP:動態網頁文件;ProComm Plus安裝與連接腳本文件;Astound介紹文件
AST:Astound多媒體文件;ClarisWorks「助手」文件
avi:Windows視頻文件
Axx:ARJ壓縮文件的分包序號文件,用於將一個大文件壓至幾個小的壓縮包中(xx取01-99的數字)
A3L:Authorware 3.x庫文件
A4L:Authorware 4.x庫文件
A5L:Authorware 5.x庫文件
A3M,A4M:Authorware Macintosh未打包文件
A3W,A4W,A5W:未打包的Authorware Windows文件
B
BAK:備份文件
BAS:Visual Basic Mole VB6模塊文件
BAT:批處理文件
BDICT:網路輸入法詞庫文件
BIN:二進制文件,其用途依系統或應用而定
BINHex:蘋果的一種編碼格式
BMP:Windows或OS/2點陣圖文件
BOOK:Adobe FrameMaker Book文件
BOX:Lotus Notes的郵箱文件
BPL:Borlard Delph 4打包庫
BPS:網路輸入法皮膚文件
BSP:Quake圖形文件
BUN:CakeWalk 聲音捆綁文件(一種MIDI程序)
C
C:C代碼文件
C0l:台風波形文件
CAB:Microsoft壓縮檔案文件
CAD:Softdek的Drafix CAD文件
CAM:Casio照相機格式
CAP:壓縮音樂文件格式
CAS:逗號分開的ASCⅡ文件
CCB:Visual Basic動態按鈕配置文件
CCH:Corel圖表文件
CCO:CyberChat數據文件
CCT:Macromedia Director Shockwave投影
CDA:CD音頻軌道
CDF:Microsoft頻道定義格式文件
CDI:Philip的高密盤交互格式
CDM:Visual dBASE自定義數據模塊文件
CDR:CorelDRAW繪圖文件;原始音頻CD數據文件
CDT:CorelDRAW模板
CDX:CorelDRAW壓縮繪圖文件;Microsoft Visual FoxPro索引文件
CFG:配置文件
CGI:公共網關介面腳本文件
CGM:計算機圖形元文件
CH:OS/2配置文件
CHI:.CHM文件的一個索引,用來支持對應的.CHM文件中的搜索功能,要和同名的.CHM文件放到一起用
CHK:由Windows磁碟碎片整理器或磁碟掃描保存的文件碎片
CHM:HTML格式的幫助文檔
CHP:Ventura Publisher章節文件
CHR:字元集(字體文件)
CHT:ChartViem文件;Harvard Graphics矢量文件
CIF:Adaptec CD 創建器 CD映像文件
CIL:Clip Gallery下載包
CIM:SimCity 2000文件
CIN:OS/2改變控制文件用於跟蹤INI文件中的變化
CLASS:java類文件
CLP:Windows 剪貼板文件
CLL:Crick Software Clicker文件
CLS:Visual Basic類文件
CMD:Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件
COM:操作系統中的二進制可執行文件,可執行文件分兩種一種是後輟名為.COM另一種就是.EXE 了,.COM一般用於DOS。
CPI:Microsoft MS-DOS代碼頁信息文件
CPL:控制面板擴展名,Corel顏色板
CPP:C++代碼文件
CPR:Corel提供說明書文件
CPT:Corel 照片-繪畫圖像
CSS:層疊樣式表文檔,配合HTML使用,單獨專門定義樣式表
CST:Macromedia Director Cast文件
CSV:Comma Separated Value逗號分隔值,通常都是純文本文件
CTL:Visual Basic User Control VB6.0用戶自定義控制項
CTX:Visual Basic User Control Binary FileVB6.0用戶自定義控制項二進制緩存文件
CUR:Windows游標文件
D
DAT:數據流格式,DAT文件也是MPG格式的,是VCD刻錄軟體將符合VCD標準的MPEG-1文件自動轉換生成的。也有數據文件的後綴名為.DAT,文件格式不確定,任何文件的後綴名都可以設為.DAT,因為讀取數據不是從後綴名判斷的,而是從文件格式判斷
DB:資料庫文件,Thumbs.db是縮略圖緩存
DBF:dBASE文件,一種由Ashton-Tate創建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和類似資料庫或與資料庫有關產品識別;可用數據文件(能被Excel
97打開);Oracle 8.1.x表格空間文件
DBX:DataBearn圖像;Microsoft Visual FoxPro表格文件
DCF:數碼照相機統一記錄格式,DCF 也有音頻格式
DCT:Microsoft Visual FoxPro資料庫容器
DCU:Delphi編譯單元文件
DCX:Microsoft Visual FoxPro資料庫容器;基於PCX的傳真圖像;宏
DIR:MacromediaDirector文件
DLF:一種INI配置文件格式的語言文件
DLL:動態鏈接庫
DOC: Microsoft Word 2003文檔文件
DOCX:Microsoft Word 2007文檔文件
Perfect文檔、Microsoft:Word文檔;DisplayWrite文檔
DOT:Microsoft Word文檔模板
DPL:Borland Delph 3壓縮庫
DRV:驅動程序
DRW:Micrografx Designer/Draw;Pro/E繪畫文件
DSF:Micrografx Designer VFX文件
DSG:DOOM保存的文件
DSM:Dynamic Studio音樂模塊(MOD)文件
DSP:Microsoft Developer Studio工程文件
DSQ:Corel QUERY(查詢)文件
DST:刺綉機圖形文件
DSW:Microsoft Developer Studio工作區文件
DTA:World Bank(世界銀行)的STARS數據文件
DTD:SGML文檔類型定義(DTD)文件
DTED:地面高度數字數據(圖形的數據格式)文件
DTF:Symantec Q&A相關的資料庫數據文件
DTM:DigiTrakker模塊文件
DUN:Microsoft拔號網路導出文件
DV:數字視頻文件(MIME)
DWG:AutoCAD工程圖文件;AutoCAD或Generic CADD老版本的繪圖格式
DXR:Macromedia Director受保護(不可編輯)電影文件
E
E:易語言代碼源文件
EC:易語言模塊文件
EDA:Ensoniq ASR磁碟映像
EDD:元素定義文檔(FrameMaker+SGML文檔)
EDE:Ensoniq EPS磁碟映像
EDK:Ensoniq KT磁碟映像
EDQ:Ensoniq SQ1/SQ2/Ks32磁碟映像
EDS:Ensoniq SQ80磁碟映像
EDV:Ensoniq VFX-SD磁碟映像
EFA:Ensoniq ASR文件
EFE:Ensoniq EPS文件
EFK:Ensoniq KT文件
EFQ:Ensoniq SQ1/SQ2/Ks32文件
EFS:Ensoniq SQ80文件
EFV:Ensoniq VFX-SD文件
EMD:ABT擴展模塊
EMF:Windows增強元文件
EML:Microsoft Outlook Express郵件消息(MIME RTC822)文件
EOT:是一種壓縮字型檔,目的是解決在網頁中嵌入特殊字體的難題,目前只有微軟的IE瀏覽器支持
EXE:可執行文件(程序)
F
FAV:Microsoft Outlook導航條
FAX:傳真類型圖像
FCD:虛擬CD-ROM
FDF:Adobe Acrobat表單文檔文件
FLA:Macromedia Flash動畫源文件
FLAC:無損音頻壓縮編碼
FLV:Flash視頻文件
FNE:易語言的其中一種支持庫文件,用於在易語言中裝載和提供對應的命令和方法,易語言支持庫還有FNR格式、NPK格式以及LPK文件包等。
FND:Microsoft Explorer保存的搜索文件(Find applet)
FNR:FNR文件是易語言的其中一種支持庫文件,用於在易語言中裝載和提供對應的命令和方法,但是與FNE格式支持庫不同的是,FNR不帶編輯信息,有運行支持代碼的支持庫。
FON:系統字體
FRM:Visual Basic Form File VB6.0窗體文件
FRT:Microsoft FoxPro報表文件
FRX:Visual Basic表單文本;Microsoft FoxPro報表文件
FXP:經Microsoft FoxPro編譯的源文件
G
GDM:鈴聲、口哨聲和聲音板模塊格式
GetRight:GetRight未完成的下載文件
GHO:Norton 克隆磁碟映像
GID:Windows 95全局索引文件(包括幫助狀態)
GiF:動態圖片文件
GL:動畫格式
GRP:程序管理組
H
H:C/C++ Header 頭文件
HEX:Macintosh BinHex2.0文件
HLP:幫助文件;Date CAD Windows幫助文件
HPP:C++程序頭文件
HQX:Macintosh BinHex 4.0文件
HT:HyperTerminal(超級終端)
HTM,HTML:超文本文檔
HTT:Microsoft超文本模板
HTX:擴展HTML模板
I
ICO:Windows圖標
IDX:Microsoft FoxPro相關資料庫索引文件;Symantec Q&A相關資料庫索引文件;Microsoft Outlook
Express文件
IMG:GEM映像
INC:Include File 引用文件,ASP中也會用到
INF:Windows操作系統下用來描述設備或文件等數據信息的文件
INI:配置文件,ini文件格式適合程序記錄一些基本的配置設置
INP:Oracle 3.0版或早期版本的表單源代碼
INRS:INRS遠程通信聲頻
INS:InstallShield安裝腳本;X-Internet簽字文件;Ensoniq EPS字簇設備;Cell/ⅡMAC/PC抽樣設備
INT:中間代碼,當一個源程序經過語法檢查後編譯產生一個可執行代碼
IOF:Findit文檔
IQY:Microsoft Internet查詢文件
ISO:根據ISD 9660有關CD-ROM文件系統標准列出CD-ROM上的文件
ISP:X-Internet簽字文件
ISS:Inno Setup 項目腳本文件 (Inno Setup 是一種安裝包生成工具)
IST:數字跟蹤設備文件
ISU:InstallShield卸裝腳本
IT:脈沖跟蹤系統音樂模塊(MOD)文件
ITI:脈沖跟蹤系統設備
ITS:脈沖跟蹤系統抽樣,Internet文檔位置
IV:Open Inventor中使用的文件格式
IVD:超過20/20微觀數據維數或變數等級文件
IVP:超過20/20的用戶子集配置文件
IVT:超過20/20表或集合數據文件
IVX:超過20/20微數據目錄文件
IW:Idlewild屏幕保護程序
IWC:Install Watch文檔
J
J62:Ricoh照相機格式
JAR:Java檔案文件(一種用於applet和相關文件的壓縮文件)
JAVA:Java源文件
JAVA:Java源文件
JFF,JFIF,JIF:JPEG文件
JPE,JPEG,JPG:JPEG圖形文件
JS:javascript源文件
JSP:HTML網頁,其中包含有對一個Java servlet的參考
K
KAR:卡拉OK MIDI文件(文本+MIDI)
KEY:授權文件
L
LAB:Visual dBASE標簽文件
LBT,LBX:Microsoft FoxPro標簽文件
LDB:Microsoft Access加鎖文件
LHA:LZH更換文件後綴
LIB:Windows系統中的庫文件,分為兩種,靜態庫與動態庫
LIC:License 用戶許可證書文件
LNK:快捷方式文件
LOG:日誌文件
LPK:LPK文件是易語言的其中一種支持庫安裝包,包含".FNE"、".FNR"、相關常式和文檔的全部或部分文件。用於在易語言中裝載和提供對應的命令和方法
LST:列表文件 /MASM Listing
LUA:LUA腳本語言文件
LZH:LH ARC壓縮檔案
M
M1V:MPEG相關文件(MIME"mpeg"類型)
M3D:Corel Motion 3D動畫文件
M3U:MPEG URL(MIME聲音文件)
MAM:Microsoft Access宏
MAQ:Microsoft Access查詢文件
MAR:Microsoft Access報表文件
MBX:Microsoft Outlook保存email格式;Eudora郵箱
MCW:Microsoft Word的Macintosh文檔
MDB:Microsoft Access資料庫
MDN:Microsoft Access空資料庫模板
MDW:Microsoft Access工作組文件
MID:MIDI音樂
MKV:視頻文件
MMM:Microsoft多媒體電影
MOV:QuickTime for Windows視頻文件
MP2:第二層MPEG音頻文件
MP3:第三層MPEG音頻文件
MP4:視頻或音頻文件
MPA:MPEG相關文件,MIME「mpeg類型」
MPE,MPEG,MPG:MPEG動畫文件
MPP:Microsoft工程文件;CAD繪圖文件格式
MPR:Microsoft FoxPro菜單(已編譯)
MSI:Windows 安裝器包
MSN:Microsoft 網路文檔;Descent Mission文件
N
NPK:NPK屬於易語言COM包裝支持庫,該支持庫是引用COM包裝庫生成的,例如WebBrowser、Windows媒體播放器。該擴展名格式支持庫可用記事本打開。
O
OBD:Microsoft Office活頁夾
OBJ:對象文件
OBZ:Microsoft Office活頁夾向導
OCX:Microsoft對象鏈接與嵌入定製控制項
ODS:Microsoft Outlook Express郵箱文件
OFT:Microsoft Outlook模板
OPX:OPL擴展DLL(動態鏈接庫)
OSS:Microsoft Office查找文件
OST:Microsoft Exchange / Outlook 離線文件
P
PAL:壓縮文件
PART:Go!Zilla部分下載文件
PAS:Pascal源代碼
PCS:PICS動畫文件
PDF:Adobe Acrobat
可導出文檔格式文件(可用Web瀏覽器顯示);Microsoft系統管理伺服器包定義文件;NetWare列印機定義文件
PEM:OpenSSL 使用 PEM 文件格式存儲證書和密鑰。PEM 實質上是 Base64 編碼的二進制內容,再加上開始和結束行BEGIN CERTIFICATE、ENDCERTIFICATE,在這些標記外面可以有額外的信息,如編碼內容的文字表示。文件是 ASCII 的,可以用任何文本編輯程序打開
PHP,PHP3:包含有PHP腳本的HTML網頁
PHTML:包含有PHP腳本的HTML網頁;由Perl分析解釋的HTML
PM5:Pagemaker 5.0文件
PM6:Pagemaker 6.0文件
PNG:可移植圖像文件
PPS:Microsoft Powerpoint幻燈片放映
PPT:Microsoft Powerpoint演示文稿
PRF:Windows系統文件,Macromedia導演設置文件
PSD:Adobe photoshop點陣圖文件
PSM:Protracker Studio模型格式;Epic游戲的源數據文件
PST:Microsoft Outlook個人文件夾文件
PWL:Windows 95口令列表文件
Q
QIF:QuickTime相關圖像(MIME);Quicken導入文件
QPYD:QQ拼音輸入法詞庫文件
QPYS:QQ拼音輸入法皮膚文件
QT,QTM:QuickTime電影
QTI,QTIF:QuickTime相關圖像
QTP:QuickTime優先文件
QTS:Mac PICT圖像文件;QuickTime相關圖像
QTX:QuickTime相關圖像
R
RA:RealAudio聲音文件
RAM:RealAudio元文件
RAR:Windows RAR壓縮文件
RC:Resource Script開發環境使用的資源文件,若要修改資源需要修改3個文件,.aps文件.rc文件 Resource.h
REC:錄音機宏;RapidComm聲音文件
REG:注冊表文件
REP:Visual dBASE報表文件
RES:Microsoft Visual Studio資源文件
RM:RealAudio視頻文件
RMF:Rich Map格式(3D游戲編輯器使用它來保存圖)
ROM:基於盒式磁帶的家庭游戲模擬器文件(來自Atari 2600、Colecovision、Sega、Nintendo等盒式磁帶里的ROM完全拷貝,在兩個模擬器之間不可互修改)
RTF:Rich Text Format 富文本格式(也有稱為多文本格式)
Rxx:多卷檔案上的RAR壓縮文件(xx=1~99間的一個數字)
S
SAV:游戲保存文件
SB:原始帶符號位元組(8位)數據
SBK:Creative Labs的Soundfont 1.0 Bank文件;(Soundb laster)/EMU SonndFont v1.x Bank文件
SBL:Shockwave Flash對象文件
SCC:Microsoft SourceSafe Status 在VB6.0中是管理記錄文件
SCF:Windows Explorer命令文件
SCH:Microsoft Schele+1
SCP:撥號網路腳本文件
SCR:Windows屏幕保護;傳真圖像;腳本文件
SFX:RAR自解壓檔案
SHTML:含有伺服器端包括(SSI)的HTML文件
SKN:皮膚文件,QQ拼音輸入法的皮膚源文件也是.skn
SLN:Microsoft Visual Studio Solution VS開發環境的解決方案文件
SPL:Shockwave Flash對象;DigiTrakker抽樣
sql:Informix SQL查詢;通常被資料庫產品用於SQL查詢(腳本、文本、二進制)的文件擴展名
STF:Microsoft 安裝文件
STM:.shtml的短後綴形式,含有一個服務端包括(SSI)的HTML文件;Scream Tracker V2音樂模塊(MOD)文件
STR:屏幕保護文件
SVG:一種用XML定義的語言,用來描述二維矢量及矢量/柵格圖形
SWA:在Macromedia導演文件(MP3文件)中的Shockwave聲音文件
SWF:Flash動畫文件
SYS:系統文件
T
T64:Commodore 64模擬器磁帶映像文件
TDF:Text Design File 是一個文字格式,或者是一個字幕文件格式
THEME:Windows 95桌面主題文件
TIF,TIFF:標簽圖像文件格式(TIFF)點陣圖
TLB:類似於.ocx,是一種ActiveX文件
TMP:Windows臨時文件
TORRENT:BT種子文件
TRM:終端文件
TTF:TrueTypeFont是Apple公司和Microsoft公司共同推出的字體文件格式
TXT:Windows文本文檔
TZ:老的壓縮格式文件
V
VBA:VBase文件
VBP:Microsoft Visual Basic工程文件
VBW:Microsoft Visual Basic工作區文件
VBX:Microsoft Visual Basic用戶定製控制項
VCXPROJ:VC++ Project / C++ 工程文件
VCXPROJ.FILTERS:VC++ Project Filters File / C++項目文件虛擬目錄
VCXPROJ.USER:Visual Studio Project User Options file / 項目用戶配置
VOB:DVD視頻文件
VQE,VQL:Yamaha Sound-VQ定位器文件
VQF:Yamaha Sound-VQ文件(可能出現標准)
VRF:Oracle 7配置文件
VSL:下載列表文件(GetRight)
W
WAB:Microsoft Outlook文件
WAD:包含有視頻、玩家水平和其他信息的DOOM游戲的大文件
WAL:Quake 2正文文件
WAV:Windows波形聲形
WBK:Microsoft Word備份文件
WFM:Visual dBASE Windows表單
WFN:在CorelDRAW中使用的符號
WIZ:Microsoft Word向導
WOFF:Web Open Font Format Web開放字體格式,是一種網頁所採用的字體格式標准
WRL:虛擬現實模型
WWL:Microsoft Word內插器文件
X
XLK:Microsoft Excel備份
XLL:Microsoft Excel內插器文件
XLM:Microsoft Excel宏
XLS:Microsoft Excel 2003電子表格
XLSB:Microsoft Excel 二進制電子表格
XLSX:Microsoft Excel 2007電子表格
XLT:Microsoft Excel模板
XLV:Microsoft Excel VBA模塊
XLW:Microsoft Excel工作簿/工作區
XML:可擴展標記語言
Z
ZAP:Windows軟體安裝配置文件
zip:Windows RAR 壓縮文件
000-999:用於為老版本(或備份)文件編號(比如:被安裝程序改變的CONFIG.SYS文件);又可用於為小范圍的PC應用程序的多個用戶相關數據文件編號
12M:Lotus 1-2-3 97 SmartMaster文件
123:Lotus 1-2-3 97文件
2D:VersaCAD的2維繪畫文件
2GR,3GR:在Windows之下的VGA圖形驅動程序/配置文件
386:在386或更高級處理器上使用的文件
3D:VersaCAD的3維繪畫文件
3DM:3D NURBS建模器,Rhino
3DS:3D Studio(DOS下)格式文件
4GE:Informix 4GL編譯後代碼
4GL:Informix 4GL源代碼

4. QT好像只能和c++結合應用是嘛能不能和php結合

這個啊。。。QT是基於c++的圖形開發工具。。不知道能不能和PHP喔

5. Qt+MySQL和Html+CSS+Javascript+Apache+PHP+MySQL 哪種開發難度低一點

個人建議用qt,會Python的話可以用pyqt5,走前端要學的東西是不是太多了?如果只是開發界面的話,用csharp也比較簡單。

6. qt里的text browser 控制項,我想每隔一段時間輸出一段文本,怎麼實現每段文本後的自動換行

編寫讀取數據的程序:

建立一個文本文件,命名為english.dat,加入源代碼如下:

<?php
$filename = 』english.dat』; //數據文件名
$refresh = 900; //更新周期(以秒為單位,可根據需要自行調整)
$data = file($filename); //將數據文件裝入一個數組
$num_lines = count($data); //數據文件行數,也就是記錄條數 mt_srand(floor(time() / $refresh));
$id = mt_rand(0, $num_lines - 1); //隨機選擇一條記錄號
$content = chop($data[$id]); //根據記錄號選擇相應的數據,並截去最後的換行符

echo "document.write("$content");"; //用javascript形式輸出數據
?>

將english.dat和english.php存檔,上傳至伺服器的同一個目錄下。

最後一道工序就是讓你的網頁調用這個php程序來顯示內容了。因為php運行的結果是以javascript形式輸出的,我們只要把這段php當成一段javascrupt來調用即可,方法是:用記事本或網頁編輯軟體打開你要修改的html文件,在你想讓動態內容顯示的位置加入以下代碼:

<script language="javascript" src="english.php"></script>

注意,如果你修改的html文件和english.php不在一個目錄下,要在src="..."里註明english.php的相對路徑。

把這個修改後的html文件上傳至伺服器,在瀏覽器中打開。如果你每一步做得都正確,應該就可以看到數據文件中的內容顯示出來了!過15分鍾刷新一下頁面看看,是不是顯示的內容變化了?而你並沒有為更新這些內容做什麼額外的勞動,php程序為你做了。

7. 請問,C,C++,PHP, VB,這些語言的區別,可以簡明扼要說一下么

這些都是編寫應用程序的語言

C在
C/C++/PHP/JAVA/C#/J#/QT等語言中有著"祖先"的地位,他們的語法結構也不僅相同,最大的不同是C是面向過程的編程語言,而C++/C#/JAVA等是面向對象的
(PHP我不太了解)

你給這4樣當中,C/C++通常用來做底層開發
C++也可以用來做桌面應用程序(如VC++)
,PHP用來做WEB應用程序(也就是網站),VB用來做桌面應用程序(VB.NET桌面\WEB都可以)

8. 求一點PHP對TXT文件和文章的操作教程

PHP教程.安裝PHP
安裝PHP
本章將按下列步驟編譯安裝以下軟體:
* Apache v.1.3.4 -- 世界上最流行的Web伺服器。
* gcc v.2.8.1 -- 來源於GNU的C和C++編譯器。
* MySQL v.3.22.16b-gamma -- 世界范圍內許多人使用的資料庫。
* PHP v.3.0.11 -- 本書所主要介紹的軟體。從http://www.php.net(或此站點的鏡象站點)直接下載可以得到較新的版本。本章的其它步驟仍然適用。
* expact -- 用於讀取和處理XML文檔的函數庫。
* phplib -- 用於進行會話管理的PHP函數庫。
* libiodbc -- 主要用於存取在非UNIX計算機中資料庫的ODBC函數庫。
* MyODBC -- PHP、iODBC和MySQL之間的函數庫。
即便如此,本章也並不是介紹編譯應用程序所需要的那些指令,而只是簡單的進行描述。總之,本書的重點是介紹PHP語言,而不是c語言。每一個應用程序的編譯對我來說都十分清楚,希望每個讀者也能沒有困難的進行編譯。假如你確實碰到了一些問題,可以在某個IRC頻道中有禮貌的詢問,或者可以嘗試使用新聞組(可以從http://www.dejanews.com訪問)得到幫助來解決問題。然而,最好的幫助還是來自http://www.php.net 上的PHP郵件列表。
在開始編譯過程之前,讓我們先討論一下如何從錯誤中恢復。在得到有關錯誤的幫助以後,可以採用以下的命令重新初始化源碼目錄:
* rm config.cache--幾乎所有的linux應用程序都使用configure命令來檢查自己的系統,以尋找有關如何剪裁編譯過程的信息。檢查的結果將存貯在一個名為config.cache的文件中。如果移走此文件,將迫使配置程序從頭開始重新檢查系統。
* make distclean--所有的用C語言編寫的Linux應用程序都是用make程序編譯的。make程序會尋找每一個源文件,以確認是需要編譯還是已經編譯過的。make distclean命令可以「重置」所有的源程序,以便能重新編譯它們。
* make clean--有的應用程序不支持make distclean命令,而用make clean命令來代替。make clean命令「重置」所有的源程序,以便能重新編譯它們。
即使要安裝的一些應用程序不支持以上的每個命令,但是試一下這些命令也不會有什麼害處。

注意:Red Hat v5.2使用glibc庫。如果用戶從互聯網中下載或更新在本章中安裝的程序時,必須知道glibc的信息。使用者可以使用rpm -q glibc命令來查出已經安裝的glibc庫的版本號。在作者的系統中,使用rpm -q glibc命令將顯示glibc-2.0.7.29。

2.1 基本概念
也許讀者以前從沒有編譯過Linux應用程序,在這里介紹一些基本概念,以便在出現問題時有可能診斷出問題所在。
tar
tar,即tape archiver,它可以把幾個文件組合成一個文件,並可以選擇是否進行壓縮。這個命令過去通常用來進行備份,以便使數據存儲在磁帶中。當tar文件被壓縮時,它們有一個.gz的後綴;當tar文件沒有壓縮時,它們有一個.tar的後綴。
gcc
gcc 是GNU的C編譯器。它的工作是把人可以看懂的源代碼文件編譯成機器可以讀懂的目標文件。C源文件通常有.c的後綴名,目標文件通常有.o的後綴名。如果編譯工作不能正常進行,就是碰到了一個編譯期的錯誤,或者說:語法錯誤。在大多數情況下,不徹底的編譯通常是編譯器找不到一個或幾個包含文件而產生的。包含文件都有一個.h的擴展名,通常用來定義不同的系統信息,以及將多個不同的.c文件所共有的信息收集在一起。
make
make是一個常用的工具程序,是用來幫助進行編譯的。它的工作是用來只編譯那些還沒有編譯過的源文件。編譯.c文件將生成一個.o文件,如果.c文件比.o文件更新,也就是說到上次編譯之前,源文件被編輯過,那麼make將會重新編譯.c文件。make指令一般是尋找一個Makefile文件,在這個文件中包含有一個或多個能執行的目標,例如,make clean會告訴make執行清除目標。
ld
ld是GNU的鏈接程序。它的工作是把所有的目標文件和庫鏈接起來,創建一個單一的可執行文件。幸運的是,基本上不用手工運行這個程序,因為Makefile將會考慮到所有的編譯細節。
ldconfig
ldconfig會為在多個庫目錄(在/etc/ld.so.conf中指定)中尋找共享庫。共享庫常被多個的應用程序使用,它們的文件名中的某個地方有.so,例如,libqt.so.1.42是一個共享庫。在編譯完畢之後,有可能需要在/etc/ld.so.conf文件中增加一個目錄,並且運行ldconfig -v命令。
./configure
configure將會在計算機中尋找一些關鍵信息,例如,安裝的是哪一種C編譯器,包含文件在哪裡等等。然後,configure將會按照所用的計算機配置重新修改Makefile文件。應該使用./configure來在當前目錄下運行程序,以避免偶然運行$PATH環境變數中的目錄下的其他程序。
符號連接
符號連接允許使用者可以為一個已經現有的文件指定另一個不同的名字。例如,使用者有可能想把一個名為libqt.so.1.42的文件稱為libqt.so.1。符號連接基本上可以使用戶把一個文件復制到另一個不同的目錄下面,但事實上並沒有真正復制此文件。第二個文件實例只是簡單地指向第一個文件實例。使用符號連接至少可以有兩點好處,第一點是符號連接可以節省硬碟空間,少到只有16位元組;第二點有一點微妙,讓我們先看一下一個名為libqt.so.1且指向libqt.so.1.42的符號連接。如果需要升級到libqt.so.1.88,該怎麼辦呢?用戶只要簡單地改變符號連接,使libqt.so.1指向libqt.so.1.88,而非libqt.so.1.42即可。這意味著涉及到libqt.so.1的程序將自動地使用這個庫的新版本。按照慣例,符號連接常用於完整的發布版本號。換句話說,libqt.so.1.88和libqt.so.2.32應該有兩個不同的動態連接(分別為libqt.so.1和libqt.so.2)。
2.2 編譯前的准備工作
以下步驟將為系統做好編譯前的准備工作。
1. mkdir /usr/local/src -- 我選用/usr/local樹作為所安裝應用程序的根目錄。其他人可能選用/usr/opt、/opt或/var目錄。為了更方便的按照本章中的指令操作,請選用/usr/local目錄作為根目錄。當編譯完成以後,用戶可以把這些文件復制到不同的目錄中。

注意:為了能完成本章中的其它步驟,使用者必須具備root許可權。

2. cd /usr/local/src--轉到源文件目錄下。
3. 下載以下文件(可以從http://www.mtolive.com/phpbook站點下載),或者從本書隨機附帶的光碟中,復制這些文件到/usr/local/src目錄下:
. apache_1.3.4.tar.gz
. gcc-2.8.1.tar.gz
. mysql-3.22.16b-gamma.tar.gz
. php-3.0.11.tar.gz
. expat.tar.gz
. phplib.tar.gz
. libiodb-2.50.3
. myodbc-2.50.24-src
4. 使用tar命令解壓縮以上文件。tar的x選項為解開選項,v選項將在屏幕上顯示文檔中解出來的文件名,z選項為解壓縮選項,f選項用於在命令行中指定.tar文件名。
tar xvzf apache_1.3.4.tar.gz
tar xvzf gcc-2.8.1.tar.gz
tar xvzf mysql-3.22.16b-gamma.tar.gz
tar xvzf php-3.0.11.tar.gz
tar xvzf expat.tar.gz
tar xvzf phplib.tar.gz
5. gcc -v
確定系統中現有gcc的版本。如果你的系統不是v2.7.2.3,在下面的操作步驟中採用你的gcc版本號替換v.2.7.2.3。
6. cp `which gcc` /usr/bin/gcc-2.7.2.3
如果需要,把現有的gcc備份,以便以後使用。Linux的另一個優點是可以很容易在目錄下存儲一個程序的多個版本。
7. httpd -v
確定系統中的Apache的版本號。如果你的系統中的Apache不是v1.3.4,在下面的操作步驟中使用你的版本號替換v1.3.4。
8. mv `which httpd` /usr/sbin/httpd-1.3.4
如果需要,把現有的Apache備份,以便以後使用。

2.3 編譯C編譯器gcc
使用者應該安裝、編譯程序的第一個程序就是C編譯器。隨Red Hat v5.2附帶的C編譯器是gcc v2.7.2.3,由於它的版本比較低,以至於不能正確的編譯PHP。然而gcc v.2.7.3可以用來編譯版本較高的gcc v2.8.1。
編譯新版本的gcc需要執行:
1. cd /usr/local/src/gcc-2.8.1
轉到gcc的頂級目錄下。
2. ./configure -prefix=/usr/local/gcc
運行配置程序,強制安裝程序在後面的安裝過程中使用/usr/local/gcc作為gcc的安裝目錄。
3. make bootstrap LANGUAGES="c c++" BOOT_CFLAGS="-g -02"
編譯新的C和C++編譯器。
4. make install LANGUAGES="c c++" BOOT_CFLAGS="-g -02"
安裝新的C和C++編譯器。
5. mv /usr/local/gcc/bin/gcc /usr/local/gcc/bin/gcc-2.8.1
把新的gcc編譯器重新命名,使它的名字中含有版本號。
6. ln -s \
/usr/local/gcc/bin/gcc-2.8.1 \
/usr/bin/gcc-
給新編譯過的gcc可執行文件創建一個符號連接/usr/bin/gcc。
7. gcc -v
顯示gcc的版本號。如果編譯和安裝都正常的話,將顯示v.2.8.1。

2.3 編譯MySQL
現在來編譯MySQL。在編譯工作完成之後,就可以使用MySQL的應用程序來測試安裝。
1. cd /usr/src/mysql-3.22.16a-gamma
轉到MySQL的頂級目錄下。
2. ./configure --prefix=/usr/local/mysql
運行配置程序,強制安裝程序在後面的安裝過程中使用/usr/local/mysql作為MySQL的安裝目錄。
3. make
編譯MySQL。
4. make install
安裝MySQL。
5. echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
將MySQL庫所在的目錄添加進配置文件中。這樣,當Linux啟動或者執行ldconfig命令時,將會在該配置文件中的目錄里搜索庫文件。
6. ldconfig -v | grep libmysqlclient
ldconfig命令能讀取/etc/ld.so.conf文件中列出的目錄,並對在那些目錄里找到的庫文件進行緩沖。grep命令在ldconfig命令的大量輸出結果中查找MySQL庫文件,並限定文本以類似下面方式進行顯示:
libmysqlclient.so.6 => libmysqlclient.so.6.0.0.
7. echo "/usr/local/mysql/bin/safe_mysqld > /dev/null &" >> /etc/rc.d/rc.local
將MySQL啟動指令添加到/etc/rc.d/rc.local文件中,這樣每次啟動Linux後就會自動運行MySQL。
8. ./scripts/mysql_install_db
初始化資料庫。
9. /usr/local/mysql/bin/safe_mysqld > /dev/null &
啟動MySQL伺服器作為後台程序,為了測試安裝,MySQL伺服器必須啟動。
10. ln -s \
/usr/local/mysql/bin/mysql \
/usr/bin/mysql
我比較喜歡在/usr/bin目錄下為安裝目錄建立符號鏈接。這一方法減少了PATH環境變數中的目錄數量,還可以將不希望其他人運行的MySQL工具程序隱藏起來,(例如,mysqladmin命令)。另一方法是將命令PATH="$PATH:/usr/local/mysql/bin"放在/etc/profile文件中。以上兩種方法都很可以採用。
11. ln -s\
/usr/local/mysql/bin/mysqlshow \
/usr/bin/mysqlshow
該指令是讓一般用戶都可以運行mysqlshow命令。

2.4 測試MySQL
在繼續Apache和PHP編譯之前,首先來測試MySQL的安裝是否成功。正式發布的MySQL帶有許多有用的工具,這里我們只使用mysql和mysqlshow命令來進行測試。(如果對資料庫不熟悉,請不用擔心,諸如用戶、表、記錄等資料庫的概念將在第六章「資料庫和SQL」中加以介紹。)
mysqladmin的作用是建立和刪除資料庫、檢查SQL的狀態,以及其他一些用途。首先,通過檢查版本號以確認是否已經正確安裝了MySQL:

>PATH="usr/local/mysql/bin:$PATH"
>mysqladmin version
Ver 7.8 Distrib 3.22.16a-gamma, for pc-linux-gun on i686 TCX Datakonsult AB, by Monty
Server version 3.22.16a-gamma
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /tmp/mysql.sock
Uptime: 2 hours 30 min 39 sec

Threads: 1 Questions: 7 Slow queries: 0
Opens: 6 Flush tables: 1 Open tables: 2

可以用以下命令觀看mysqladmin的所有功能.

mysqladmin --help | less

也許mysqlshow是更讓人激動的工具,它能夠列出資料庫、表和欄位名,如下所示:

清單2.1 mysqlshow--顯示資料庫,表和欄位名清單

Page 18(第13行)-19(倒數第10行) , 清單 2.1

最後要介紹的MySQL工具是mysql,這個程序將深入到MySQL的中心,並且可以使你可以立刻在Linux命令行提示下執行SQL語句。在shell模式下運行mysql。

Page 19(倒數第5行)-20(倒數第5行)

小心:設置密碼要使用password()函數。如果需要進一步了解,請查閱MySQL文檔。

小心:在系統進入正常工作模式的時候,請選用一個比「password」更好的root密碼。

2.5 編譯iODBC和MyODBC
iODBC是一個實現開放性資料庫互連(Open Database connectivity)協議的函數庫。它主要用於連接運行於Microsoft Windows的資料庫引擎。
1. cd /usr/local/src/libiodbc-2.50.3
轉到iODBC目錄。
2. ./configure \
--prefix=/usr/local/iodbc \
--with-iodbc-inidir=/usr/local/etc
運行配置程序,並強制設置iODBC為安裝到目錄/usr/local/iodbc下。此外,應確認odbc的初始化文件為/etc/odbc.ini。
3. make
4. make install
把庫文件復制到目錄/usr/local/iodbc/lib下,並且把包含文件復制到目錄/usr/local/iodbc/include下。
5. cd /usr/local/src/myodbc-2.50.24
轉到MyODBC目錄下。
6. ./configure \
--prefix=/usr/local/myodbc \
--with-mysql-sources=/usr/local/mysql-3.22.16a-gamma \
--with-odbc-ini=/etc/odbc.ini \
--with-iodbc=/usr/local/iodbc
運行MyODBC配置程序。
7. make
8. make install
把庫復制到目錄/usr/local/myodbc/lib下。
2.6 編譯PHP
編譯PHP比編譯以前的應用程序更復雜,這是因為編譯PHP事實上是expat、Apache和PHP的組合。編譯的結果將生成一個帶有PHP的Apache版本。為了要編譯PHP,可以採用以下步驟:
1. cd /usr/local/src/expat
轉到expat目錄。
2. make
編譯expat源文件。
3. 把以下命令加到Makefile文件中,必須保證在輸入ar和ralib之前使用的是Tab鍵。
libexpat.a: $(OBJS)
ar -rc $@ $(OBJS)
ranlib $@
4. make libexpat.a
把expat目標文件組合成庫文件。
5. mv libexpat.a /usr/local/lib
PHP配置文件在/usr/local/lib目錄下尋找libexpat.a文件。把libexpat.a文件移到PHP配置文件已知的目錄下,可以為以後的操作減少麻煩。
6. cd /usr/local/src/php-3.0.11
轉到PHP的頂級目錄下。
7. mkdir /usr/local/include/xml
確認/usr/local/include/xml目錄是存在的。
8. ln -s \
/usr/local/src/expat/xmltok/xmltok.h \
/usr/local/include/xml/xmltok.h
當能創建符號連接時,為什麼還要復制呢?
9. ln -s \
/usr/local/src/expat/xmlparse.h \
/usr/local/include/xml/xmlparse.h
這是PHP為了能夠正確地被編譯所需要的另一個包含文件。
10. cd /usr/local/src/apache_1.3.4
轉到Apache的頂級目錄下。
11. ./configure -prefix=/usr/local/apache
運行配置程序,強制設置Apache安裝目錄為/usr/local/apache。
12. cd /usr/local/src/php-3.0.11
轉到PHP的頂級目錄下。
13. ./configure \
--with-apache=../apache_1.3.4 \
--with-iodbc=/usr/local/iodbc \
--with-mysql=/usr/local/mysql \
--with-xml
運行配置程序,並且告訴配置程序支持Apache、MySQL和XML。
14. make
編譯PHP源文件。
15. make install
安裝已編譯的文件。PHP庫文件會被放在Apache的模塊目錄下,這樣可以在編譯Apache時能找到它們。
16. cd /usr/local/src/apache_1.3.4
轉到Apache的頂級目錄下。
17. ./configure \
--prefix=/usr/local/apache \
--active-mole=src/moles/php3/libphp3.a
再一次配置Apache,這次告訴Apache要載入PHP模塊。
18. make
編譯Apache源文件。
19. make install
安裝已編譯的文件。
20. mv \
/usr/local/apache/bin/httpd \
/usr/local/apache/bin/httpd-1.3.4
重新命名新創建的httpd可執行文件,這樣就能夠安裝多種版本。
21. ln -s \
/usr/local/apache/bin/httpd-1.3.4 \
/usr/sbin/httpd
建立一個指向新的可執行文件的符號鏈接。
22. httpd -v
證實可以訪問新的可執行文件。該命令的執行結果將顯示版本1.3.4,而且建立日期也應該正確無誤。
23. 編輯/usr/local/apache/conf/http.conf文件,搜索AddType並確認下列行未加註釋。
AddType application/x-httpd-php3 .phtml
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3-source .phps
24. 接著編輯/usr/local/apache/conf/http.conf文件,搜索DirectoryIndex並將index.php3放在行尾。
25. 創建一個名為/usr/local/local/php3.ini的文件,該文件應包含如下的命令行:
include_path=.:/usr/local/apache/php/
auto_prepend_file=/usr/local/apache/php/prepend.php3
track_vars = on
magic_quotes_gpc = on
sendmail_path /usr/sbin/sendmail -t
26. ln -s \
/usr/local/src/php-3.0.11/doc/manual.html \
/usr/local/src/php-3.0.11/doc/index.html
建立一個符號鏈接,這樣絕大多數Web瀏覽器就會正確地自動顯示PHP文件起始頁。
27. ln -s \
/usr/local/src/php-3.0.11/doc \
/usr/local/apache/htdocs/phpdocs
建立一個符號鏈接,這樣就可以通過http://localhost/phpdocs/, 來訪問PHP文檔。
28. 創建一個叫做/usr/local/apache/htdocs/robots.txt的文件,這樣就可避免搜索引擎為PHPLIB,phpMyAdmin和PHP文件建立索引,新創建的文件應包括如下設置行:
#robots.txt for (hostname)
User-agent *
Disallow: /phpdocs/
Disallow: /php/
Disallow:/phpMyAdmin/

2.7 安裝PHPLIB
在閱讀第15章「處理並發的訪問」之前,應先安裝PHPLIB,可以按照下列步驟進行安裝:
1. 以root用戶或其他任何可以在/usr/local/apache目錄下寫文件的用戶注冊。
2. cd /usr/local/apache/
在開始下載文件之前,進入到Web伺服器的頂級目錄下。
3. 從如下Web網址下載最新版本的文件,注意gz後綴的文件名,以免它的文件名phplib.tar.gz被改動。
http://phplib.shonline.de/
4. tar xv2f phplib.tar.gz
解壓縮PHPLIB模塊。
5. 編輯/usr/local/lib/php3.ini文件,應包括下列設置內容:

include_path=.:/usr/local/apache/phplib-6.1/php
auto_prepend_file = /usr/local/apache/phplib-
6.1/php/prepend.php3
track_vars = on
magic_quotes_gpc = on
sendmail_path /usr/sbin/sendmail -t

6. 建立一個名為poe_sessions的mysql資料庫。我一般使用phpMyAdmin,如果願意,也可以使用SQL命令創建資料庫。
7. cd /usr/local/apache/phplib-6.1/stuff
進入建表目錄下。
8. mysql php_book --user=root --password <
create_database.mysql
創建PHPLIB所需要的資料庫表。
9. 使用以下值在mysql資料庫表中增加一條新記錄:

host: %
password: <-- no password.
select_priv: Yes
insert_priv: Yes
update_priv: Yes
delete_priv: Yes
for users named "kris","user01",and "user02".

注意:也可以使用如下SQL語句:

INSERT INTO
user
(
Host
,User
,Password
,Select_priv
,Insert_priv
,Update_priv
,Delete_priv
)
VALUES (
'%'
, 'kris'
, ''
, 'Y', 'Y', 'Y', 'Y'
)

10. 使用以下值在mysql資料庫的db表中增加一條新記錄:

host: %
db: poe_sessions
select_priv: Yes
insert_priv: Yes
update_priv: Yes
delete_priv: Yes
for users named "kris","user01",and "user03".

注意:也可以使用如下SQL程序。

INSERT INTO
db
(
Host
,Db
,User
,Select_priv
,Insert_priv
,Update_priv
,Delete_priv
)
VALUES (
'%'
, 'poe_sessions '
, 'kris'
, 'Y', 'Y', 'Y', 'Y'
)

11. /usr/local/mysql/bin/mysqladmin -u root -p reload
重新裝載MySQL許可權表。
12. 在php_book資料庫中創建兩個PHPLIB已認證的用戶(user01和user02),可以使用如下SQL語句:

INSERT INTO
auto_user
(
uid
,username
,password
,perms
) VALUES (
''
,'user01'
,'test'
,'admin'
)

INSERT INTO
auth_user
(
uid
,username
,password
,perms
) VALUES (
''
,'user02'
,'test'
,'admin'
)

13. mv\ /use/local/apache/phplib-6.1/pages \
/use/local/apach/htdocs
將演示子目錄置於Web伺服器的根目錄下,這樣就可以用瀏覽器訪問它。
14. 編輯文本文件/usr/local/apache/htdocs/robots.txt,使它包括如下內容:

Disallow: /phplib/

15. 使用Web瀏覽器訪問http://localhost/phplib/。將會看到如圖2.1所示頁面。

Page 29 圖2.1

圖2.1 重新裝載兩次以後出現的PHPLIB演示頁面

2.8 測試Linux環境下的ODBC
對所裝軟體進行基本測試是很重要的,特別是需要手工編輯配置文件時。如下的測試可確保你的MySQL驅動程序運行正常,並且編譯的iODBC庫文件也是正確無誤的。
1. 使用清單2.1所列的內容,建立一個名為/usr/local/etc/odbc.ini的文件。

清單 2.2 /usr/local/etc/odbc.ini- 系統ODBC 配置文件
;
;odbc.ini
;

[ODBC Data Sources]
mysql = mysql

[php_book]
driver = /usr/local/myodbc/lib/libmyodbc.so
host = localhost
database = mysql
user = root

2. cd /usr/local/src/libiodbc-2.50.3/samples
3. ./odbctest
運行ODBC測試程序。
4. DSN=mysql;PWD=password
告訴測試程序要訪問的數據源。
5. select host,user from user
在提示符下執行一個SQL語句,如果有回應,說明iODBC和MySQL已經可以使用了。
現在,在計算機中已經安裝好了ODBC,由於它的安裝步驟不太清晰而且文檔又很少,所以本章中講述了其安裝和測試指令,然而鑒於ODBC主要是一項Microsoft技術,且很少在Linux中用到,所以這里是本書中最後一次有關介紹。
2.9 總結:
本章講述了如何獲取PHP,及在計算機中進行安裝所需要的步驟,編譯了內建PHP的特定版本Apache 伺服器。同時,還安裝了將在第15章「中場四:處理並發訪問」中用所到的PHPLIB。

9. C++學習。。。

大一學習的c++,工作之後也一直用的c++。

1. 涵蓋c++入門到精通的圖書列表

《The C programming language》必讀
《C++ Primer》,號稱是一本可以讓你從C或JAVA程序員轉為一個真正的C++程序員的入門參考書,必讀。
《The C++ programming language》,C++之父,人稱B教主著作,在看過C++ primer後,應該可以跳章選讀。
《Think in c++》,網上說此書的中文版翻譯質量奇差,推薦看影印版,選讀。
《Effective c++》,類似 Effective java,講的是最佳實踐,程序員必讀。


《More effective c++》,上書的補充。
《The C++ standard library》,會寫C,不會用標准庫怎麼行。這就跟java程序員不會用java.util包一樣,必讀。
《Effective STL》,STL庫的最佳實踐。Effective C++作者又一力作,必讀。
《The annotated STL source》,STL源碼分析,這本書應該算是深入/精通類了,選讀。
《Generic programming and STL》,號稱C++編程里,就是跟模板,泛型打交道,那麼精通泛型是勢在必行。

《C++ Template》,C++模板編程,代碼復用的經驗之道,必讀。

《Exceptional C++》,跟Effective C++類似,屬於最佳實踐和難題解析,書中列出了許多應用場景和實例代碼供讀者揣摩,選讀。

《More Exceptional C++》,上書的補充。

《Exceptional C++ Style》,上上書的補充

《Inside The C++ Object Model》,有了上面這些書做鋪墊,那麼終於可以讀此神書了。它會帶你游覽C++對象模型的底層實現機制。讀完此書,任何C++代碼看起來如同行雲流水,必讀。

2. 優秀的C/C++開源項目(閱讀代碼)

OS:Linux kernel LVS、Linux應用程序

DB:Mysql、PostgreSQL

Complier:VM、GCC

Framework:OpenSip、SipProxy、

Net:ACE(Java Mina、Netty)、TCP/IP、HTTP協議棧

Cache:Memcached、Redis、

Library:STL(java util package)、Boost、Qt(UI)、

balance:Apache、Nginx

GSL

地址:https://github.com/microsoft/GSL

Boost文檔

地址:https://www.boost.org/doc/libs/

wxWidgets官網

地址:http://wxwidgets.org/

gtkmm

地址:https://www.gtkmm.org/en/

CopperSpice

地址:https://www.copperspice.com/

Qt

地址:https://www.qt.io/Eigen

地址:http://eigen.tuxfamily.org/index.php?title=Main_Page#Documentation

Plot utils

地址:https://www.gnu.org/software/plotutils/

Asio

地址:https://think-async.com/Asio/

POCO

地址:https://pocoproject.org/

abseil

地址:https://abseil.io/

C++開源庫匯總列表

地址:https://en.cppreference.com/w/cpp/links/libs

除了這些開源項目,也可以找一些免費的公開課,那這里也推薦一個ACM金牌大佬講授的免費C++課程,可以去體驗一下:

學好C++才是入職大廠的敲門磚! 當年要是有這課,我的C++也不至於這樣

已失效

3.C++語法講解

  • 語言基礎
    詳細介紹變數、表達式、語句、指針、數組、流程式控制制、函數、文件組織等。

  • 抽象機制 - 面向對象編程
    深入講解C++的抽象機制,封裝(類)、繼承、多態;操作符重載、函數對象、異常處理等。

  • 模板 - 泛型編程
    詳細介紹C++的模板機制,類模板、函數模板、模板特化等方面的內容。

  • 4.深入c++面向對象

    4.1、從C到C++

  • 引用和指針:為什麼引用很重要

  • const關鍵字:為什麼const很重要

  • 名字空間 (namespace)

  • 4.2、深入C++對象

  • 關於C++對象
    內置類型的對象,如int、double對象,自定義類型的對象

  • 對象類型的定義
    關鍵字class和struct
    類成員:成員函數和數據成員
    靜態數據成員
    成員的訪問控制
    對象的size
    關於this指針
    onst成員函數、const究竟修飾什麼
    mutable數據成員
    4種特殊成員函數:constructor、destructor、 constructor、operator=
    對象的構造、初始化列表
    對象的析構
    對象的復制
    什麼情況下有必要顯式定義4種特殊函數
    C++對象生命周

  • 4.3、操作符重載

  • 關於C++中操作符重載機制

  • 重要操作符重載
    算術運算:+, -, *, /, %, ++, --, ...
    關系運算:>, <, ==, !=
    下標存取:[ ]
    函數調用:(),函數對象
    類型轉換、單參數構造函數與隱式轉換、阻止隱式轉換 -- explicit關鍵字

  • 友元與成員

  • 4.4、面向對象基礎 -- 繼承

  • 基類與派生類

  • 再談對象的構造與析構

  • 虛函數、純虛函數

  • 派生類的內存布局、虛函數表

  • 多態、多態類型、如何體現多態

  • 虛析構、為什麼虛析構很重要

  • 4.5、關於繼承更多的話題

  • 多繼承

  • 虛繼承與虛基類

  • 對基類的訪問、public / protected / private繼承

  • Down cast:static_cast<>和dynamic_cast<>

  • 運行期類型識別 (RTTI)

  • 4.6、C++與面向對象設計

  • C++語言機制提供了完整的OOP支持

  • 超越繼承

  • OOP若干法則和設計模式

  • 5.C++泛型編程與STL

    5.1、C++ 模板機制

    5.2、STL 概要

    5.3、STL容器
    5.4、STL迭代

    5.5、STL演算法

    5.6、預與定義STL數對象

    5.7、STL適配器

    6. C++進階

  • 《C++ Primer》


  • 最新版本:第三版(第四版國外已上架, 國內一些網上書店也在預訂中)


  • 適合有豐富C經驗,缺乏C++經驗的。不過我個人一直認為此書帶著過於強烈的C語言的痕跡,對於C++的學習未必是 好事。


  • 《The C++ Programming Language》/《C++程序設計語言》


  • 最新版本:第三版特別版


  • 簡稱 TC++PL,有其他語言的豐富經驗的。(也有人簡稱之為「TCPL」,但需與另一本《The C Programmer Language》區分開來)


  • 《Essential C++》


  • 《Accelerated C++》


  • 這兩本薄一些,都是不錯的選擇。《Accelerated C++》本人沒有讀過,從各方面的評價來看,完全值得推薦。


  • 以上幾本書都有相應的中文版,而且翻譯的質量都不錯。上面的書未必都需要讀一遍,但無論如何,TC++PL是應該閱讀的。



  • 《Effective C++》


  • 最新版本:第二版(第三版國外已上架,國內一些網上書店也在預訂中)


  • 簡稱EC。C++程序員必讀!很多時候,我們說C++聖經不是指TC++PL,而是這一本。《The Pragmatic Programmer》一書中寫到:「一旦你發現自己要參與C++項目的開發,趕快跑(不要走)到書店去購買Scott Mayer的《Effective C++》,可能還要《More Effective C++》」。


  • 《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 編程規范》


  • 個人認為此書應為C++程序員必備的案頭書。幾乎Effective系列和Exceptional系 列都在這里得到了總結。最新的模版、異常的業界經驗都在這里的到了體現。可能的唯一缺陷就是對一個新手而言,關於「為什麼這么做」的問題,解釋的不夠。


  • 我 的看法是:如果你不理解其中的條款,記憶,並且照做;如果你理解其中的條款,我猜你一定會同意書中的觀點。我認為這本書中的內容至少在2009年以前都不 會過時,人們將廣為傳誦它制定的101條戒律。


  • 還不知道他的簡稱,也許「101」會成為一個候選者?


  • 提到《Effective C++》,那麼另外三本書一一浮出水面:


  • 《More Effective C++》


  • 《Exceptional C++》


  • 《More Exceptional C++》。


  • 新書《Exceptional C++ Style》也是值得一看的好書。


  • 上 述幾本書,一本也不應該放過。


  • 個人建議上述書籍按順序閱讀。並且,在將來反復閱讀這幾本書。

  • 《Thinking in C++》/《C++編程思想》
    這本書及其中文版傳言好壞都有,沒有認真看過,不做評價,如果確有興趣,不妨嘗試 一下該書。

    以下幾本書基本上涉及的都是語言本身,大體上可以按照以下的順序閱讀。

    《C++必知必會》
    如果早一年,這本書將是重量級的,然而它被101和《Exceptional C++ Style》蓋過一頭。

    《C++ Gotchas: Avoiding Common Problems in Coding and Design》/《C++程序設計陷阱》
    這又是一本我未曾讀過,而且廣受好評的書。

    《STL 源碼剖析》
    這本書我剛到手,就被人"借"走,以至於到現在也沒有看過。看過這本書的朋友,可以給一個合適的評價。

    7. C++進階之數據結構基礎

    這是所有編程語言中最應該學習的部分,程序組成的基礎之一。

    順序存儲、鏈式存儲、循環鏈表;

    雙向鏈表、棧(順序和鏈式)、隊列(順序和鏈式);

    棧的應用、樹基本概念及遍歷、二叉樹;

    排序演算法、並歸演算法、選擇、插入、快速、希爾。

    以上這些內容你知道嗎?

    8. C++進階之UI界面開發

    掌握QT類庫構架,圖形界面開發模型;

    掌握QT開發技巧,消息機制,圖形處理;

    掌握QT網路編程,UDP,TCP使用方式;

    掌握QT文件處理方式,序列化;

    掌握QT在windows,linux,ios,android不同平台下的移植技術。

    9. C++進階之Unix/Linux網路伺服器

    掌握Unix/Linux平台開發方式;

    熟練使用系統調用;

    熟練Unix/Linux內存管理,進程,線程調度;

    熟悉網路伺服器開發方式,熟練編寫TCP,UCP網路服務程序;

    掌握同步/非同步IO模型在網路編程中的使用方式。

    10.C++進階之資料庫開發

    掌握SQL語言的實用技巧。Oracle,MySQL資料庫的使用方式。

    如果你能熟練掌握以上列出的技能,具備解決復雜問題和技術難點的能力,而且你能獨立開發一些比較復雜的功能模塊,那麼很榮幸地告訴你,你已經達到中級水平,薪資過萬對你來說簡直是小菜一碟。

    11.C++標准參考

    C++ reference

    地址:https://en.cppreference.com/w/

    C++ Coding Standard

    地址:http://www.possibility.com/Cpp/CppCodingStandard.html

    Standard C++

    地址:https://isocpp.org/

    State of C++ Evolution

    地址:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2597.html

    The C++ Resources Network

    地址:http://www.cplusplus.com/

    Draft C++ Standard: Contents

    地址:http://eel.is/c++draft/

    關注一些公眾號,比如c語言與cpp編程

10. qt入門 急急急!!!

上官網下載,要玩的時候叫上我呀!我保你局局贏!老子開最大號「三個問號」,就是QQT最高等級「???」懂不?

熱點內容
字體android 發布:2025-07-12 21:30:38 瀏覽:621
資料庫中包含 發布:2025-07-12 21:25:08 瀏覽:621
艦娘緩存系統 發布:2025-07-12 21:21:21 瀏覽:100
cpu對存儲器的讀寫 發布:2025-07-12 21:21:14 瀏覽:772
如何建立一個網站需要伺服器 發布:2025-07-12 21:18:40 瀏覽:67
php登陸微信 發布:2025-07-12 21:17:55 瀏覽:14
公眾伺服器有什麼功能 發布:2025-07-12 21:11:22 瀏覽:715
健身的壓縮衣 發布:2025-07-12 21:11:12 瀏覽:754
磁碟伺服器如何管理磁碟 發布:2025-07-12 21:02:19 瀏覽:470
安卓返回鍵在哪裡取消 發布:2025-07-12 20:50:17 瀏覽:799