Jump to content

Archived

This topic is now archived and is closed to further replies.

ChambeRFienD

Script taking WAY too long...

Recommended Posts

Well, I'm writing a script to check a list of domains in a CSV file to see if they are being parked at GoDaddy or not. The script works, it just takes FOREVER to check just 2 domain names...

[code]<h1>CSV Domain Check</h1>

<?php
$row = 1;
$handle = fopen("file.csv", "r");
while (($data = fgetcsv($handle, 500, ",")) !== FALSE) {
$num = count($data);
for ($c=0; $c < $num; $c++) {
fopen($data[$c], "r");
$handle2 = fopen($data[$c], "r");
$contents = stream_get_contents($handle2, 1024);
$matchPattern = '.*Coming Soon!.*';
if (ereg($matchPattern, $contents, $result)) {
echo $data[$c] . "<br />\n";
} else {
}
}
}
fclose($handle);
?>
[/code]

Anyone have any idea on how to make this go faster?

Share this post


Link to post
Share on other sites
I'ts probably because your using ereg() on HUGE strings (especially the sites that actually have content).

Use strpos('Coming Soon!').

Share this post


Link to post
Share on other sites
Why do you open everything twice?

[code]
fopen($data[$c], "r");
$handle2 = fopen($data[$c], "r");
[/code]

Also you never close $handle2

Share this post


Link to post
Share on other sites
[code]
<h1>CSV Domain Check</h1>

<?php
$row = 1;
$handle = fopen("file.csv", "r");
while (($data = fgetcsv($handle, 500, ",")) !== FALSE) {
$num = count($data);
for ($c=0; $c < $num; $c++) {
$handle2 = fopen($data[$c], "r");
$contents = stream_get_contents($handle2, 1024);
if (preg_match('/.*Coming Soon!.*/', $contents, $result)) {
echo $data[$c] . "<br />\n";
} else {
}
}
fclose($handle2);
}
fclose($handle);
?>[/code]

Try that.

Share this post


Link to post
Share on other sites
Simpler and faster:

- file_get_contents() is faster than using fopen() and stream_get_contents().
- strpos() is A LOT faster than ereg() or preg_match() (Don't use those unless nessecary).

[code]<?php
$row = 1;
$fp = fopen("file.csv", "r");
while (($data = fgetcsv($fp, 500, ",")) !== false) {
$num = count($data);
for ($c=0; $c < $num; $c++) {
$contents = file_get_contents($data[$c]);
if (strpos($contents,'Coming Soon!') !== false) {
echo $data[$c] . "<br />\n";
}
}
}
fclose($fp);
?>[/code]

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.