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
BGP.TO目前针对日本和新加坡服务器进行促销,其中日本东京服务器6.5折,而新加坡服务器7.5折起。这是一家专门的独立服务器租售网站,提供包括中国香港、日本、新加坡和洛杉矶的服务器租用业务,基本上都是自有硬件、IP资源等,国内优化直连线路,机器自动化部署上架,并提供产品的基本管理功能(自助开关机重启重装等)。新加坡服务器 $93.75/月CPU:E3-1230v3内存:16GB硬盘:480GB ...
RAKsmart商家一直以来在独立服务器、站群服务器和G口和10G口大端口流量服务器上下功夫比较大,但是在VPS主机业务上仅仅是顺带,尤其是我们看到大部分主流商家都做云服务器,而RAKsmart商家终于开始做云服务器,这次试探性的新增美国硅谷机房一个方案。月付7.59美元起,支持自定义配置,KVM虚拟化,美国硅谷机房,VPC网络/经典网络,大陆优化/精品网线路,支持Linux或者Windows操作...
官方网站:点击访问创梦网络宿迁BGP高防活动方案:机房CPU内存硬盘带宽IP防护流量原价活动价开通方式宿迁BGP4vCPU4G40G+50G20Mbps1个100G不限流量299元/月 209.3元/月点击自助购买成都电信优化线路8vCPU8G40G+50G20Mbps1个100G不限流量399元/月 279.3元/月点击自助购买成都电信优化线路8vCPU16G40G+50G2...
disable_functions为你推荐
目录盐城市第八届人大常委会第五次会议纪要phpweb破解忘记phpweb网站后台用户名密码,怎么找回破解http500http 500是什么意思?css加载失败为什么打开微博都显示CSS层加载失败?outlookexpress如何开启OUTLOOK EXPRESS功能?duplicate500资费标准电信套餐资费介绍表腾讯公司电话腾讯总公司服务热线是多少科创板首批名单江苏北人的机器人在同行中的评价怎么样?curl扩展大神帮忙看下centos 7.2 系统 php7.0.12的 curl 扩展怎么开启,谢谢啦
天津虚拟主机 免费二级域名注册 php主机空间 双线主机租用 日本动态vps 西部数码vps 高防直连vps 域名备案批量查询 如何注销域名备案 互联网域名管理办法 狗爹 softbank官网 nerd 68.168.16.150 香港新世界电讯 win8升级win10正式版 远程登陆工具 彩虹ip 有益网络 100m空间 更多