0% found this document useful (0 votes)
2 views

PHP and MySQL Recipes A Problem Solution Approach 2nd Edition Frank M. Kromann pdf download

The document is about the book 'PHP and MySQL Recipes: A Problem-Solution Approach, Second Edition' by Frank M. Kromann, which provides practical solutions to common problems in PHP and MySQL development. It includes various chapters covering topics such as installation, classes, arrays, and database interactions. The book is available for digital download and includes detailed recipes for effective programming practices.

Uploaded by

uqdahtakaiig
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

PHP and MySQL Recipes A Problem Solution Approach 2nd Edition Frank M. Kromann pdf download

The document is about the book 'PHP and MySQL Recipes: A Problem-Solution Approach, Second Edition' by Frank M. Kromann, which provides practical solutions to common problems in PHP and MySQL development. It includes various chapters covering topics such as installation, classes, arrays, and database interactions. The book is available for digital download and includes detailed recipes for effective programming practices.

Uploaded by

uqdahtakaiig
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

PHP and MySQL Recipes A Problem Solution

Approach 2nd Edition Frank M. Kromann download

https://ebookultra.com/download/php-and-mysql-recipes-a-problem-
solution-approach-2nd-edition-frank-m-kromann/

Explore and download more ebooks or textbooks


at ebookultra.com
Here are some recommended products for you. Click the link to
download, or explore more at ebookultra.com

Android Recipes A Problem Solution Approach 2nd Edition


Dave Smith

https://ebookultra.com/download/android-recipes-a-problem-solution-
approach-2nd-edition-dave-smith/

BizTalk 2013 Recipes 2nd Edition A Problem Solution


Approach Mark Beckner

https://ebookultra.com/download/biztalk-2013-recipes-2nd-edition-a-
problem-solution-approach-mark-beckner/

Swift Recipes A Problem Solution Approach 1st ed. Edition


Rogers

https://ebookultra.com/download/swift-recipes-a-problem-solution-
approach-1st-ed-edition-rogers/

R Recipes A Problem Solution Approach 1st Edition Larry A.


Pace

https://ebookultra.com/download/r-recipes-a-problem-solution-
approach-1st-edition-larry-a-pace/
Node js Recipes A Problem Solution Approach 1st Edition
Cory Gackenheimer

https://ebookultra.com/download/node-js-recipes-a-problem-solution-
approach-1st-edition-cory-gackenheimer/

Visual Basic 2008 Recipes A Problem Solution Approach 1st


Edition Rakesh Rajan

https://ebookultra.com/download/visual-basic-2008-recipes-a-problem-
solution-approach-1st-edition-rakesh-rajan/

WPF Recipes in C 2008 A Problem Solution Approach 1st


Edition Sam Bourton

https://ebookultra.com/download/wpf-recipes-in-c-2008-a-problem-
solution-approach-1st-edition-sam-bourton/

ASP NET Web API 2 Recipes A Problem Solution Approach 1st


Edition Filip Wojcieszyn

https://ebookultra.com/download/asp-net-web-api-2-recipes-a-problem-
solution-approach-1st-edition-filip-wojcieszyn/

PHP and MySQL Web Development 2nd Edition Luke Welling

https://ebookultra.com/download/php-and-mysql-web-development-2nd-
edition-luke-welling/
PHP and MySQL Recipes A Problem Solution Approach
2nd Edition Frank M. Kromann Digital Instant Download
Author(s): Frank M. Kromann
ISBN(s): 9781484206058, 1484206053
Edition: 2
File Details: PDF, 9.87 MB
Year: 2016
Language: english
T HE E X P ER T ’S VOIC E ® IN W E B D E V E L O P M E N T

PHP and MySQL


Recipes
A Problem-Solution Approach

Second Edition

Frank M. Kromann
PHP and MySQL Recipes
A Problem-Solution Approach

Second Edition

Frank M. Kromann
PHP and MySQL Recipes: A Problem-Solution Approach, Second Edition
Frank M. Kromann
Trabuco Canyon
California, USA
ISBN-13 (pbk): 978-1-4842-0606-5 ISBN-13 (electronic): 978-1-4842-0605-8
DOI 10.1007/978-1-4842-0605-8
Library of Congress Control Number: 2016943555
Copyright © 2016 by Frank M. Kromann
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material
is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting,
reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval,
electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter
developed. Exempted from this legal reservation are brief excerpts in connection with reviews or scholarly
analysis or material supplied specifically for the purpose of being entered and executed on a computer system,
for exclusive use by the purchaser of the work. Duplication of this publication or parts thereof is permitted only
under the provisions of the Copyright Law of the Publisher's location, in its current version, and permission for use
must always be obtained from Springer. Permissions for use may be obtained through RightsLink at the Copyright
Clearance Center. Violations are liable to prosecution under the respective Copyright Law.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every
occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion
and to the benefit of the trademark owner, with no intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified
as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication, neither
the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that
may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein.
Managing Director: Welmoed Spahr
Lead Editor: Steve Anglin
Technical Reviewer: Massimo Nardone
Editorial Board: Steve Anglin, Pramila Balan, Louise Corrigan, Jonathan Gennick, Robert Hutchinson,
Celestin Suresh John, Michelle Lowman, James Markham, Susan McDermott, Matthew Moodie,
Jeffrey Pepper, Douglas Pundick, Ben Renow-Clarke, Gwenan Spearing
Coordinating Editor: Mark Powers
Copy Editor: Karen Jameson
Compositor: SPi Global
Indexer: SPi Global
Artist: SPi Global
Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street,
6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com,
or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer
Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail rights@apress.com, or visit www.apress.com.
Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use.
eBook versions and licenses are also available for most titles. For more information, reference our Special Bulk
Sales–eBook Licensing web page at www.apress.com/bulk-sales.
Any source code or other supplementary materials referenced by the author in this text is available to readers at
www.apress.com/9781484206065. For detailed information about how to locate your book’s source code, go to
www.apress.com/source-code/. Readers can also access source code at SpringerLink in the Supplementary
Material section for each chapter.
Printed on acid-free paper
Contents at a Glance

About the Author ..................................................................................................xxix


