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
WebHorizon是一家去年成立的国外VPS主机商,印度注册,提供虚拟主机和VPS产品,其中VPS包括OpenVZ和KVM架构,有独立IP也有共享IP,数据中心包括美国、波兰、日本、新加坡等(共享IP主机可选机房更多)。目前商家对日本VPS提供一个8折优惠码,优惠后最低款OpenVZ套餐年付10.56美元起。OpenVZCPU:1core内存:256MB硬盘:5G NVMe流量:200GB/1G...
IonSwitch是一家2016年成立的国外VPS主机商,部落上一次分享的信息还停留在2019年,主机商提供基于KVM架构的VPS产品,数据中心之前在美国西雅图,目前是美国爱达荷州科德阿伦(美国西北部,西接华盛顿州和俄勒冈州),为新建的自营数据中心。商家针对新数据中心运行及4号独立日提供了一个5折优惠码,优惠后最低1GB内存套餐每月仅1.75美元起。下面列出部分套餐配置信息。CPU:1core内存...
digital-vm,这家注册在罗马尼亚的公司在国内应该有不少人比较熟悉了,主要提供VPS业务,最高10Gbps带宽,还不限制流量,而且还有日本、新加坡、美国洛杉矶、英国、西班牙、荷兰、挪威、丹麦这些可选数据中心。2020年,digital-vm新增了“独立服务器”业务,暂时只限“日本”、“新加坡”机房,最高也是支持10Gbps带宽... 官方网站:https://digital-vm.co...
disable_functions为你推荐
深圳微信营销-苹果与阿里巴巴合作意在ApplePayiproute怎么查看已配置的静态路由搜狗360360浏览器为什么不能让我自动登录了360退出北京时间在国外如何把手机时间调回到中国北京时间?cisco2960cisco2960接入层交换机ym.163.com网易163企业邮箱的foxmail怎样设置?字节跳动回应TikTok易主#北京字节跳动科技有限公司#小说审核有三面么?我面试了两轮就叫我回家等消息了 要是刷下来了也该告flashftp下载《蔓蔓青萝(全)》.TXT_微盘下载即时通EC营销即时通是什么?做什么的?3g手机有哪些3G手机???
万网域名 重庆域名注册 3322动态域名注册 vultr美国与日本 256m内存 腾讯云数据库 ubuntu更新源 日本bb瘦 vip购优惠 512mb 服务器是干什么用的 服务器维护 cxz lamp的音标 阿里云个人邮箱 广州服务器托管 512内存 亿库 register.com ftp是什么东西 更多