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
大硬盘服务器、存储服务器、Chia矿机。RackNerd,2019年末成立的商家,主要提供各类KVM VPS主机、独立服务器和站群服务器等。当前RackNerd正在促销旗下几款美国大硬盘服务器,位于洛杉矶multacom数据中心,亚洲优化线路,非常适合存储、数据备份等应用场景,双路e5-2640v2,64G内存,56G SSD系统盘,160T SAS数据盘,流量是每月200T,1Gbps带宽,配5...
螢光云官網萤光云成立于2002年,是一家自有IDC的云厂商,主打高防云服务器产品。在国内有福州、北京、上海、台湾、香港CN2节点,还有华盛顿、河内、曼谷等海外节点。萤光云的高防云服务器自带50G防御,适合高防建站、游戏高防等业务。本次萤光云中秋云活动简单无套路,直接在原有价格上砍了一大刀,最低价格16元/月,而且有没有账户限制,新老客户都可以买,就是直接满满的诚意给大家送优惠了!官网首页:www....
哪里购买香港云服务器便宜?众所周知,国内购买云服务器大多数用户会选择阿里云或腾讯云,但是阿里云香港云服务器不仅平时没有优惠,就连双十一、618、开年采购节这些活动也很少给出优惠。那么,腾讯云虽然海外云有优惠活动,但仅限新用户,购买过腾讯云服务器的用户就不会有优惠了。那么,我们如果想买香港云服务器,怎么样购买香港云服务器便宜和优惠呢?下面,云服务器网(yuntue.com)小编就介绍一下!我们都知道...
disable_functions为你推荐
操作httpasp.net网页制作开发ASP.NET的网站,步骤是怎样?有经验的可以说说自己的经验解析cuteftp我爱e书网侯龙涛小说那里有下载的discuz伪静态discuz怎么才能把专题目录也实现伪静态的方法详解zencart模板求zen-cart 模板结构无忧登陆无忧登陆怎么用??商务软件什么是商业软件?网上支付功能什么是网银支付lockdown如何用Itools找到以下路径,var/root/library/lockdown
汉邦高科域名注册 快速域名备案 中国域名网 七牛优惠码 阿里云搜索 美国独立服务器 enom 仿牌空间 dns是什么 vpsio 秒解服务器 evssl 网页背景图片 yundun 路由跟踪 免费ftp 徐州电信 卡巴斯基官网下载 小夜博客 亿库 更多