About the Technical Reviewer ..............................................................................xxxi
Introduction ........................................................................................................xxxiii

■Chapter 1: Installation and Configuration ............................................................. 1


■Chapter 2: Classes and Objects ........................................................................... 29
■Chapter 3: Performing Math Operations .............................................................. 61
■Chapter 4: Working with Arrays .......................................................................... 77
■Chapter 5: Dates and Times............................................................................... 109
■Chapter 6: Strings.............................................................................................. 125
■Chapter 7: Files and Directories ........................................................................ 143
■Chapter 8: Dynamic Imaging ............................................................................. 169
■Chapter 9: Regular Expressions ........................................................................ 197
■Chapter 10: Variables ........................................................................................ 209
■Chapter 11: Functions ....................................................................................... 231
■Chapter 12: Web Fundamentals......................................................................... 249
■Chapter 13: Creating and Using Forms .............................................................. 271
■Chapter 14: XML, RSS, WDDX, and SOAP ........................................................... 293
■Chapter 15: Data Exchange with JSON .............................................................. 317
■Chapter 16: Using MySQL Databases................................................................. 333

Index ..................................................................................................................... 357

iii
Contents

About the Author ..................................................................................................xxix


About the Technical Reviewer ..............................................................................xxxi
Introduction ........................................................................................................xxxiii

■Chapter 1: Installation and Configuration ............................................................. 1


Recipe 1-1. Installing PHP ................................................................................................ 1
Problem .................................................................................................................................................. 1
Solution................................................................................................................................................... 1
How it Works........................................................................................................................................... 2

Recipe 1-2. Configuring PHP .......................................................................................... 17


Problem ................................................................................................................................................ 17
Solution................................................................................................................................................. 17
How it Works......................................................................................................................................... 18

Recipe 1-3. Compiling PHP ............................................................................................ 21


Problem ................................................................................................................................................ 21
Solution................................................................................................................................................. 21
How it Works......................................................................................................................................... 22

Recipe 1-4. Installing MySQL ......................................................................................... 26


Problem ................................................................................................................................................ 26
Solution................................................................................................................................................. 26
How it Works......................................................................................................................................... 27

Recipe 1-5. Virtual Machines ......................................................................................... 27


Problem ................................................................................................................................................ 27
Solution................................................................................................................................................. 27
How it Works......................................................................................................................................... 28

v
■ CONTENTS

■Chapter 2: Classes and Objects ........................................................................... 29


Recipe 2-1. Writing a Simple Class ................................................................................ 29
Problem ................................................................................................................................................ 29
Solution................................................................................................................................................. 29
How it Works......................................................................................................................................... 29

Recipe 2-2. Writing a Base Class ................................................................................... 30


Problem ................................................................................................................................................ 30
Solution................................................................................................................................................. 30
How it Works......................................................................................................................................... 30

Recipe 2-3. Writing an Abstract Class ............................................................................ 31


Problem ................................................................................................................................................ 31
Solution................................................................................................................................................. 31
How it Works......................................................................................................................................... 31

Recipe 2-4. Writing an Interface..................................................................................... 33


Problem ................................................................................................................................................ 33
Solution................................................................................................................................................. 33
How it Works......................................................................................................................................... 33

Recipe 2-5. Class Members as Regular Functions......................................................... 35


Problem ................................................................................................................................................ 35
Solution................................................................................................................................................. 35
How it Works......................................................................................................................................... 35

Recipe 2-6. Protecting Data and Methods ..................................................................... 36


Problem ................................................................................................................................................ 36
Solution................................................................................................................................................. 36
How it Works......................................................................................................................................... 36

Recipe 2-7. Mixed Static and Object Context ................................................................. 37


Problem ................................................................................................................................................ 37
Solution................................................................................................................................................. 37
How it Works......................................................................................................................................... 38

vi
■ CONTENTS

Recipe 2-8. Referencing Class Members ....................................................................... 38


Problem ................................................................................................................................................ 38
Solution................................................................................................................................................. 38
How it Works......................................................................................................................................... 38

Recipe 2-9. Instantiation of Classes ............................................................................... 39


Problem ................................................................................................................................................ 39
Solution................................................................................................................................................. 39
How it Works......................................................................................................................................... 40

Recipe 2-10. Printing Objects......................................................................................... 41


Problem ................................................................................................................................................ 41
Solution................................................................................................................................................. 41
How it Works......................................................................................................................................... 41

Recipe 2-11. Variable Overloading ................................................................................. 42


Problem ................................................................................................................................................ 42
Solution................................................................................................................................................. 42
How it Works......................................................................................................................................... 42

Recipe 2-12. Serializing Types and Object ..................................................................... 44


Problem ................................................................................................................................................ 44
Solution................................................................................................................................................. 44
How it Works......................................................................................................................................... 45

Recipe 2-13. Copying an Object ..................................................................................... 46


Problem ................................................................................................................................................ 46
Solution................................................................................................................................................. 46
How it Works......................................................................................................................................... 46

Recipe 2-14. Using Objects as Functions ....................................................................... 47


Problem ................................................................................................................................................ 47
Solution................................................................................................................................................. 47
How it Works......................................................................................................................................... 47

vii
■ CONTENTS

Recipe 2-15. Overloading Methods ................................................................................ 48


Problem ................................................................................................................................................ 48
Solution................................................................................................................................................. 48
How it Works......................................................................................................................................... 48

Recipe 2-16. Debugging Objects .................................................................................... 49


Problem ................................................................................................................................................ 49
Solution................................................................................................................................................. 49
How it Works......................................................................................................................................... 50

Recipe 2-17. Using Objects without a Class .................................................................. 51


Problem ................................................................................................................................................ 51
Solution................................................................................................................................................. 51
How it Works......................................................................................................................................... 51

Recipe 2-18. Directory Iteration ..................................................................................... 52


Problem ................................................................................................................................................ 52
Solution................................................................................................................................................. 52
How it Works......................................................................................................................................... 52

Recipe 2-19. Writing Reusable Code .............................................................................. 53


Problem ................................................................................................................................................ 53
Solution................................................................................................................................................. 53
How it Works......................................................................................................................................... 53

