這是一個遙遠的範圍,但我一直在嘗試preg_match和preg_replace,努力做一些非常複雜的事情。PHP複雜preg_match
我想取一個完整的PayPal按鈕代碼,只提取13位數的按鈕id號。我已經成功地使用了preg_replace來獲取所有不需要的字符,並將代碼暴露爲混亂的一行。不幸的是,我也提取了等號 - 我認爲我需要從這個新生成的字符串中提取一個值=。
我面對的第二個問題是即使我可以在我創建的字符串中留下等號,但在PayPal按鈕表單中有兩個值。現在,我不知何故需要忽略第一個值,只抓住第二個是我需要的id。
我這樣做的唯一原因是因爲PayPal似乎沒有辦法複製該按鈕ID。相反,它會生成整個表單的代碼,當您點擊它時,它會自動突出顯示整個表單代碼,而不會讓您突出顯示所需的小部分。我必須這樣做才能讓不懂代碼的人複製表單代碼,將其粘貼到表單字段並讓網站自動獲取該ID號,然後在我編寫的另一個腳本中使用它。
到目前爲止,我有這樣的:
<?php
$string = '';
$res = preg_replace("/[^a-zA-Z0-9]/", "", $string);
echo $res;
?>
當我的貝寶形式的代碼添加到字符串的頂部 - 這看起來是這樣的:
<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="D3DPV3Y2WSA4J">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_cart_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
我得到這個: formtargetpaypalactionhttpswwwpaypalcomcgibinwebscrmethodpostinputtypehiddennamecmdvaluesxclickinputtypehiddennamehostedbuttonidvalueD3DPV3Y2WSA4JinputtypeimagesrchttpswwwpaypalobjectscomenUSibtnbtncartLGgifborder0namesubmitaltPayPalThesafereasierwaytopayonlineimgaltborder0srchttpswwwpaypalobjec tscomenUSiscrpixelgifwidth1height1form
和當然,我從唯一需要的是第二個值:D3DPV3Y2WSA4J
我覺得我可以做一些更多的研究,並找出如何離開的,所以我有等號值都是這樣的:value = 但我真的不確定我能跳過第一個值,只抓住第二個值。
這對我來說都是一種很好的學習體驗 - 因爲我不經常使用這樣的代碼,但很想獲得更多的知識。任何人讀這個,非常感謝你的時間!
在這一個,我使用$ button_id回聲? – David
你可以用'$ button_id'做任何你想做的事情。如果你想回應它,那就這樣做。 – Barmar