Jump to content

[SOLVED] Remove


Bakes

Recommended Posts

I'm really confused with my REGEX's. They work horribly, so I'm not even going to post them here.

 

000001 "Go Away" (W) GUID=671e78a6308032bed8b1d14587e24de4(VALID) [2009.05.28 19:22:06]

How would I strip all the characters other than:

671e78a6308032bed8b1d14587e24de4

 

Please help, I've been stuck with this for hours!

Link to comment
https://forums.phpfreaks.com/topic/160058-solved-remove/
Share on other sites

Something like this?

 

$str = '000001 "Go Away" (W) GUID=671e78a6308032bed8b1d14587e24de4(VALID) [2009.05.28 19:22:06]';
preg_match('#GUID=([^(]+)#', $str, $match);
echo $match[1];

 

Granted, this doesn't strip out the characters, but rather fetches just what you are looking for. If you need to strip them out, you can do something like this instead:

 

$str = preg_replace('#^.+?GUID=([^(]+).*#', '$1', $str);

 

This assumes of course that the string is on a line all by itself.

Link to comment
https://forums.phpfreaks.com/topic/160058-solved-remove/#findComment-844406
Share on other sites

I'm trying to use this to get 00001 (It's a url, actual code is):

<a href="pb000001.htm" target="_blank">000001</a> "Go Away" (W) GUID=671e78a6308032bed8b1d14587e24de4(VALID) [2009.05.28 19:22:06]

This is what I'm using, it works in testers, yet doesn't in my code. Can you tell what the problem is?

preg_match('#<a href="([^"]+)#', $lines[$i], $id);

Link to comment
https://forums.phpfreaks.com/topic/160058-solved-remove/#findComment-844436
Share on other sites

I'm confused. First you state you want to value of GUID (more or less), and now you want the value of href? You're not being clear on what exactly you are trying to shoot for.

 

If you are looking for pb000001.htm in you string (in other words, the value of your href), add the closing quote after the capture:

 

preg_match('#<a href="([^"]+)"#', $lines[$i], $id); // note the closing "

 

You'll want to echo / use $id[1] for this captured value.

Link to comment
https://forums.phpfreaks.com/topic/160058-solved-remove/#findComment-844443
Share on other sites

I want them both (in seperate values)

 

Why didn't you say so in your initial post? Would make things a little easier, no? ;)

 

So is this something along the lines of what you are looking for?

$str = '<a href="pb000001.htm" target="_blank">000001</a> "Go Away" (W) GUID=671e78a6308032bed8b1d14587e24de4(VALID) [2009.05.28 19:22:06]';
preg_match('#<a href="([^"]+)".+?GUID=([^(]+)#', $str, $id);
echo $id[1] . ' - ' . $id[2];

 

 

If there is going to be multiple examples of this anchor tag in the string you are searching, you can use preg_match_all instead:

 

$str = '<a href="pb000001.htm" target="_blank">000001</a> "Go Away" (W) GUID=671e78a6308032bed8b1d14587e24de4(VALID) [2009.05.28 19:22:06]
<a href="pb000002.htm" target="_blank">000001</a> "Go Away" (W) GUID=431e78a6308032bed7b1d16679e24de5(VALID) [2009.05.28 19:22:06]';

preg_match_all('#<a href="([^"]+)".+?GUID=([^(]+)#', $str, $id);
$count = count($id[0]);
for ($a = 0 ; $a < $count ; $a++) {
echo $id[1][$a] . ' ' . $id[2][$a] . "<br />\n";
}

 

 

Link to comment
https://forums.phpfreaks.com/topic/160058-solved-remove/#findComment-844463
Share on other sites

okay first off, instead of this:

 

$str = implode('', file('pbsvss.htm'));

 

do this:

 

$str = file_get_contents('pbsvss.htm');

 

And then in your regex, do this:

 

preg_match_all('#<a href="([^"]+)".+?GUID=([^(]+)#is', $str, $id);

 

if that doesn't fix it, post some actual content of pbsvss.htm

Link to comment
https://forums.phpfreaks.com/topic/160058-solved-remove/#findComment-844521
Share on other sites

<?php

$str = file_get_contents('pbsvss.htm');

preg_match_all('#<a href="([^"]+)".+?GUID=([^(]+)#is', $str, $id);

$count = count($id[0]);
for ($a = 0 ; $a < $count ; $a++) {



echo $id[1][$a] . ' ' . $id[2][$a] . "<br />\n";
}
?> 

 

<p> <a href=pb000001.htm target=_blank>000001</a> "Go Away" (W) GUID=671e78a6308032bed8b1d14587e24de4(VALID) [2009.05.28 19:22:06]
<p> <a href=pb000002.htm target=_blank>000002</a> "Bakes" (W) GUID=d990f5eab60849cce1f9a73891f45ece(VALID) [2009.05.28 19:22:19]
<p> <a href=pb000003.htm target=_blank>000003</a> "Go Away" (W) GUID=671e78a6308032bed8b1d14587e24de4(VALID) [2009.05.28 19:22:39]
<p> <a href=pb000004.htm target=_blank>000004</a> "Bakes" (W) GUID=d990f5eab60849cce1f9a73891f45ece(VALID) [2009.05.28 19:22:49]
<p> <a href=pb000005.htm target=_blank>000005</a> "Go Away" (W) GUID=671e78a6308032bed8b1d14587e24de4(VALID) [2009.05.28 19:23:10]
<p> <a href=pb000006.htm target=_blank>000006</a> "Bakes" (W) GUID=d990f5eab60849cce1f9a73891f45ece(VALID) [2009.05.28 19:23:25]

Link to comment
https://forums.phpfreaks.com/topic/160058-solved-remove/#findComment-844540
Share on other sites

okay so the previous content you showed had quotes around the href value.  This content you are showing right now does not. I sure hope there isn't any more "confusion" about what you're *really* after...

 

preg_match_all('~href=([^\s]*).+?GUID=([^(]*)~is',$string,$matches);
echo "<pre>"; print_r($matches);

Link to comment
https://forums.phpfreaks.com/topic/160058-solved-remove/#findComment-844542
Share on other sites

Archived

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

×
×
  • Create New...

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.