OK so I'm not sure if str_replace is the best function to use, but here's what's going on:

I need to open a file of common words and delete every occurrence of a common word in a specified String (I also need to delete punctuation), then return a sorted array of the words in the string that are not common words.

Here's what I've got for code:

<?php
$common = file_get_contents('common.txt');

$commonArray = explode("\n",$common);
sort($commonArray);
array_unique($commonArray);


$myString = 'PHP is a scripted programming language that can be used to create websites. Short for "PHP: Hypertext Preprocessor" (the initials actually come from the earliest version of the program, which was called "Personal Home Page Tools"), it is an open-source, reflective programming language used mainly for developing server-side applications and dynamic web content, and more recently, a broader range of software applications. PHP allows interaction with a large number of relational database management systems, such as MySQL, Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL and SQLite. PHP runs on most major operating systems, including Unix, Linux, Windows, and Mac OS X, and can interact with many major web servers. The official PHP website contains very extensive documentation. There is a command line interface (CLI), as well as GUI libraries such as the Gimp Tool Kit (GTK+) and text mode libraries like Ncurses and Newt. PHP is the result of the efforts of many contributors. It is licensed under the PHP License, a BSD-style license. Since version 4, it has been powered by the Zend '.
            'engine.';

$puctuation = array('!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '-', '+', '=', '{', '}', '[', ']', ':', ';', '\'', '\"', '<','>', ',', '.', '?', '/');

//echo $myString . "<br/><br><br>";

$myString1 = str_replace($punctuation, '', addslashes($myString));

//echo $myString1;

$stringArray = explode(" ", $myString1);

//echo "<br><br>";

$difference = array_unique(array_diff($stringArray, $commonArray));

foreach($difference as $item)
  echo $item . "<br/>";
?>

and here are the common words (kind if a long list, sorry):