Recipe 2-20. Avoiding Name Collisions .......................................................................... 57


Problem ................................................................................................................................................ 57
Solution................................................................................................................................................. 57
How it Works......................................................................................................................................... 57

Recipe 2-21. Autoloading Classes on First Use .............................................................. 59


Problem ................................................................................................................................................ 59
Solution................................................................................................................................................. 59
How it Works......................................................................................................................................... 59

viii
■ CONTENTS

■Chapter 3: Performing Math Operations .............................................................. 61


Recipe 3-1. Changing the Base Values for Numbers...................................................... 62
Problem ................................................................................................................................................ 62
Solution................................................................................................................................................. 62
How it Works......................................................................................................................................... 62

Recipe 3-2. Converting to a Different Base Value .......................................................... 63


Problem ................................................................................................................................................ 63
Solution................................................................................................................................................. 63
How it Works......................................................................................................................................... 63

Recipe 3-3. Storing Binary Values in Integers ................................................................ 64


Problem ................................................................................................................................................ 64
Solution................................................................................................................................................. 64
How it Works......................................................................................................................................... 64

Recipe 3-4. Setting and Clearing Bits in Binary ............................................................. 65


Problem ................................................................................................................................................ 65
Solution................................................................................................................................................. 65
How it Works......................................................................................................................................... 65

Recipe 3-5. Using Hexadecimal Numbers ...................................................................... 66


Problem ................................................................................................................................................ 66
Solution................................................................................................................................................. 66
How it Works......................................................................................................................................... 66

Recipe 3-6. Increasing Performance with Binary Shift .................................................. 67


Problem ................................................................................................................................................ 67
Solution................................................................................................................................................. 67
How it Works......................................................................................................................................... 67

Recipe 3-7. Rounding Floating Point Numbers .............................................................. 69


Problem ................................................................................................................................................ 69
Solution................................................................................................................................................. 69
How it Works......................................................................................................................................... 69

ix
■ CONTENTS

Recipe 3-8. Generating Random Numbers ..................................................................... 70


Problem ................................................................................................................................................ 70
Solution................................................................................................................................................. 70
How it Works......................................................................................................................................... 70

Recipe 3-9. Expressing Ratios with Logarithmic Functions ........................................... 71


Problem ................................................................................................................................................ 71
Solution................................................................................................................................................. 71
How it Works......................................................................................................................................... 71

Recipe 3-10. Calculating Future Values ......................................................................... 71


Problem ................................................................................................................................................ 71
Solution................................................................................................................................................. 71
How it Works......................................................................................................................................... 72

Recipe 3-11. Using Trigonometry to Calculate Distance and Direction .......................... 73


Problem ................................................................................................................................................ 73
Solution................................................................................................................................................. 73
How it Works......................................................................................................................................... 73

Recipe 3-12. Working with Complex Numbers ............................................................... 74


Problem ................................................................................................................................................ 74
Solution................................................................................................................................................. 74
How it Works......................................................................................................................................... 75

■Chapter 4: Working with Arrays .......................................................................... 77


Recipe 4-1. Creating Arrays ........................................................................................... 77
Problem ................................................................................................................................................ 77
Solution................................................................................................................................................. 77
How it Works......................................................................................................................................... 78

Recipe 4-2. Changing Arrays .......................................................................................... 79


Problem ................................................................................................................................................ 79
Solution................................................................................................................................................. 79
How it Works......................................................................................................................................... 80

x
■ CONTENTS

Recipe 4-3. Adding Arrays .............................................................................................. 81


Problem ................................................................................................................................................ 81
Solution................................................................................................................................................. 82
How it Works......................................................................................................................................... 82

Recipe 4-4. Arrays of Arrays........................................................................................... 86


Problem ................................................................................................................................................ 86
Solution................................................................................................................................................. 86
How it Works......................................................................................................................................... 86

Recipe 4-5. Traversing Arrays ........................................................................................ 88


Problem ................................................................................................................................................ 88
Solution................................................................................................................................................. 88
How it Works......................................................................................................................................... 88

Recipe 4-6. Sorting Arrays ............................................................................................. 90


Problem ................................................................................................................................................ 90
Solution................................................................................................................................................. 90
How It Works......................................................................................................................................... 90

Recipe 4-7. Using Arrays as Stacks ............................................................................. 100


Problem .............................................................................................................................................. 100
Solution............................................................................................................................................... 101
How it Works....................................................................................................................................... 101

Recipe 4-8. Slicing and Splicing Arrays ....................................................................... 102


Problem .............................................................................................................................................. 102
Solution............................................................................................................................................... 102
How it Works....................................................................................................................................... 102

Recipe 4-9. Debugging Arrays...................................................................................... 105


Problem .............................................................................................................................................. 105
Solution............................................................................................................................................... 105
How it Works....................................................................................................................................... 106

xi
■ CONTENTS

Recipe 4-10. Storing Arrays ......................................................................................... 107


Problem .............................................................................................................................................. 107
Solution............................................................................................................................................... 107
How it Works....................................................................................................................................... 107

■Chapter 5: Dates and Times............................................................................... 109


Recipe 5-1. Working with Time Zones .......................................................................... 109
Problem .............................................................................................................................................. 109
Solution............................................................................................................................................... 109
How it Works....................................................................................................................................... 110

Recipe 5-2. Creating a Timestamp ............................................................................... 110


Problem .............................................................................................................................................. 110
Solution............................................................................................................................................... 110
How it Works....................................................................................................................................... 111

Recipe 5-3. Working with Dates ................................................................................... 112


Problem .............................................................................................................................................. 112
Solution............................................................................................................................................... 112
How it Works....................................................................................................................................... 112

Recipe 5-4. Displaying Timestamps ............................................................................. 113


Problem .............................................................................................................................................. 113
Solution............................................................................................................................................... 113
How it Works....................................................................................................................................... 113

Recipe 5-5. Using ISO Formats .................................................................................... 116


Problem .............................................................................................................................................. 116
Solution............................................................................................................................................... 116
How it Works....................................................................................................................................... 116

Recipe 5-6. Working with Week Numbers .................................................................... 117


