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
Virmach商家我们是不是比较熟悉?速度一般,但是人家价格低,而且机房是比较多的。早年的时候有帮助一个有做外贸也许需要多个机房且便宜服务商的时候接触到这个商家,有曾经帮助够买过上百台这样的低价机器。这里需要提醒的,便宜但是速度一般,尤其是中文业务速度确实不快,如果是外贸业务,那肯定是没有问题。这几天,我们有看到Virmach推出了夏季优惠促销,VPS首年8折,最低年付仅7.2美元,多机房可选,如...
Sharktech 鲨鱼机房商家我们是不是算比较熟悉的,因为有很多的服务商渠道的高防服务器都是拿他们家的机器然后部署高防VPS主机的,不过这几年Sharktech商家有自己直接销售云服务器产品,比如看到有新增公有云主机有促销活动,一般有人可能买回去自己搭建虚拟主机拆分销售的,有的也是自用的。有看到不少网友在分享到鲨鱼机房商家促销活动期间,有赠送开通公有云主机$50,可以购买最低配置的,$49/月的...
pacificrack发布了7月最新vps优惠,新款促销便宜vps采用的是魔方管理,也就是PR-M系列。提一下有意思的是这次支持Windows server 2003、2008R2、2012R2、2016、2019、Windows 7、Windows 10,当然啦,常规Linux系统是必不可少的!1Gbps带宽、KVM虚拟、纯SSD raid10、自家QN机房洛杉矶数据中心...支持PayPal、...
disable_functions为你推荐
phpweb破解忘记phpweb网站后台用户名密码,怎么找回破解cisco2960思科2960如何划分vlan?中国企业信息网哪个查询企业信息的网站收录的企业信息最多360防火墙在哪里360防火墙的是cuteftp大飞资讯新闻资讯包括什么内容?温州商标注册温州商标注册?爱买网超谁有http://www.25j58.com爱网购吧网站简介?电子商务世界美国电子商务的发展经历几个阶段即时通平台寻找娱乐高科技产品
vps主机 老域名失效请用户记下 域名服务器是什么 快速域名备案 如何注销域名备案 过期已备案域名 x3220 老鹰主机 56折 360抢票助手 商家促销 华为4核 嘉洲服务器 gg广告 cpanel空间 速度云 免费吧 服务器是干什么的 广州服务器 福建铁通 更多