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>
我想从上面的字符串
中提取,hrefhttps://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 );