Problem .............................................................................................................................................. 117
Solution............................................................................................................................................... 117
How it Works....................................................................................................................................... 118

xii
■ CONTENTS

Recipe 5-7. The DateTime Class .................................................................................. 118


Problem .............................................................................................................................................. 118
Solution............................................................................................................................................... 118
How it Works....................................................................................................................................... 118

Recipe 5-8. Storing Date and Time Values ................................................................... 122


Problem .............................................................................................................................................. 122
Solution............................................................................................................................................... 122
How it Works....................................................................................................................................... 122

Recipe 5-9. Calculating Elapsed Time .......................................................................... 123


Problem .............................................................................................................................................. 123
Solution............................................................................................................................................... 123
How it Works....................................................................................................................................... 123

■Chapter 6: Strings.............................................................................................. 125


Recipe 6-1. Creating Strings ........................................................................................ 125
Problem .............................................................................................................................................. 125
Solution............................................................................................................................................... 125
How it Works....................................................................................................................................... 125

Recipe 6-2. Working with the Characters in a String ................................................... 126


Problem .............................................................................................................................................. 126
Solution............................................................................................................................................... 126
How it Works....................................................................................................................................... 126

Recipe 6-3. Replacing Characters ................................................................................ 127


Problem .............................................................................................................................................. 127
Solution............................................................................................................................................... 127
How it Works....................................................................................................................................... 127

Recipe 6-4. Creating Long Strings with Heredoc and Newdoc .................................... 128
Problem .............................................................................................................................................. 128
Solution............................................................................................................................................... 128
How it Works....................................................................................................................................... 128

xiii
■ CONTENTS

Recipe 6-5. Escaping Strings ....................................................................................... 130


Problem .............................................................................................................................................. 130
Solution............................................................................................................................................... 131
How it Works....................................................................................................................................... 131

Recipe 6-6. Reformatting Strings ................................................................................. 132


Problem .............................................................................................................................................. 132
Solution............................................................................................................................................... 132
How it Works....................................................................................................................................... 132

Recipe 6-7. Trimming Whitespace................................................................................ 133


Problem .............................................................................................................................................. 133
Solution............................................................................................................................................... 133
How it Works....................................................................................................................................... 133

Recipe 6-8. Finding Strings in Strings ......................................................................... 133


Problem .............................................................................................................................................. 133
Solution............................................................................................................................................... 134
How it Works....................................................................................................................................... 134

Recipe 6-9. Dividing Strings into Substrings................................................................ 135


Problem .............................................................................................................................................. 135
Solution............................................................................................................................................... 135
How it Works....................................................................................................................................... 135

Recipe 6-10. Displaying HTML Entities ........................................................................ 137


Problem .............................................................................................................................................. 137
Solution............................................................................................................................................... 137
How it Works....................................................................................................................................... 137

Recipe 6-11. Generating Hash Values for Files ............................................................ 139


Problem .............................................................................................................................................. 139
Solution............................................................................................................................................... 139
How it Works....................................................................................................................................... 139

xiv
Random documents with unrelated
content Scribd suggests to you:
dangerous are those which interfere directly with the muscular
power of the heart or diminish its nerve-supply.

In order that the influence exerted by an abnormal nerve-supply


upon the contractility of the cardiac muscles may be more apparent,
let us glance at a few modern physiological facts. When the
inhibitory nerve of the heart, the pneumogastric, is cut, the heart
beats wildly. When the peripheral cut end is stimulated, the heart
stops in diastole. But neither of these phenomena instantly follows
the operations, on account of the intervening cardiac ganglia, the
part of the vaso-motor system which has its centre in the medulla
oblongata. Afferent inhibitory filaments (the depressor branch) of
the vaso-motor centre are also in the vagus. Now, by injecting
atropine into the blood we so influence these cardiac ganglia (which
intervene between the conditions of the vagus and the resulting
action upon the heart-beat) that the inhibitory action is entirely
checked. Thus an intimate connection is apparent between the local
heart-mechanisms, the general vaso-motor system, and some
filaments of the vagus. Again, we know that the natural explosive
decompositions of the nerve-cells of the respiratory centre may be
either augmented or enfeebled according to the condition of the
blood supplying this ganglion. Now divide the cervical portion of the
pneumogastric, and there results, after a more or less prolonged
period, an extensive pulmonary consolidation (hepatization), which is
not accompanied by the least sign of heart-failure. It is to be
remembered that such pulmonary consolidation has none of the
essential pathological characteristics of croupous pneumonia.22
22 Michael Foster, Wagner, Goetz, Heidenhain, Du Bois-Reymond, Ludwig, and Pflüger.

From these experiments the following deductions seem at least


reasonable: The tonic influence normally held by the vaso-motor
system of nerves over the vascular system is either lessened or
destroyed by an altered blood-state or by some morbific agent in the
blood introduced from without. The large quantity of blood which
would then be retained in the arterioles throughout the body, and
which could not be returned to the heart, may cause so great a
diminution in the blood-pressure as in itself to cause heart-failure.
But in addition, and in connection with this, may not the action of a
morbific material in the blood upon the intrinsic cardiac ganglia so
interfere with their function, or so act upon the medullary vaso-
motor centre itself, that the movements of the heart are deranged
and its power is more or less diminished?

It would seem that this materies morbi in the blood may as well act
upon both the medullary centre of the vaso-motor system and the
ganglia in the wall of the heart as upon either alone. The
phenomena of asphyxia are brought about by influences acting
solely on the medullary centre. Again, the large amount of urea
excreted, the result of excessive tissue-change throughout the body,
may also be due to deranged nerve-function.

Klebs23 even claims that he has found the infectious agent—a monas
pulmonale—which can be inoculated, with the result of developing
croupous pneumonia. This has been credited so far as to lead to the
subcutaneous injection of carbolic acid to destroy the pneumonic
germ. Incidentally, it may be remarked that it has been shown that
the contagion of the pleuro-pneumonia of cattle, according to
Parkes, "has been found in the pus- and epithelium-cells of the
sputa." The true nature of the pneumonia poison, if one exists, is as
little determined as that of the other acute contagious general
diseases. But, whatever its nature may be, its primary action seems
to be on the nerve-centres.
23 Arch. für exper. Path. u. Pharm., vol. iv., 1875.

