I’ve been constantly attempting to adapt a perfect string matching expression for my syntax highlighter, but it’s time to ask for help.
<?php
if ( !empty( $_GET['gamertag'] ) )
{
require_once( 'xbox.php' );
header( 'Content-Type: image/png' );
// Content
$xbox = new Xbox( $_GET['gamertag'] );
$font = 'fonts/helr65w.ttf';
// Images
$bg = @imagecreatefrompng( 'content/gamercard.png' );
$gp = @imagecreatefrompng( $xbox->Links['GamerPicture'] );
$st = @imagecreatefrompng( 'content/star.png' );
$re = Array();
if ( $xbox->CanViewGames() )
{
foreach( $xbox->RecentGames as $key => $value )
$re[] = @imagecreatefromjpeg( $value['Image'] );
}
// Save Transparency
@imagesavealpha( $bg, true );
@imagealphablending( $bg, false );
@imagecolorallocatealpha( $bg, 255, 255, 255, 127 );
@imagealphablending( $bg, true );
// Create Colors
$white = @imagecolorallocate( $bg, 255, 255, 255 );
$grey = @imagecolorallocate( $bg, 128, 128, 128 );
$black = @imagecolorallocate( $bg, 0, 0, 0 );
$orange = @imagecolorallocate( $bg, 233, 171, 23 );
// Write Information
for( $i = 0; $i < count( $re ); $i++ ) // Recent Games
@imagecopy( $bg, $re[$i], ( 100 + ( 40 * $i ) ), 44, 0, 0, 32, 32 );
for( $r = 0; $r < $xbox->Reputation; $r++ ) // Reputation
@imagecopy( $bg, $st, ( 196 + ( $r * 20 ) ), 125, 0, 0, 16, 16 );
@imagecopy( $bg, $gp, 18, 55, 0, 0, 64, 64 );
@imagettftext( $bg, 14, 0, 40, 30, $black, $font, $xbox->Gamertag );
@imagettftext( $bg, 14, 0, 143, 105, $black, $font, $xbox->Gamerscore );
@imagettftext( $bg, 6, 0, 7, 161, $black, $font, $xbox->CurrentActivity );
@imagepng( $bg );
// Destroy Images
@imagedestroy( $bg );
@imagedestroy( $gp );
@imagedestroy( $st );
foreach( $re as $game )
@imagedestroy( $game );
}
else
{
print( '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Xbox Gamercard</title>
<script type="text/javascript">
function go()
{
var gamertag = document.getElementById( "gamertag" ).value;
window.location.href = ( gamertag + ".png" );
}
</script>
</head>
<body>
<input type="text" id="gamertag" onkeydown="if (event.keyCode == 13) go();" />
<input type="button" value="Submit" onclick="go();" /><br /><br />
<a href="/projects/xbox-gamercard/ttg/" title="TTG Signature Gamercard">TTG Signature Gamercard</a>
</body>
</html>' );
}
?>
I’m looking for an expression that can successfully match all content between '' and "".
It needs to ignore all (correctly) escaped versions of themselves. (So content between '' will ignore \', and content between "" will ignore \")
It doesn’t matter which one comes first.
Here are two expressions I have already tried:
"/'[^'\\\\]*(?:\\\\.[^'\\\\]*)*?'/"
"/'(.[^']*)'/"
Try this raw regex. Group 2 would contain your strings.
Since PHP isn’t my language I’m not sure I escaped it correctly, but try this:
This one won’t catch commented code appropriately, for example: