从javascript字符串中提取href


Extract href from javascript string

PHP中的函数以字符串

形式返回以下js片段
<script type="text/javascript"> 
function gformRedirect()
{
  document.location.href='https://plamsn.web/fr/demande-de-pret?montant=400%24&email=jon%40doe.com';
}
</script>

我想从上面的字符串

中提取,href
https://plamsn.web/fr/demande-de-pret?montant=400%24&email=jon%40doe.com

我试了下面的

$hrefStartIndex = strpos($redirect, 'http');
$hrefEndIndex = strpos($redirect, ';}');
$href = substr($redirect, $hrefStartIndex, $hrefEndIndex);

这似乎给了一些问题,我不确定如果这是我应该如何去,任何指针如何去它将不胜感激。

谢谢,

try this:

$url = "<script type=''text/javascript'> function gformRedirect(){document.location.href='https://plamsn.web/fr/demande-de-pret?montant=400%24&email=jon%40doe.com';}</script>";
$first_step = explode( 'document.location.href=' , $url );
$second_step = explode(";}" , $first_step[1] );
echo $second_step[0];

如果字符串有任何变化,请记住更改起始位置。

<?php
$url='<script type="text/javascript"> function gformRedirect(){document.location.href="https://plamsn.web/fr/demande-de-pret?montant=400%24&email=jon%40doe.com";}</script>';
$url=substr($url,81,strlen($url));
$url=rtrim($url,'";}</script>');
echo $url;
?>

使用regex:

<?php
    $url='<script type="text/javascript"> function gformRedirect(){document.location.href="https://plamsn.web/fr/demande-de-pret?montant=400%24&email=jon%40doe.com";}</script>';
    preg_match("/http[^'"]*/", $url, $output_array);
    echo $output_array[0];
?>
add_filter( 'gform_confirmation', function ( $confirmation, $form, $entry, $ajax ) {
GFCommon::log_debug( __METHOD__ . '(): running.' );
if ( isset($form['confirmation']['type']) && isset($form['confirmation']['url']) && $form['confirmation']['type']="redirect" && $form['confirmation']['url']!="" && $form['id'] == 3) {
    $url          = esc_url_raw( $form['confirmation']['url'] );
    GFCommon::log_debug( __METHOD__ . '(): Redirect to URL: ' . $url );
    $confirmation = 'Thanks for contacting us! We will get in touch with you shortly.';
    $confirmation .= "<script>window.open('".$url."', '_blank');</script>";
}
return $confirmation;
}, 10, 4 );