SYMPTOMS.—The symptoms of croupous pneumonia may be


considered under two heads—Subjective, or rational symptoms; and
Objective, or physical signs.

Subjective Symptoms.—In only a small proportion of cases are there


prodromata. Grisolle found that prodromata occurred in 50 out of
205 adult cases, or in about 25 per cent.; and Fox says that he finds
the proportion to be about 28 per cent. In old age they seem to be
more frequent, the proportion being about 60 per cent.24
24 Durand-Fardel, Mal. des Viellards.

There may be for a day or two, or even for a week, preceding a


pneumonic seizure a feeling of general malaise, accompanied by
anorexia, headache, dull pains in the limbs, back, and lumbar region,
vertigo, epistaxis, or slight diarrhoea. Sometimes the skin assumes a
slightly jaundiced hue, and there may be flashes of heat
accompanied by, or alternating with, slight rigors. Flying pains in the
limbs and chest and epistaxis are common in senile croupous
pneumonia. When prodromes have existed more than three or four
days, they will be vague and undefined.

Rise in temperature as a prodrome is by some thought to be caused


by a deep-seated and undiscoverable hepatization. But let us take
one example from many in support of a contrary view—viz. the case
of an inmate of Bellevue Hospital during the winter of 1880–81. For
three days preceding the first appearance of consolidation the
temperature ranged at 102° and 103° F. During this time there were
several slight rigors followed by flashes of heat.

Wilson Fox25 states that he knows of but one case—the one referred
to by Monthus in his Essai sur la Pneumonie double.
25 Reynolds's System, art. "Pneumonia."

In epidemics febrile symptoms and diarrhoea often precede for some


two or three days the first sign of consolidation.26
26 The Lancet, vol. ii., 1878, p. 701, Couldrey.

In the great majority of cases croupous pneumonia is ushered in by


a distinct chill. Huss and Grisolle found a chill in 80 per cent. of their
cases; Fismer and Louis in about 77 per cent. of theirs; and Lebert
in over 92 per cent. of his. In 84 out of 100 cases admitted to my
ward in Bellevue Hospital, a distinct chill marked the invasion of the
disease.

Generally, the patient retires in his usual health, to be seized with a


severe chill during the night. The chill lasts from half an hour to two
or three hours. Its abruptness and severity are almost characteristic
of the pneumonia.

In children, headache, nausea, vomiting, delirium, and convulsions


may take the place of the chill; its onset then closely resembles that
of the exanthemata, indicating the action of some irritating poison
upon the nerve-centres. When these symptoms are not present
there will be more or less anorexia, thirst, and a tendency to stupor.
The child will awake in the middle of the night with a burning skin, a
bounding pulse, flushed face, and hacking cough. When there are
convulsions, followed by a loss of consciousness, the pneumonia is
usually at the apex of the lung.27
27 Rilliet and Barthez.

If an old person is seized with a severe chill during the night, it is


almost a certain indication that pneumonia is developing. Although
the chill of invasion is of less frequent occurrence, it is more
significant than in adult life. A protracted fit of shivering and pain in
the side are the two diagnostic symptoms of acute sthenic senile
pneumonia. They occur in about 50 per cent. of all cases, and from
statistics taken from the Salpêtrière it seems that in March and April
these two symptoms are almost always present.

In the other half of the cases of senile pneumonia the onset is


marked by a frequent, irregular respiration, slight rise in
temperature, short hacking cough, and signs of great exhaustion.
Nausea, vomiting, diarrhoea, and collapse or a semi-comatose
condition may usher in a senile croupous pneumonia.
Durand and Fardel give the following statistics of the mode of advent
in 35 cases of senile pneumonia: 7 began with distinct rigors; 8 with
rigors and pain in the side; 6 with rigors and vomiting; 8 with pain in
side alone; and 6 with vomiting only. When a chill is the initial
symptom, either in childhood, adult life, or at the senile period, it is
rarely repeated.

In adults, following the chill there is usually pain underneath the


nipple of the affected side; sometimes the earliest symptoms
following the chill are headache, vomiting, and diarrhoea, dyspnoea,
a hacking cough, and pain that simulates that of lumbago. Within
twenty-four hours after the invasion the aspect of the patient
becomes characteristic: there is a rapid rise in temperature, attended
with great prostration; the pain in the side is aggravated by
coughing and deep inspirations; and the respiratory movements are
accelerated. The countenance assumes a dull or anxious expression,
with a tendency to lividity; the pulse is accelerated, full, and soft;
there is complete anorexia and great thirst; speech is difficult, and
often there is great restlessness. The urine becomes scanty and
high-colored, the bowels are constipated, and the tongue is dry and
covered with a white coating.

These symptoms either increase in severity or are attended by


exacerbations and remissions until the day of crisis, which usually
occurs between the third and the ninth day; when, if recovery is to
take place, there is a sudden remission of all the pneumonic
symptoms; the temperature falls abruptly; the surface becomes
moist; the flush of the countenance disappears; the pulse and
respiration become normal; and the patient rapidly passes on to
complete convalescence.

In some cases the decline in the symptoms is gradual and the


disease terminates by lysis and not by crisis. In unfavorable cases
signs of heart-failure appear within the first few days, and the
patient sinks rapidly into collapse and dies.
With this brief outline of the disease I will pass to an analysis of its
prominent symptoms.

Respiration.—The respirations are more constantly increased in


frequency in croupous pneumonia than in any other acute disease.
In most febrile diseases the respirations increase in frequency with
the pulse-rate. In pneumonia there is no uniform ratio between
pulse and respiration; this is regarded by some as an important
diagnostic sign.28 In some cases the respirations will be 80, and the
pulse only 90, per minute. The acceleration in the respiration is not
in proportion to the amount of lung-tissue involved, but seems to be
due to a peculiar condition of the nervous system which existed prior
to the pneumonic seizure or is caused by a poison acting upon the
nerve-centres. Traube29 thinks that it is due to the pain and to the
high temperature. This theory would not explain its occurrence in
those cases where the pleura is not involved—i.e. when no pain is
present—and yet the shallow, panting, rapid breathing is well
marked.
28 Dis. of Lungs, Walshe, 1860, p. 366.

