SummaryofContentsIntroductionChapter1:PHPRoadmapChapter2:InstallationChapter3:PHPFundamentalsChapter4:PHPStructuresChapter5:Object-OrientedProgrammingwithPHPChapter6:DebuggingChapter7:UserInputandRegularExpressionsChapter8:SessionsandCookiesChapter9:FileHandlingChapter10:CodingFTPClientsChapter11:E-MailandNewsChapter12:RetrievingE-MailandNewsChapter13:NetworkingandTCP/IPChapter14:LDAPChapter15:IntroductiontoMulti-TierDevelopmentChapter16:AWAPCaseStudyChapter17:PHPandMySQLChapter18:PHPandPostgreSQLChapter19:PHPandODBCChapter20:Non-WebPHPProgrammingChapter21:PHPXMLChapter22:InternationalizationChapter23:SecurityChapter24:OptimizationChapter25:PHPExtensionLibrariesChapter26:UserPrivilegeSystemIndexProfessionalPHP4LuisArgerichWankyuChoiJohnCoggeshallKenEgervariMartinGeislerZakGreantAndrewHillChrisHubbardJamesMooreDevon0'DellJonPariseHarishRawatTariqueSaniChristopherScolloDeepakThomasChrisUllmanAPressMedia,LLCProfessionalPHP4Copyright2003byApressAllrightsreserved.
Nopartofthisworkmaybereproducedortransmittedinanyformorbyanymeans,electronicormechanical,includingphotocopying,recording,orbyanyinformationstorageorretrievalsystem,withoutthepriorwrittenpermissionofthecopyrightownerandthepublisher.
ISBN978-1-59059-248-9ISBN978-1-4302-1120-4(eBook)DOI10.
1007/978-1-4302-1120-4Trademarkednamesmayappearinthisbook.
Ratherthanuseatrademarksymbolwitheveryoccurrenceofatrademarkedname,weusethenamesonlyinaneditorialfashionandtothebenefitofthetrademarkowner,withnointentionofinfringementofthetrademark.
Theinformationinthisbookisdistributedonan"asis"basis,withoutwarranty.
Althougheveryprecautionhasbeentakeninthepreparationofthiswork,neithertheauthor(s)norApressshallhaveanyliabilitytoanypersonorentitywithrespecttoanylossordamagecausedorallegedtobecauseddirectlyorindirectlybytheinformationcontainedinthiswork.
EditorialBoardDanApplemanCraigBerryGaryCornellTonyDavisStevenRycroftJulianSkinnerMartinStreicherJimSumserKarenWattersonGavinWrayJohnZukowskiAdditionalMaterialDilipThomasCategoryManagerDilipThomasTechnicalArchitectDilipThomasTechnicalEditorsManjunathB.
V.
lnduBrittoMatthewMoodieNileshParmarAuthorAgentSafiullaS.
M.
ProductionManagerLizToyProductionCoordinatorPipWonsonIllustrationsTomBartlettCreditsTechnicalReviewersThiesC.
ArntzenDanielBeulshausenCorneliaBoenigkFlorianCleverKenEgervariJoHenrikEndrerudStephFoxZakGreantRyanGroveChristopherHarshmanJoshuaHooverAmitKulkarniAdamLangRichardLynchMarkMamoneTonyMobilyJonPariseGaneshPrasadGeorgeRicterJonRosenbergJonathanSharpChristopherSmithJerryStrattonCarlSvenssonUlfWendelKevinYankZiliZhangIndexAdrianAxinteCoverKurtKramesProofReaderFionaBerrymanEditorialThanksJohnFranklinVictoriaHudgsonDanMaharryAbouttheAuthorsLuisArgerichLuisisadevelopmentandtechnologymanagerforSalutia,aleadinghealthsolutionsproviderforSouthAmericaandateacherattheUniversityofBuenosAires(UBA).
LuishasshowninterestinPHPsinceversion2.
0andhasuseditinconjunctionwithXMLforprojectssuchassearchengines,transactionalsystems,webapplications,webservices,andothers.
Iwouldliketothankmycompany,myfamily,andmywifeNataliaforthetimespentwiththisbook.
WankyuChoiWankyu(pronouncedwan-kyu,notwank-yu:-)isthepresident/CEOofNeoQuestCommunications,Inc.
runningaPHP-poweredEnglishlanguageeducationportal(http://www.
neoqst.
com/)intheRepublicofKorea.
He'sbeenprogrammingformorethanadecadeinanumberoflanguages,thelatestofwhichisPHP.
HeisindependentlyworkingonanopensourcePHPprojectcalledNeoBoard(http://www.
neoboard.
net/),afeature-richwebdiscussionboard.
Whennotprogrammingorwriting,hecanbefoundabsorbedinreadingthelatestcomputerbooksorbanginghisheadtoMetallicaorMegadeth,twoofhisfavoriterockbands.
I'dliketothankmyparentsfortheirencouragementandguidance,thededicatedstaffatWroxandthetechnicalreviewersforalltheirhardwork,thestaffatNeoQ,uestfortheirsupportwhileworkingonthebook,andlastbutnotleast,mywife,YonsukSongforherpatienceandloveforthisparticulargeek.
JohnCoggeshallJohnisacolumnistfocusinginwebtechnologiesutilizingthePHPprogramminglanguageinUNIX.
HeisalsoaprivatewebdevelopmentcontractorfororganizationssuchastheMichiganCouncilforCooperativeEducation.
HisskillsetsincludeC++,PHP4,OfficeSuites,UNIXandUNIXbasedOS,andSQL.
Johnisspecificallyproficientinprogrammingtheory,recursivethinking,advancedalgorithms,datastructures,andworkingatgreatlengthsintheUNIXenvironment.
KenEgervariKenisa21-yearoldentrepreneurfromWindsor,OntarioCAwhoisatechnologyenthusiastandsoftwarearchitect.
Kenhaswrittenseveraltypesofapplicationrangingfromnetworkingtoentertainmentandtheenterprise.
HehasusedvariouslanguagessuchasAssembly,C,C++,Java,SQL,PHP,DHTML,andothers.
KenisnowtheChairmanandChiefTechnologyOfficerofabusiness/technologyconsultingcompanycalledPositiveEdge.
OutsideofPositiveEdge,KenactivelyparticipatesontheWebbywritingarticlesonwebdevelopmentandbusinessoncoffeecode.
comandstudiesorganicbusinessmodeling.
MartinGeislerI'vebeeninterestedincomputersforseveralyearsnow.
ItstartedwithWindows95,buttwoyearsagoIinstalledLinux.
Thatbecamemyfavoritetoy:it'sfreeandit'sincrediblyfuntofiddlewith.
AfterhavinginstalledLinux,afriendintroducedmetoPHP.
Istartedlearningthelanguage,andbecamereallyfondofit.
ThegreatthingaboutPHPisthatitdoesn'tlimityou.
Youdon'thavetothinkaboutallocatingandfreeingmemory-youjustcode.
Thatmakesitperfectforwritinga"proofofconcept".
I'vealsolikedmathematicsforaslongasIcanremember.
AndnowthatIstudyComputerScience,Icanseehowmathplaysabigandinterestingroleindesigninggoodandfastalgorithms.
Apartfromthat,IliveinAarhus,Denmark.
Ienjoyseeingmoviesinthetheaters,andcan'twaittoseeTheLordoftheRingsthisChristmas.
Ireadthetrilogythissummer-afantasticstory.
AndrewHillAndrewisDirectorofTechnologyEvangelismforOpenLinkSoftware,anenterprisemiddlewareanddataaccessinfrastructurefirmlocatedinBurlington,MA.
Andrew'spositionputshimsquarelybetweenthebusinessandtechfrontsofdevelopingtechnologyindustries.
HehasbeenprogramminginPHPforacoupleofyears,comingtothePHPcommunityinitiallytosupporttheuseofODBCanddatabaseagnosticapplicationconnectivity.
HistechnologyinterestsalsoincludeXML,VSP,MacOSX,andvariousother*nixtechnologies.
ChrisHubbardChrisisthefounderofandprincipalconsultantforWildCharacters.
WildCharactersprovideswebdevelopmenttovariousclientsinthetelecom,health,gamingandbusinessconsultingindustries.
ChrishasbeenworkingwithInternettechnologiessince1994andhasworkedonprojectsrangingfromanHTMLsweatshoptoworkingwithacoupleofthelargestwebsites.
Chrisishappilymarriedwithtwowonderfulchildren.
Manythankstotheindulgenceandtolerancegiventomebymyfamilywhileworkingonthisbook.
JamesMooreJamesiscurrentlylivinginBristolhavingtakenayearoutinbetweencompletinghisA-levelsatRichardHuishCollege,Tauntonandcontinuinghisstudiesatuniversity.
Heisspendingthisyearbothworkingandtraveling.
Overthepasttwoyears,JameshastakenanactiverolewithinthePHPcommunityasamemberofthePHPqualityassuranceteamandasthePHP-GTKmanualeditor.
HehasalsocontributedtheWindowsAPIextensiontoPHP'scodebase.
DevonO'DellDevonH.
O'Dellhasbeenprogrammingapplicationsforthewebsince1998usingPerlCGIscripts,thoughnowheusesJSPandPHPfortheseapplications.
HeownsandoperatesSiteTronics(http://sitetronics.
com),acompanyprovidingcustomprogramming,networking,hosting,andsecuritysolutions.
HisapplicationshaverangedfromPHPlanguageextensionstocontentmanagementandtemplatingsystems,andhehasalsoparticipatedinoperatingsystemdevelopment.
Additionally,DevonproposedandcoauthoredthebookProfessionalPHP4MultimediaProgramming.
SomeofhisrecentprojectsincludeAMFPHPandActionCrypt.
DevoncurrentlylivesinVarden,Netherlands.
HewouldliketothankMargrietHommaforhersupportandcare;ShawnT.
Lawyer;andhisparents,DennisO'DellandMegHudson.
JonPariseJonisalong-timecontributortothePHP,PEAR,andHordeprojects.
HeholdsabachelorsdegreeinInformationTechnologyfromtheRochesterInstituteofTechnologyandispursuinghismastersinEntertainmentTechnologyfromCarnegieMellonUniversity.
Hecurrentlyworksasanindependentconsultant.
HarishRawatHarishisasoftwaredeveloperatOraclecorporation.
Hehasovernineyearsofexperienceinsystemsprogramming.
HistechnicalareasofinterestincludeXML,Java,andnetworkprotocols.
Co-authorofProfessionalPHPfromWrox;hehasalsocontributedtootherWroxtitlesonLinuxandJavabothasanauthorandareviewer.
TariqueSaniDrSaniisapediatricianandforensicexpertbyeducation.
StartingwiththeZX80,hehasbeendabblingwithcomputersfor19years.
HeiscurrentlytheCTOofSANisoft(http://www.
sanisoft.
com/),awebengineeringcompanythatspecializesinPHPapplicationdevelopment.
HeisbasedinNagpur,India,whereheliveswithhiswifeSwatiandfouryearoldsonAasim.
ChristopherScolloByday,ChristopherScolloisaseeminglyordinarysoftwaredevelopertoilingawayathisprojects.
Butbynight,heeatsandsleeps.
Otherhobbiesincludehiking,cycling,teachingcoursesaboutwebtechnologies,andbeingverypolitetopeople.
Manyofhispersonalitytraitscanbeconnectedinonewayoranothertohisuseofthevieditor.
OriginallyfromNewJersey,USA,henowlivesinMunich,Germanywithhiswife,NicoleBator.
DeepakThomasDeepakisamemberoftechnicalstaffwithOraclecorporationinRedwoodShores,CA.
Co-authorofProfessionalPHPfromWrox;hehasalsocontributedtootherWroxtitlesonLinuxandJavabothasanauthorandareviewer.
HisinterestsincludeLinux,J2EEtechnologies,andwebsitedeploymentissues.
ChrisUllmanChrisisaComputerSciencegraduatewhocametoWroxfiveyearsago,when14.
4modemswerethehottestInternettechnologyandNetscapeNavigator2.
0wasagroundbreakinginnovation.
Sincethenhe'sappliedhisknowledgeofHTML,server-sidewebtechnologies,Java,andVisualBasictodeveloping,editing,andauthoringbooks.
WhennottryingtoreconstructthegutsofhisownPCortryingtowriteextrachaptersinahurry,hecanbefoundeitherplayingkeyboardsinapsychedelicband,TheBeemen,tutoringhiscatsinthewayofeatingpeacefullyfromtheirownfoodbowlandnottheonenexttotheirs,orhopingagainsthopethatthisistheyearhisfavoritesoccerteam,BirminghamCity,canmanagetoendtheirexilefromthePremierLeague.
PLEASEREADWroxPressLtd.
wasthepublisherofearlierprintingsofthisbook,butApressisthepublisherofthisprinting.
Therefore,allsourcecodeandsupportforthisbookcannowbefoundathttp://www.
apress.
com,eventhoughreferenceswithinthechaptersmaypointtohttp://www.
wrox.
com.
IntroductionWhoIsthisBookForWhat'sCoveredinthisBookWhatYouNeedtoUsethisBookConventionsCustomerSupportHowtoDownloadtheSampleCodefortheBookErrataforums.
apress.
comChapter1:PHPRoadmapWhyPHPPHPEvolutionPHPPastPHPPresentPHPintheRingPHPFuturePHPvs.
OtherScriptingLanguagesPHPvs.
ASPPHPvs.
ColdFusionPHPvs.
PeriPHPvs.
JavaPHPLicensingResourceListChapter2:InstallationIAlreadyHavePHPPre-InstallationInstallationDecisionsWhichOperatingSystemModuleorCGIWhichWebServerInstallingMySQL,Apache,andPHPTableofContents122455666991010101011111111121212121515161717181919TableofContentsInstallingonWindows20InstallingMySQL20InstallingApache22InstallingPHP26ConfiguringApachetoUsePHP27TestingPHPInstallation29Post-Installation30UpgradingtoISAPI32InstallingonUNIX-LikeSystems33InstallingMySQL33InstallingApache38InstallingPHP41Post-Installation44IntegratingPHPWithApache44InstallingonMacOSX48Pre-Installation49InstallingMySQL49InstallingApache52InstallingPHP54Post-Installation55IntegratingPHPwithApache55CompilingPHPStandalone56FurtherResources56Summary58ChaRter3:PHPFundamentals61PHPPrograms62FileBasics62Statements63Comments65Literals66TextualLiterals66HereDocuments67NumericLiterals68BooleanLiterals68Variables68Assignment69Reference70Constants71DataTypes71Casting72OperatorsandFunctions73GeneralOperations74StringOperations75StringFunctions76NumericalOperations80BitwiseOperators81ComparisonOperators82OperatorPrecedence82LogicalOperators83OperatorPrecedence83iiArraysVariablesfromtheOutsideWorldSystemandGETVariablesand$HTIP_ArraysPOSTVariablesCookiesCGIVariablesHTIPHeaderVariablesSummaryChapter4:PHPStructuresProgramFlowControlStructuresConditionalStatementsLoopsFunctionsDefiningFunctionsVariableScopeVariableLifetimeRecursionAssigningFunctionstoVariablesUsingFunctionstoOrganizeCodeCommentsArraysInitializingArraysLoopingThroughArraysBuilt-InArrayFunctionsPredefinedArraysMulti-DimensionalArraysSummaryChapter5:Ob!
ect-OrientedProgrammingwithPHPObject-OrientedProgrammingFunctionalvs.
Object-OrientedProgramsTheImportanceofOOPTop-DownApproachtoSoftwareDevelopmentClassesObjectsFactoryMethodsEncapsulationInheritanceTheClass-FunctionCallOperatorPolymorphismAbstractMethodsCohesionandCouplingObjectModelingInUMLDelegationImportantHeuristicsandDesignDecisionsPHPClassFunctionsPHP'sLimitationsModelingaComplexWebComponentSummaryTableofContents838484858585868789898994969798100100101101105105105107107109109111113113114115116116119120122124128129130133135137139140142146151iiiTableofContentsChapter6:Debuggln"OverviewofProgrammingErrorsSyntaxErrorsSemanticErrorsLogicalErrorsEnvironmentalErrorsErrorLevelsInPHPParseErrorsFatalErrorsWarningsNoticesCoreErrorsCompileErrorsUserErrorLevelsSettingErrorReportingLevelsErrorHandlingSuppressingErrorMessagesErrorRecoveryCustomErrorCheckingLoggingErrorsDebuggingUtilitiesHTTPDebuggingUtilitiesTelnetClientSnoopServersDebuggingbyTracingphpCodesiteRemoteDebuggersBODYZendIDEScriptTestingSummaryChapter7:UserInputandRegularExpressionsivUserInputFormsHandlingUserInputComplexFormsValidatingDataOOHFormsSampleApplicationPreventingFormMisuseRegularExpressionsBasicSyntaxCreatingaRegularExpressionValidatingE-MailAddressesRegularExpressionsinPHPPeriCompatibleRegularExpressionsSummary153154154155156156157157157158158158158158158159159160161162163164164165166167172172174176179183183184186186190190191199199200202204204207212Chaoter8:SessionsandCookiesSessionsAddingSessionSupporttoPHPUsingPHPSessionsStartingSessionsRegisteringSessionVariablesCreatingCustomSessionHandlingFunctionsURLsSecurityIssuesCookiesSecurityIssuesUsingCookiesExpirationInformationPathInformationDomainScopeSampleApplicationtoUseCookiessetcookie()SettingCookieExpiryInformationSettingScopeDeletingaCookieAmalgamatingCookieDataProblemswithCookiesSomeMoreSessionFunctionsSummaryChapter9:FileHandlingFilesOpeningFilesClosingFilesDisplayingFilesReadingfromFilesWritingtoFilesNavigatingwithinFilesCopying,Deleting,andRenamingFilesDeterminingFileAttributesDirectoriesAddingandDeletingDirectoriesUploadingFilesfromClientsUploadingFileswithPUTUploadingFileswithPOSTASampleFileSystemApplicationOnlineStorageApplicationCommonFunctionalityNewUserRegistrationLoggingOnCreatingFoldersRemovingaFolder/FileUploadingFilesViewingRlesViewingFoldersLoggingOffSummaryTableofContents215216216217218218220226226227227228228228229230231232233235235237239240243243244245245245247247248249250252253254254257257260262265272273274275276277278vTableofContentsChapter10:CodingFTPClientsAddingFTPSupporttoPHPPHP'sFTPExtensionBuildingFTPClientsAnFTPConvenienceWrapperAWeb-BasedFTPClientBuildingaClientFunctionOverviewbyUseConnectingandDisconnectingDirectoryCommandsFileCommandsMiscellaneousAlphabeticalFunctionReferenceCommonFTPClientCommandsandCorrespondingPHPFunctionsSummaryChapter11:E-MailandNewsHowE-MailWorksNot-So-SecretAgentsE-MailUnveiledE-MailHeaderFieldsMandatoryHeadersOptionalHeadersSendingE-MailUsingmail()MIMEE-MailCreatingMy_Smtp_Mime_MailClassUsenetHowUsenetWorksAnExampleNNTPSessionNNTPServerResponseCodesAnatomyofaNewsArticleCreatinganNNTPClassPuttingItAllTogetherResourcesSummaryChapter12:RetrievingE-MailandNewsviE-MailRetrievalProtocolsPOPAnExamplePOPSessionIMAPTagsMailboxFormatsExampleIMAPSessionPOPvs.
IMAP281282282283284291299303303303303304304313317319320320322323323325325343353354354355358360361368376377379380380380382382382383386RetrievingE-MailwithPHPConnectingtoaServerCreatingaWebmailClassListingMessagesorArticlesListingMessageswithWebmailClassRetrievingMessagesReadingMessagesUsingWebmailClassWorkingwithMailboxesManipulatingMailboxesusingtheWebmailClassManipulatingMessagesManipulatingMessagesUsingWebmailClassWeb-BasedE-MailSystemResourcesSummaryChapter13:NetworkingandTCP/IPTheInternetProtocolTransport-LayerProtocolsTheTransmissionControlProtocol(TCP)TheUserDatagramProtocol(UDP)DomainNameResolutionDistributedandHierarchicalSystemDNSandPHPResolverlibrarySocketsSocketsandPHPMailClientApplicationNetworkInformationServiceNISServersNISClientsNISMapsNISandPHPSimpleNetworkManagementProtocolAgentsandManagersSNMPProtocolGetGetNextSetTrapSNMPDataOrganizationSNMPFunctionsinPHPSummaryTableofContents387388390394400405407414416420422425441441443444445445446446447448452457458463466467467467469471471472473473473473473474477viiTableofContentsChapter14:LDAPOverviewofDirectoriesLDAPLDAPvs.
TraditionalDatabasesComponentsofLDAPCharacteristicsofLDAPGlobalDirectoryServiceOpenStandardlnterconnectivityCustomizabrlityandExtensibilityHeterogeneousDataStoreSecureandAccessControlledProtocolLDAPApplicationsSomeLDAPTerminologyLDAPModelsInformationModelNamingModelFunctionalModelSecurityModelAdvancedFeaturesofLDAPAsynchronousOperationsReplicationReferralSecurityExtendedFeaturesLDAPSoftwareInstallingandConfiguringanLDAPServerTheOpenLDAPConfigFileRunnrngtheslapdServerTestingtheInstallationLDAPSupportInPHPThePHPLDAPAPIConnectionandControlFunctionsSearchFunctionsModificationFunctionsErrorFunctionsASampleLDAPApplicationinPHPSummaryChapter15:IntroductiontoMulti-TierDevelopmentTheEvolutionofWebApplicationsMulti-TierviiiTheContentLayerPlainFilesModelRelationalDatabaseModelXMLModelHybridModelTheLogicLayerThePresentationLayerTheExplosionofWebDevices479479480480481482482482482483483483485486486488489491491491492492492492493493494496497497497498500504506506522525526527527528529530531531532532ArchitecturesforMulti-TierDevelopmentHTML-BasedArchitectureTheContentLayerTheLogicLayerThePresentationLayerXML-BasedArchitectureSeparatingtheLayersModularProgrammingIndependencebetweenLogicandPresentationIndependencebetweenLogicandContentDatabaseIndependenceDesigningthePollApplicationDesigningtheDataModelTheContentLayerTheLogicLayerThePresentationLayerTheClassicMulti-TieredArchitectureSummaryChapter16:AWAPCaseStudyRequirementAnalysisEndUserInteractionChoosingSoftwareAlternativesfortheBack-EndDatabaseAlternativesfortheMiddleTierDesignoftheDatabaseSchemaDatabaseTablesDatabaseUserIndicesDesignConsiderationfortheMiddleTierAuthenticationSessionStorageWMLIssuesPerformanceImplementationTheApplicationCodeSummaryChapter17:PHPandMySQLRelationalDatabasesIndicesKeysNormalizationTableofContents533533534534534535537537537538538538538539539540540541543543544546546547547548550551552552552553553554557619621622623623624ixTableofContentsStructuredQueryLanguageDataDefinitionStatementsCREATEDATABASEUSECREATETABLEDESCRIBEALTERTABLEDROPTABLEDROPDATABASEDataManipulationandRetrievalStatementsINSERTREPLACEDELETEUPDATESELECTJoinsUsingIndicesAtomicityPHPandRelationalDatabasesPHP'sMySQLInterfaceAnOnlineLibraryDatabaseAbstractionADatabaseAbstractionLayerBuildingtheDBClassTestingtheDBClassSummaryChapter18:PHPandPostgreSOLXPostgreSQLBasicsDataDefinitionStatementsCREATEDATABASECREATETABLEALTERTABLEDROPTABLEDROPDATABASEDataManipulationandRetrievalStatementsINSERTDELETEUPDATESELECTPHP'sPostgreSQLInterfacepg_connect()pg_pconnect()pg_close()pg_dbname()pg_exec()pg_cmdtuples()pg_numrows()pg_result()pg_fetch_object()pg_fetch_row()pg_fetch_array()pg_freeresult()AnOnlineLibrary627628628628628630631632633633633633634635635637638639640640645654655655659662665666667667667669671671671671672672673674674675675676676676677677678678679680680DatabaseAbstractionSummaryChapter19;PHPandODBCODBCHistoryandPurposeODBCArchitectureSQLStandardsODBCandPHPInstallationonWindowsODBCandPHPInstallationon*nixApacheSharedStaticModulePHPAPIforODBCConnectingtotheDatabaseDealingwithMetaDataManipulatingTransactionsRetrievingDataandCursorsCommonProblemsPrerequisitesforODBCConnectionsUsingMSSQLServerUsingMSAccessMakingtheConnectionDatabaseAbstractionUnifiedODBCPEARDBADODBMetabaseAnOnlineLibrarySummaryChapter20;Non-WebPHPProgrammingWhatIsGTKWhatIsPHP-GTKPHPattheCommandLineLinuxSetupPHP-GTKSupportWindowsSetupAutomatingTasksNCSACommonLogFileFormatTheLogAnalyzerScriptcronATAcceptingCommandLineArgumentsInteractiveScriptsTableofContents684688691692692693694694695697697698700701704705705707707709709710710711711716719719720720720721722724724726727728728729xiTableofContentsProgrammingwithPHP-GTK731KeyConceptsofPHP-GTK731TheHelloWorldExample733AFrontEndforOurLibraryApplication735Resources744Summary744Cbamr2:1.
:t!
!
HPXML741OverviewofXML748TheXMLFramework750XMLvs.
Databases751SML752ConvertingXMLintoSML752PHPandXML753VerifyingXMLSupport754XMLAPisComparison754SAXvs.
DOM755PRAXvs.
SAXandDOM755TheSAXModel756UsingPHP'sSAXSupport757SAXExampleCode758TheDOMModel763UsingPHP'sDOMSupport764DOMExampleCode765TheRAXModel775UsingPHP'sPRAXSupport775PRAXExampleCode775XSLandXSLT779Sabiotron780InstallationandVerifyingXSL780UNIXInstallation780WindowsInstallation780XSLExampleCode781Summary785;biJ!
ter22:!
nltr!
lltl~niiiZitlon787Concepts787Internationalization788Localization788NativeLanguageSupport788ReasonsforInternationalization789TheProblem789Strtnss790StaticStrings791DynamicStrings791StoringtheStrings792xiiGNUGettextTheBasicsxgettextandHelpersUpdatingtheTranslationDisadvantagesofGettextExtendingtheSystemwithObjectsAdvantagesofObjectsUsingObjectsandSwitchingLanguagesConvertingExistingProgramsAnUn-TranslatedProgramTranslatingtheProgramObjectsforDiverseTranslationsIntegratingtheOutputClassRefiningtheScriptRegularExpressionsCapitalizationLocalTimeandDatesInformationRetrievalwithlocaleconv()SortingACustomComparisonFunctionCharacterEncodingWritingtheLocalesMakingtheBrowserUnderstandtheLanguageReactingtoBrowsersusingPHPMulti-ByteStringsPHPMulti-ByteStringModuleApache'smod_mimePHPWeather:ARealWorldExampleSummaryChapter23:SecurityWhatIsSecuritySecuringtheServerHardeningtheServerMonitoringtheSystemMonitoringNewVulnerabilitiesCommonTypesofVulnerabilitySecuringApacheTheUserDirectiveTheDirectoryDirectiveHardeningApacheTableofContents794794794797797798798799799799799802805806806807808811813814816816817817822822823823826829830830830831831832833833834835xiiiTableofContentsSecuringPHPSecurityConcernswiththeCGIInstallationConfiguringPHPdisplay_errorserror_reportingopen_basedirvariables_orderregister_globalstrack_varsdisable_functionsallow_url_fopenSafeModesafe_modesafe_mode_gidsafe_mode_exec_dirsafe_mode_allowed_env_varssafe_mode_protected_env_varsSecuringMySQLMySQLandtheRootUserCleaningUpManagingMySQLUsersCryptographyOneWayEncryptionSymmetricEncryptionAsymmetricEncryptionNetworkSecurityApachemod_sslInstallingmod_sslforUnuxInstallingmod_sslforWindowsConfiguringmod_sslWhentoUseanSSLConnectionSecureProgrammingregister__globalsInsecuritiesTrustingUserInputCross-SiteScriptingVulnerabilitiesIncludePitfallsAFewTipsSummaryResourcesandFurtherReadingSecuringLinuxServersSecureShellsTripwireSecuringApacheSecuringPHPSecuringMySQLCryptographymod_sslSecureProgrammingSecurityWebSitesOtherChapter24:OptimizationTheRightLanguageTheBenchmarksxiv835835836836836837838838838838839839839839839839839839840841842843843845847847848848849849850850851852853854855855856856856856856856856857857857857857859859860OptimizingPHPCodeProfilingCodeHowtoProfilePHPScnptsClassifyBottlenecksOptimizationTechniquesCodeOptimizationOutputBufferingandCompressionDatabaseOptimizationsCachingOptimizingthePHPEngineSummaryChapter25:PHPExtensionLibrariesThePDFLibraryInstallationUsingPDFiibMacromediaFlashMingvs.
UbSWFUsingMingShapesButtonsActionsWhataboutTextWAPandWMLWhatabouttheLibraryUsingHAWHAWImageCreationandManipulationInstallingtheGDLibraryUsingGDMakingaCounterwithGDCounterCodeSummaryChapter27:UserPrivilegeSystemDefiningRequirementsApplicationRequirementsDesigningtheApplicationDesigningtheDatabaseSchemaDesigningtheMiddleTierDesigningthePresentationTierCodingtheApplicationTheDatabaseCodeThePrivilegeClassTheUserClassTestingtheClassesTakingAdvantageoftheUserPrivilegeSystemOtherIdeasfortheUserPrivilegeSystemSummaryIndexTableofContents861861862865866866868871880886887889890890891895895896897901902902903905905909909910911911914917917918918918919922922922923926930942943944947XV
青云互联怎么样?青云互联是一家成立于2020年6月的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、香港服务器、美国云服务器,让您的网站高速、稳定运行。美国cn2弹性云主机限时8折起,可选1-20个IP,仅15元/月起,附8折优惠码使用!点击进入:青云互联官方网站地址青云互联优惠码:八折优惠码:ltY8sHMh (续费同价)青云互联活动方案:美国洛杉矶...
妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款,超过2天不退款 物...
六一云 成立于2018年,归属于西安六一网络科技有限公司,是一家国内正规持有IDC ISP CDN IRCS电信经营许可证书的老牌商家。大陆持证公司受大陆各部门监管不好用支持退款退现,再也不怕被割韭菜了!主要业务有:国内高防云,美国高防云,美国cera大带宽,香港CTG,香港沙田CN2,海外站群服务,物理机,宿母鸡等,另外也诚招代理欢迎咨询。官网www.61cloud.net最新直销劲爆...
disable_functions为你推荐
温州市网络文明传播志愿者信息登记表thinksns什么是thinkphpphp计划任务windows系统下如何设置PHP定时任务企业建网站企业为什么要建网站Flash动画设计与制作——第九章:导出和发布动画特朗普吐槽iPhone为什么iphone x卖的这么好支付宝账户是什么支付宝账户是什么?支持http泉州商标注册泉州本地商标注册要怎么注册?具体流程是什么?闪拍网闪拍网之类的网站怎么回事?
虚拟主机软件 网页空间租用 免费动态域名 sharktech 免费主机 免费个人博客 qq数据库 qq数据库下载 1美金 免费邮件服务器 linode支付宝 下载速度测试 网站加速 腾讯数据库 带宽测试 聚惠网 什么是dns 机柜尺寸 达拉斯 usb大容量存储设备 更多