1-1 
a 
a's 
able 
about 
above 
according 
accordingly 
across 
actually 
after 
afterwards 
again 
against 
ain't 
all 
allow 
allows 
almost 
alone 
along 
already 
also 
although 
always 
am 
among 
amongst 
an 
and 
another 
any 
anybody 
anyhow 
anyone 
anything 
anyway 
anyways 
anywhere 
apart 
appear 
appreciate 
appropriate 
are 
aren't 
around 
as 
aside 
ask 
asking 
associated 
at 
available 
away 
awfully 
b 
be 
became 
because 
become 
becomes 
becoming 
been 
before 
beforehand 
behind 
being 
believe 
below 
beside 
besides 
best 
better 
between 
beyond 
both 
brief 
but 
by 
c 
c'mon 
c's 
came 
can 
can't 
cannot 
cant 
cause 
causes 
certain 
certainly 
changes 
clearly 
co 
com 
come 
comes 
concerning 
consequently 
consider 
considering 
contain 
containing 
contains 
corresponding 
could 
couldn't 
course 
currently 
d 
definitely 
described 
despite 
did 
didn't 
different 
do 
does 
doesn't 
doing 
don't 
done 
down 
downwards 
during 
e 
each 
edu 
eg 
eight 
either 
else 
elsewhere 
enough 
entirely 
especially 
et 
etc 
even 
ever 
every 
everybody 
everyone 
everything 
everywhere 
ex 
exactly 
example 
except 
f 
far 
few 
fifth 
first 
five 
followed 
following 
follows 
for 
former 
formerly 
forth 
four 
from 
further 
furthermore 
g 
get 
gets 
getting 
given 
gives 
go 
goes 
going 
gone 
got 
gotten 
greetings 
h 
had 
hadn't 
happens 
hardly 
has 
hasn't 
have 
haven't 
having 
he 
he's 
hello 
help 
hence 
her 
here 
here's 
hereafter 
hereby 
herein 
hereupon 
hers 
herself 
hi 
him 
himself 
his 
hither 
hopefully 
how 
howbeit 
however 
i 
i'd 
i'll 
i'm 
i've 
ie 
if 
ignored 
immediate 
in 
inasmuch 
inc 
indeed 
indicate 
indicated 
indicates 
inner 
insofar 
instead 
into 
inward 
is 
isn't 
it 
it'd 
it'll 
it's 
its 
itself 
j 
k 
keep 
keeps 
kept 
know 
knows 
known 
l 
last 
lately 
later 
latter 
latterly 
least 
less 
lest 
let 
let's 
like 
liked 
likely 
little 
look 
looking 
looks 
ltd 
m 
mainly 
many 
may 
maybe 
me 
mean 
meanwhile 
merely 
might 
more 
moreover 
most 
mostly 
much 
must 
my 
myself 
n 
name 
namely 
nd 
near 
nearly 
necessary 
need 
needs 
neither 
never 
nevertheless 
new 
next 
nine 
no 
nobody 
non 
none 
noone 
nor 
normally 
not 
nothing 
novel 
now 
nowhere 
o 
obviously 
of 
off 
often 
oh 
ok 
okay 
old 
on 
once 
one 
ones 
only 
onto 
or 
other 
others 
otherwise 
ought 
our 
ours 
ourselves 
out 
outside 
over 
overall 
own 
p 
particular 
particularly 
per 
perhaps 
placed 
please 
plus 
possible 
presumably 
probably 
provides 
q 
que 
quite 
qv 
r 
rather 
rd 
re 
really 
reasonably 
regarding 
regardless 
regards 
relatively 
respectively 
right 
s 
said 
same 
saw 
say 
saying 
says 
second 
secondly 
see 
seeing 
seem 
seemed 
seeming 
seems 
seen 
self 
selves 
sensible 
sent 
serious 
seriously 
seven 
several 
shall 
she 
should 
shouldn't 
since 
six 
so 
some 
somebody 
somehow 
someone 
something 
sometime 
sometimes 
somewhat 
somewhere 
soon 
sorry 
specified 
specify 
specifying 
still 
sub 
such 
sup 
sure 
t 
t's 
take 
taken 
tell 
tends 
th 
than 
thank 
thanks 
thanx 
that 
that's 
thats 
the 
their 
theirs 
them 
themselves 
then 
thence 
there 
there's 
thereafter 
thereby 
therefore 
therein 
theres 
thereupon 
these 
they 
they'd 
they'll 
they're 
they've 
think 
third 
this 
thorough 
thoroughly 
those 
though 
three 
through 
throughout 
thru 
thus 
to 
together 
too 
took 
toward 
towards 
tried 
tries 
truly 
try 
trying 
twice 
two 
u 
un 
under 
unfortunately 
unless 
unlikely 
until 
unto 
up 
upon 
us 
use 
used 
useful 
uses 
using 
usually 
v 
value 
various 
very 
via 
viz 
vs 
w 
want 
wants 
was 
wasn't 
way 
we 
we'd 
we'll 
we're 
we've 
welcome 
well 
went 
were 
weren't 
what 
what's 
whatever 
when 
whence 
whenever 
where 
where's 
whereafter 
whereas 
whereby 
wherein 
whereupon 
wherever 
whether 
which 
while 
whither 
who 
who's 
whoever 
whole 
whom 
whose 
why 
will 
willing 
wish 
with 
within 
without 
won't 
wonder 
would 
wouldn't 
x 
y 
yes 
yet 
you 
you'd 
you'll 
you're 
you've 
your 
yours 
yourself 
yourselves 
z 
zero 

When I run the code I get the following as output (another semi-long list):

(CLI),
(GTK+)
(the
4,
BSD-style
DB2,
GUI
Gimp
Home
Hypertext
IBM
It
Kit
License,
Linux,
Mac
Microsoft
MySQL,
Ncurses
Newt.
OS
Oracle,
PHP
Page
PostgreSQL
Preprocessor\"
SQL
SQLite.
Server,
Short
Since
The
There
Tool
Tools\"),
Unix,
Windows,
X,
Zend
\"PHP:
\"Personal
a
actually
allows
an
and
applications
applications.
as
be
been
broader
by
called
can
come
command
contains
content,
contributors.
create
database
developing
documentation.
dynamic
earliest
efforts
engine.
extensive
for
from
has
including
initials
interact
interaction
interface
is
it
language
large
libraries
license.
licensed
like
line
mainly
major
management
many
mode
more
most
number
of
official
on
open-source,
operating
powered
program,
programming
range
recently,
reflective
relational
result
runs
scripted
server-side
servers.
software
such
systems,
text
that
the
to
under
used
version
very
was
web
website
websites.
well
which
with

You'll notice that certain common words are not taken out for some reason, like the word "a". You'll also notice that punctuation is certainly not taken out - what did I do wrong?

    Have you copied this code word for word from your website?? if so the str_replace is trying to find $punctuation and you have set it as $puctuation

      haha boy do I feel like an idiot thanks a lot!

        Happens to me all the time. str_replace is also case sensative so a few words could be slipping through there and most of your common words have whitespace after them, I suggest trimming each of your common words.

          Write a Reply...