29 Annal. de Charité

In other pulmonary diseases, when there is high temperature, as in


acute phthisis, the respirations are not so much accelerated as in
pneumonia. The character of the respiratory acts is also peculiar:
they resemble the panting of a dog. Accelerated breathing may or
may not be accompanied by dyspnoea; in many cases the dyspnoea
seems to be independent of it, for extreme dyspnoea is often
present where the respirations are but slightly increased in
frequency.

In children the acceleration of respiration is more marked than in


adults, and the ascent of the chest occurs during expiration, and
not, as normally, with the inspiration. The diaphragm is markedly
contracted with each expiratory act, and the diagnosis will as often
be made by the character of the respiration as by the physical
exploration of the chest, for in children the early physical signs of
pneumonia are often unsatisfactory.

The hurried breathing prevents a young child from nursing; it takes


the mother's nipple for an instant, nurses greedily, and then drops
back, gasping for breath.

It is to be remembered that in pneumonia in children the pulse and


respiration discrepancy will not be so well marked as in adults: the
pulse may be 150 to 160 per minute, while the respirations are 80 or
90. In children there will early be noticed the peculiar expansion of
the nostrils which comes on late in adults. In senile pneumonia the
chest enlarges vertically during inspiration. The whole act has a
panting character, and the expiration is prolonged.

In perfectly healthy old people the inspiratory movements are jerky


in character. The lungs become fully expanded only after a
succession of interrupted efforts. An exaggeration of what is
physiological in old age—i.e. catchy breathing—is the most frequent
form of abnormal respiration in senile pneumonia.

Dyspnoea, although frequently accompanying accelerated


respiration, is by no means a constant attendant of it. When urgent
it is not in proportion to the amount of lung involved, since double
pneumonia may be accompanied by less dyspnoea than when but
one lobe is involved. It can be due only in small degree either to the
diminution in the total breathing capacity, to the pain, or to the rapid
and destructive tissue-metamorphosis; for on the day of crisis it
ceases, although the lung at this time is not relieved of its
obstructive exudation. The most intense dyspnoea usually occurs in
those cases where there is extensive nervous prostration, and must
always be regarded as a symptom of great gravity.

In secondary pneumonias, especially where there is coexistent


disease in any part of the respiratory tract, the dyspnoea is usually
more marked than in primary and uncomplicated pneumonia. It
differs from the labored dyspnoea of general capillary bronchitis. A
diagnosis between these two diseases can often be made by the
character of the dyspnoea.

When the summit of the lung is involved, the dyspnoea is always


greater than when the pneumonia is at the base. In pneumonia of
the apex in children the dyspnoea is so great that the nostrils are
widely dilated, the mouth is open, and its corners are drawn
downward and outward. In senile pneumonia, even when the
respirations are 70 per minute, patients do not complain of difficulty
in breathing.

When persons over seventy who have been asthmatic or are the
subjects of chronic bronchitis develop a pneumonia, they often
suffer less from dyspnoea than before the pneumonic attack. They
feel exhausted, are unable to move about, and on lying down to rest
often suddenly expire.

Immediately after the initial chill pain is present in over 85 per cent.
of the cases. It is of a sharp stabbing character, and is usually
located over the seat of the pneumonia; it is intensified by coughing,
sneezing, and deep inspirations. In some cases there is tenderness
on pressure over the seat of the pain. The pain usually disappears
after the third or fourth day of the disease; if it continues until the
eighth day, it may be regarded as evidence of pleuro-pneumonia. If
the pneumonia is central there will be no pain. In old age, even in a
pleuro-pneumonia, pain is never severe. It is rather a dull, uneasy
sensation referred to the whole chest, or if localized by the aged
patient is referred to the pit of the stomach, the nipple, the loins, the
hypochondrium, or even to the side opposite to the one involved.

Cough is generally present within twenty-four hours after the


accession of croupous pneumonia. At first it is short, ringing, or
hacking in character, and increases the pain in the side. It
sometimes entirely ceases just before a fatal termination. In children
a hacking cough is more constant than in adults. Within a few hours
it becomes painful and urgent, and occasionally assumes a
paroxysmal character, resembling whooping cough.

Old people with pneumonia often have no cough. When present it is


slight, and may escape the notice of the patient as well as of the
physician. When an aged person suffering from chronic bronchitis or
asthma, who has had a chronic cough, develops a pneumonia, the
cough generally becomes less severe, and may entirely cease.

Expectoration.—The sputum in pneumonia is characteristic. During


the first forty-eight hours it is simply frothy mucus; then it becomes
semi-transparent, viscid, gelatinous, and tenacious, but never
opaque. Streaks of blood often appear early, mixed with the sputa.
So tenacious is it that the cup which contains it may be inverted
without spilling the mass. It can be drawn out between the thumb
and finger into thin strings, and its tenacity undoubtedly is one
cause of the difficulty in its expectoration. Its color varies: generally
on the second day the brick-dust or rusty sputa are observed; still,
there are numerous exceptions. The color is due to admixture of
blood which extravasates from the capillaries of the alveoli. The
rusty sputa are preceded in some cases by a transient brighter red
expectoration. In other cases it is of a creamy-yellow color,
resembling in this respect ordinary catarrhal sputa; or, again, it
becomes dark and of a prune-juice color. A severe pneumonia may
have none other than a purulent sputum.

Prune-juice sputa of an offensive odor are indicative of a depraved


state, and occur only in grave forms of pneumonia. In alcoholismus
and in those markedly septic forms of pneumonia which are to end
fatally, the prune-juice or burnt-sienna sputum is usually present. In
some instances prune-juice sputa appear before the physical
evidences of hepatization.

A watery and blood-stained expectoration indicates pulmonary


oedema and congestion, and is an unfavorable symptom. When a
case is tending to a fatal termination, the sputa become scanty, less
tenacious, more diffluent, and often of a greenish color. But a
greenish color may be present during the stage of resolution, and
may temporarily occur in the middle period of a pneumonia, without
being indicative of serious changes. It is usually present in the so-
called bilious pneumonia when there is jaundice.

