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

searching for text within string

I have a PHP whois script and within one of the strings is "Domain name: DOMAIN.COM"
I would like to find "DOMAIN.COM" so that I can "href it"
0
prowebinteractiveinc
Asked:
prowebinteractiveinc
  • 6
  • 6
  • 2
  • +1
1 Solution
 
Ray PaseurCommented:
Well, it looks like it follow the colon, so the correct approach would be to use explode(':', $string) and then trim() position 1 of the resulting array.
0
 
Lukasz ChmielewskiCommented:
If the line is always in format
"Domain name: DOMAIN.COM",

<?php
$line = "Domain name: DOMAIN.COM";
$domain = substr($line,12);
echo"$domain";
?>

Open in new window


If not - use preg_match or post the output / script code.
0
 
Ray PaseurCommented:
http://us.php.net/manual/en/function.explode.php
http://us.php.net/manual/en/function.trim.php
<?php // RAY_temp_prowebinteractive.php
error_reporting(E_ALL);

// TEST DATA FROM THE POST AT EE
$str = "Domain name: DOMAIN.COM";

// THE DELIMITER
$dlm = ':';

// PARSE THE STRING
$arr = explode($dlm, $str);
$new = trim($arr[1]);

echo $new;

Open in new window

0
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

 
prowebinteractiveincAuthor Commented:
basically  of an array of values such as

$result['rawdata'][$i]

as I loop through the array I would like to search for the DOMAIN variable so I can href it
0
 
Beverley PortlockCommented:
As long as the domain is always at the end of the line, I would use a regex to take care of any variation in the early part of the string.

while( $result = ...... etc ) {

     $domain = preg_replace('#^.+?([\.-0-9a-zA-Z]+)\s*$#', '$1', $result['rawdata'][$i] );

     $link = "<a href='http://$domain'>$domain</a>";

     ..... etc
}
0
 
prowebinteractiveincAuthor Commented:
whats is the $1 variable all about ?
0
 
prowebinteractiveincAuthor Commented:
nevermind, I got the answer to that, however, what you sent me is not bad, but I want it to match the exact domain searched for, I dont wnat it picking up domain name servers, or registration providers domain
0
 
Beverley PortlockCommented:
In the pattern there is a bracketed group '#^.+?([\.-0-9a-zA-Z]+)\s*$#'  and in the replacement pattern (the second parameter) $1 represents that bracketed group.

What this statement is saying is "examine $result['rawdata'][$i] and if matches this pattern '#^.+?([\.-0-9a-zA-Z]+)\s*$#' then replace it with this '$1'."  In other words, if the pattern matches, the original data is completely replaced with the bracketed group represented by $1. So everything is removed and only the bracketed group which contains the domain data is retained.
0
 
Beverley PortlockCommented:
"...I want it to match the exact domain searched for, I dont wnat it picking up domain name servers, or registration providers domain"

If you know what domain you are searching for, then why are you trying to pick that domain out? You already know what the domain is?

Sorry - but I'm confused.......
0
 
prowebinteractiveincAuthor Commented:
regular expression not working properly, it duplicates the first letter of the domain, and does not match for upper and or lowercase
0
 
prowebinteractiveincAuthor Commented:
bportlock:  as I mentioned, I want to HREF the domain in the HTML so if the person doing the search as sees that the domain is taken, can click on the search domain directly from the page

Make sense ?
0
 
Beverley PortlockCommented:
So you want to replace the domain IN that string?

<?php

$test = "Domain name: DOMAIN.COM";

echo preg_replace('#^(.+?)([\.-0-9a-zA-Z]+)\s*$#', '$1<a href="http://$2">$2</a>', $test);

Open in new window

0
 
Beverley PortlockCommented:
"...regular expression not working properly, it duplicates the first letter of the domain, and does not match for upper and or lowercase..."

Is the string you are comparing exactly similar in format to the one you gave me as an example? If the format of the string is different then the regex will not match it.
0
 
prowebinteractiveincAuthor Commented:
I must be really bad at explaining what I want because Im not being understood

if the domain is msn.com  I want to find msn.com in the string, however depending on the registrar it could show in lower, or upper case, so I want to find the msn.com in the string and replace by <a href="msn.com">msn.com</a>
0
 
Beverley PortlockCommented:
OK - how about this?

<?php

$test = "Domain name: DOMAIN.COM";
$lookFor = "domain.com";

echo preg_replace('#('.$lookFor.')#is', "<a href='http://$lookFor'>\$1</a>", $test);

// or this

echo "<br/>";

echo preg_replace('#('.$lookFor.')#is', "<a href='http://$lookFor'>$lookFor</a>", $test);

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

Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

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