The Shed is going Social! Join us on FaceBook and Twitter and chime in on the conversation.
|
 |
|
Dev Shed Forums
> Programming Languages - More
> Regex Programming
|
PHP-General - Grabbing link href [was "Regular expression" in PHP]
Discuss Grabbing link href [was "Regular expression" in PHP] in the Regex Programming forum on Dev Shed. Grabbing link href [was "Regular expression" in PHP] Regular expressions forum covering PCRE and POSIX techniques, practices, and standards. Regular expressions help shorten coding time by providing the ability to compact many lines of code into one string.
|
|
 |
|
|
|
|

Dev Shed Forums Sponsor:
|
|
|

September 28th, 2011, 08:26 AM
|
|
Contributing User
|
|
Join Date: Sep 2004
Posts: 112
Time spent in forums: 1 Day 14 h 59 m 45 sec
Reputation Power: 9
|
|
|
PHP-General - Regular expression
PHP Code:
$link_text = 'Apply now';
$content = '<td align="right" class="apply"> <a href="http://domain.com?h=AJ&cm=Details_ApplyNow" onClick="ApplyNowClick(\'A7C6NP\');" title="Apply for this now!">Apply Now</a></td>';
$pattern = '|<a[^>]+>('.$link_text.')</[^>]+>|U';
preg_match($pattern, $content, $output);
$pattern = '/<[a]{1}(.*)?>(.*)<\/[a]{1}>/';
$content = trim(preg_replace($pattern, '$1', $output[0]));
... // then parse $content to get the href url
Is it possible to know what is wrong with the regular expression to get the href of this tag?
<td align="right" class="apply"> <a href="http://domain.com?h=AJ&cm=Details_ApplyNow" onClick="ApplyNowClick(\'A7C6NP\');" title="Apply for this now!">Apply Now</a></td>
Not getting anything in $output. I've this code working for a similar <a ..> tag.
Thanks!
|

September 28th, 2011, 08:38 AM
|
 |
Likely to be eaten by a grue.
|
|
Join Date: Oct 2006
Location: Pennsylvania, USA
|
|
|
Your match text has "now" but the link has "Now"
__________________
HEY! YOU! Read the New User Guide and Forum Rules
"They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." -Benjamin Franklin
"The greatest tragedy of this changing society is that people who never knew what it was like before will simply assume that this is the way things are supposed to be." -2600 Magazine, Fall 2002
Think we're being rude? Maybe you asked a bad question or you're a Help Vampire. Trying to argue intelligently? Please read this.
|

September 28th, 2011, 04:35 PM
|
|
Contributing User
|
|
Join Date: Sep 2011
Posts: 30
 
Time spent in forums: 4 h 1 m 46 sec
Reputation Power: 2
|
|
|
regex patterns must start with '/' and ends with '/' , and after the last '/' add an 'i' to make case insenstive
$pattern = '/regex/i'
|

September 28th, 2011, 04:39 PM
|
 |
Still alive
|
|
Join Date: Mar 2007
Location: Washington, USA
|
|
Quote: | Originally Posted by chris0 regex patterns must start with '/' and ends with '/' |
Not necessarily.
|

September 28th, 2011, 04:49 PM
|
|
Contributing User
|
|
Join Date: Sep 2011
Posts: 30
 
Time spent in forums: 4 h 1 m 46 sec
Reputation Power: 2
|
|
Quote: | Originally Posted by requinix Not necessarily. |
yes you are right, its however appears to be the standered and better for script consistency imo
still though, the i modifier should make it case insensitive
|

September 28th, 2011, 05:45 PM
|
 |
Likely to be eaten by a grue.
|
|
Join Date: Oct 2006
Location: Pennsylvania, USA
|
|
Quote: | Originally Posted by chris0 yes you are right, its however appears to be the standered and better for script consistency imo | Unless of course the pattern contains a / (which this one did), which would force you to escape the / if it's in the pattern, leading to patterns that contain \/ everywhere, which are harder to read than if you had chosen a new delimiter.
|

October 3rd, 2011, 10:30 AM
|
|
Registered User
|
|
Join Date: Dec 2006
Posts: 19
Time spent in forums: 17 h 31 m 26 sec
Reputation Power: 0
|
|
This should do the trick.
PHP Code:
<?php
$content = '<td align="right" class="apply"> <a href="http://domain.com?h=AJ&cm=Details_ApplyNow" onClick="ApplyNowClick(\'A7C6NP\');" title="Apply for this now!">Apply Now</a></td>';
preg_match('#<a href="(.+)" onClick=".+" title=".+">Apply Now</a>#U', $content, $output);
var_dump($output);
?>
|
Developer Shed Advertisers and Affiliates
| Thread Tools |
Search this Thread |
|
|
|
| Display Modes |
Rate This Thread |
Linear Mode
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|
|