Pre-existing or complicating lung diseases may mask or alter the


ordinary rusty pneumonic sputa. On the day of crisis, when
resolution occurs, the sputa usually become abundant and of a
creamy-yellow color. But purulent creamy sputa may occur with a
complicating abscess and in some cases of purulent infiltration.
During the whole course of the disease there may not be a single
characteristic sputum, or it may not be present until the fifth, sixth,
or even the twelfth day of the pneumonia. Again, the sputa may
continue of a brick-dust hue until the ninth or tenth day. There is
frequently an entire absence of expectoration in the pneumonia of
acute articular rheumatism and in pneumonia of the apex.

Lastly, the sputa may be more or less pigmented, or when


venesection or purgation has been extensively practised
expectoration may suddenly cease.

In children expectoration is rarely present, but the brick-dust masses


may often be detected in the ejected matter after an attack of
vomiting. In senile pneumonia expectoration is never an early
symptom, and it is liable during any period of the disease to
suddenly cease. Rusty sputa occur in only about 33 per cent. of
senile pneumonias. They are at first scanty, gray, and frothy, then
yellow or catarrhal (sputa cocta). In severe and fatal cases profuse
bloody expectoration may be present at the onset. The reason why
the viscid (pathognomonic) sputum of pneumonia is so often absent
in senile pneumonia is that the stages pass rapidly into each other,
and purulent infiltration takes place very early. The day of crisis is
not marked by the same changes in the expectoration that mark the
crisis in pneumonia of adult life.
A chocolate-looking serous expectoration usually accompanies the
so-called typhoid pneumonia.

When examined under the microscope, the sputum is found to


contain swollen epithelia, both spheroidal and columnar, red and
white blood-globules, minute spherules of fat, and the other
elements which were described as filling the alveoli during the stage
of red hepatization. (See Morbid Anatomy.)

Walshe affirms that pus-cells are not found in the brick-dust


expectoration of pneumonia. The mucoid cells will often be stained
by the liberated coloring matter of the blood, and pigment-granules
may be found mingled with the granular débris of its resolving stage.
In about 75 per cent. of the cases there will be found in the sputa,
when floated in water, casts of the alveoli and bronchioles.30
30 Diagnost. u. Pathognos. Untersuch., 1845, Remak.

The chemical constituents of the sputa are albumen, mucus, and


mucin. Different observers have found the sputa to contain tyrosin
and sugar. There are two explanations of the acid reaction of
pneumonic sputa.31 Verdeil thought it due to the excess of pneumic
acid in the inflamed lung. Bamberger claims that it is due to the
deficiency in alkaline phosphates.32
31 Gaz. méd., 1851, p. 777, Robin et Verdeil; Chem. Anat. Phys., vol. ii. p. 460 et seq.

32 Wurtzburg Med. Zeitschr., ii., No. 506.

It may be noticed that the following differences exist between


pneumonic and catarrhal sputa: catarrhal sputa contain 10 to 14 per
cent. of alkaline earths; pneumonic sputa contain no alkaline
phosphates. In catarrh the ratio of the soda to the potash is 31 to
20; in pneumonia the ratio is 15 to 41. There is 3 per cent. of
sulphuric acid in catarrhal and 8 per cent. in pneumonic sputa.
Early in pneumonia there is an increase of the fixed salts, notably
chloride of sodium, in the serum of the blood. It has been thought
that from the rapid and excessive cell-transformation in the lung the
chloride of sodium is attracted to that organ. In one case where no
sodium chloride was found in the urine 10 per cent. of the solid
material of the sputa consisted of that salt. Still, the presence of it in
the sputa and blood, and its absence from the urine, are facts that
still need elucidation.33
33 Beale gives the following analytical table of a case of acute pneumonia:

Chloride of Sodium. Per cent. of Solids.


Urine 0.00
Blood from heart 0.68
Hepatized lung 2.59
Healthy lung 1.43

The expired air in croupous pneumonia is colder than normal, and,


as in many acute general diseases, there is a diminution in the
amount of carbonic acid excreted.

Temperature.—The temperature-range of a typical case of croupous


pneumonia shows it to belong to the remittent or subremittent type
of diseases rather than to the class of febrile disorders marked by a
continuous pyrexia. In rare instances it is intermittent.

As in most acute general diseases which are ushered in by a distinct


chill, the temperature rises rapidly during the chill. In two or three
hours after the chill it may range from 102° to 105° F. After twenty-
four hours it is subject to evening exacerbations and morning
remissions, but the morning temperature is rarely more than 2° F.
lower than the evening. Indeed, the difference in the subremittent
type may amount to only ½° F., and in the remittent type to only 1°
F. At midnight a second exacerbation may occur, but not so marked
as that occurring early in the evening. Occasionally the remissions
occur in the evening and the exacerbations in the morning.
FIG. 33.

A Typical Case of Lobar Pneumonia in the Adult: Recovery by Crisis.

The temperature is usually highest on the evening of the third day.


In some cases the maximum range may not be reached until a few
hours before the crisis, on the fifth or sixth day. In fatal cases, just
preceding death, the temperature may reach 107° or even 109° F.

An (average) typical temperature-curve is shown on the preceding


page (Fig. 33).

If after the fourth day of a pneumonia an unusual remission is


followed by a high temperature-range, either an extension of the
pneumonia or the occurrence of some active complication is
indicated. If in an otherwise mild pneumonia the temperature
suddenly rises to a high point, a grave complication is indicated. The
sudden fall of temperature on the fifth or sixth day indicates a crisis
and the beginning of convalescence; it may occur in the morning or
after the evening exacerbation.

In a typical case it is usual to find the temperature on the morning


of the fifth, sixth, or seventh day two or more degrees lower than on
the preceding night, and subsequently it falls until a normal, or not
infrequently a subnormal, temperature is reached. The crisis may
occur by successive and increasing remissions, while the
exacerbating temperature remains constant (Fig. 34); and indeed it
is common for the remissions to be excessive immediately preceding
the crisis.

