• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 214
  • Last Modified:

correctly using eregi

hello there,
im trying to show done if the $post has any word from the array but its not working on..
what can I do about this?
<?
$Post='the pages has finished downloading';
$regex = array('sucess','completed','finished');
if(eregi($regex, $Post)) {
	echo 'done';
}else{
	echo 'error';
}
?>

Open in new window

0
XK8ER
Asked:
XK8ER
  • 6
  • 2
1 Solution
 
synxCommented:
Here's the PHP manual for eregi: http://us3.php.net/eregi

Note that the first parameter that it's expecting is a string.  You are passing an array of strings.  Can you just check like this?


<?
$Post='the pages has finished downloading';
$regex = 'finished';
if(eregi($regex, $Post)) {
        echo 'done';
}else{
        echo 'error';
}
?>

Open in new window

0
 
synxCommented:
You may also be able to just put all of the things you want to search for in one big string.  Like:
<?
$Post='the pages has finished downloading';
$regex = 'success completed finished';
if(eregi($regex, $Post)) {
        echo 'done';
}else{
        echo 'error';
}
?>

Open in new window

0
 
XK8ERAuthor Commented:
these are key string that will decide if its success or fail

'successfully submitted'
'Thank you for submitting'
'submitted successfully'

how can I search the data and if any of those are found to echo success?
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
synxCommented:
Try this:

<?php
$regex = array('successfully submitted','Thank you for submitting','submitted successfully');
$success = 0;
;
foreach ($regex as $value) {
	if(eregi($value, $Post)) {
      echo 'success';
	  $success = 1;
	  break;
    }
}
if($success==0) {
  echo 'error';
}
 
?>

Open in new window

0
 
synxCommented:
sorry about the spacing on that code snippet.
0
 
synxCommented:
Sorry - forgot your "Post" line:
<?php
$Post='the pages has finished downloading';
$regex = array('successfully submitted','Thank you for submitting','submitted successfully');
$success = 0;
;
foreach ($regex as $value) {
  if(eregi($value, $Post)) {
    echo 'success';
	$success = 1;
	break;
  }
}
if($success==0) {
  echo 'error';
}
 
?>

Open in new window

0
 
XK8ERAuthor Commented:
it is showing 3 sucess.. it should show only one since $post changes.. if post has it sucess else error
0
 
synxCommented:
How about:
<?php
$Post='the pages has finished downloading';
$regex = array('successfully submitted','Thank you for submitting','submitted successfully');
$success = 0;
;
foreach ($regex as $value) {
  if(eregi($value, $Post)) {
    $success = 1;
  }
}
if($success==0) {
  echo 'error';
} else {
  echo 'success!';
}
 
?>

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 6
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now