FIG. 34.
Lobar Pneumonia, where the Crisis was marked with Evening
Exacerbations, reaching nearly the highest pyrexia of the second stage:
Recovery.

Just before the final fall the fever may be greater than at any time
preceding.34 When the decline in temperature is gradual (lysis), the
normal temperature is usually reached by the ninth day, but it may
be delayed until the twelfth or fourteenth day. A very slow or
protracted lowering of the temperature is attended by a coincident
slow disappearance of the physical signs of consolidation. There is
no explanation for this, except that it is met with oftenest in the
weak, debilitated, and dissipated where venesection has been
practised or a depressing plan of treatment has been resorted to.
34 See Fig. 33, where a temperature of nearly 105° F. is followed on the evening of
the fifth day by the final fall.

A high temperature persisting after the tenth day indicates purulent


infiltration (see Fig. 38).

Pneumonia involving the apex of the lung is usually marked by a


higher average range of temperature than when it is confined to the
lower lobes. Statistics show that the fifth and seventh days are the
days of crisis in the majority of uncomplicated pneumonias. Of 867
cases terminating by crisis, in 677 the crisis occurred before the
eighth day. Neither the height of the temperature-range nor the
amount of lung involved affects the critical day.

In the form of pneumonia sometimes called bilious—a form that


prevails in miasmatic regions—the temperature is markedly
paroxysmal.

In children the temperature rises very rapidly, sometimes reaching


106° F. within the first twelve hours. The highest recorded
temperature in the pneumonia of children, with recovery, is 106°–
107° F. The average temperature of pneumonia at this period of life
is 104° F., the range being higher than in adult pneumonia.

In children the day of crisis is oftener the seventh than the fifth day.
The fall of temperature during the crisis is somewhat remarkable; it
often falls two and a half degrees below the normal, and this
exceedingly low temperature may be maintained for two or three
days, and yet the child recover.

The accompanying charts show ordinary temperature-curves from


children with pneumonia (see Figs. 35, 36).
FIG. 35.

A Typical Case of Lobar Pneumonia in a Child: Recovery.


FIG. 36.

A Case of Lobar Pneumonia in a Boy ten years old, in which thermometrical


observations were made every four hours: Crisis on the sixth day.
In old age it is often difficult to determine the exact day of the
invasion of pneumonia except by the temperature. The rectal
temperature rises to 103° or 104° F., or even higher, on the first
days, and continues at about the initial point for three or four days,
with daily morning and evening oscillations of a degree or a degree
and a half. The temperature-rise does not begin for several hours
after the initial chill, if a chill occur (see Fig. 37).

FIG. 37.
A Typical Case of Senile Lobar Pneumonia: Recovery.

Relapse in pneumonia is a rare event; it is quite phenomenal for it to


occur four days after the crisis. The temperature suddenly rises, but
usually returns to normal in three or four days.
Pulse.—The pulse in pneumonia varies with the type and extent, as
well as with the stage, of the disease. In an ordinary mild case the
pulse-rate is usually between 90 and 120 per minute. When the
pulse-rate for any length of time is above 120, the case must be
regarded as an exceedingly grave one.

The pulse at the onset of croupous pneumonia is usually full and


soft. As the disease progresses it becomes small and feeble. In
severe cases, and when the nervous system is markedly implicated,
it is rapid, and may be 130 to 140, or even 160, at the onset of the
disease. In such cases it will also be small and feeble.

A high temperature is usually accompanied by a rapid pulse, and a


low temperature by a moderately frequent, full pulse. At the day of
crisis, when the temperature falls, the pulse will fall; and this occurs
in the severe as well as in the mild cases.

Subsequent to the third or fourth day in severe cases the pulse, in


addition to its frequency and feebleness, may exhibit dicrotism, or it
may be jerky, very compressible, and intermittent. Sometimes just
before death the pulse becomes markedly slow. The feebleness of
the pulse is ascribed by some to cardiac depression, the result of the
high temperature; by others it is claimed that the afflux of blood to
the left ventricle obstructs, and causes a deficiency in, the aortic
circulation. In other words, hepatization is adduced as a cause of the
feeble pulse. In chronic wasting diseases, in feeble, weak individuals,
or in those already suffering from cardiac disease, weakness of the
pulse is a very marked symptom.

I cannot regard a feeble pulse in pneumonia as due to the


pulmonary hepatization, for it is not that pneumonia which is most
extensive that is accompanied by the greatest heart-flagging. Heart-
failure may exist before, or just as, consolidation is beginning. In
many pulmonary affections the obstruction to the pulmonary
circulation is greater than in pneumonia, and yet there is no heart-
failure. The pneumonia with the highest temperature-range is not
necessarily the pneumonia in which heart-failure is most marked or
earliest to develop. There are many diseases in which there is a
much higher range of temperature and yet no evidence of heart-
failure occurs.

If a prolonged high temperature is the cause of feeble heart-power


by the parenchymatous changes which it induces in its muscular
fibres, such a high fever is not met with in pneumonia, and the heart
is rarely found at post-mortem to exhibit such changes. May not the
heart-failure, as indicated by a rapid, feeble, and intermittent pulse
in pneumonia, be due to the presence in the blood of a morbific
agent (as in certain infectious diseases) which so affects the nerve-
centres which supply the heart that its contractile power is
diminished and its rhythm disturbed? The pulse early shows
commencing heart-failure by each cardiac pulsation producing a
variable filling of the arteries with blood; hence the beats first vary in
force, then waves occur, then true intermissions. I have been able to
detect this heart-insufficiency by these variations of the pulse within
twenty-four hours after the onset of a pneumonia, and occasionally
during the initiatory chill.

In children the pulse-rate is greatly increased; it may reach 200 in a


minute. It is very small, unequal and irregular, but never
intermittent.

In senile pneumonia the pulse is not a reliable indication. The pulse


may be only 50, and yet this would be a rapid pulse for the
particular case in which it occurs.

In old age, both in health and in disease, the pulse has a fictitious
hardness on account of arterial changes. The pulse may not be
intermittent or irregular, yet the heart may be very irregular and
intermittent in its action. Again, the pulse may be feeble and
intermittent and the heart be acting regularly.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookultra.com

You might also like