簡體   English   中英

如何從輸入字段中獲取特定值

[英]How to get a particular value from input field

我的用戶可以從reverbnation.com添加他的任何音頻。 因此,用戶可以復制其嵌入代碼並將其粘貼到我的表單輸入中。 我希望我的表單從輸入文本中僅得到兩個單詞。

例如:-混響嵌入代碼如下:

<iframe class="widget_iframe" src="https://www.reverbnation.com/widget_code/html_widget/artist_4859830?widget_id=50&amp;posted_by=label_265034&pwc[design]=customized&pwc[background_color]=%23d4c79f&pwc[included_songs]=0&pwc[song_ids]=23591473&pwc[photo]=0%2C1&pwc[size]=undefined" width="100%" height="100%" frameborder="0" scrolling="no"></iframe>

因此,如果我的用戶將上面的嵌入代碼粘貼到表單輸入字段中,那么我想從上面的文本中收集兩個單詞以將其保存在我的sql數據庫中。

  1. 藝術家ID = 4859830 (... artist_4859830?...)
  2. 歌曲ID = 23591473 (...&pwc [song_ids] = 23591473 ...)

請給我一個指導; 如何從輸入字段中收集2個以上ID。

我的sql數據庫:id | 用戶名| 藝術家| 歌曲

我的表單頁面:

if(isset($_POST['submit'])){
    $code = mysqli_real_escape_string($dbh, $_POST['code']);
    $userid = mysqli_real_escape_string($dbh, $_POST['userid']);

    $artist = How to get artist id (4859830) from $code 
    $song = How to get song id (23591473) from $code

    $result = mysqli_query($dbh,"INSERT INTO user_aideo (id, userid, artist, song) values('', '$userid', '$artist', '$song')");
}

<form id="form" method="post" action="">
   <input type="text" class="form-control" name="code"/>
   <input type="hidden" name="userid" value="<? echo $session->userid; ?>"/>
   <input type="submit" name="submit" id="submit" value=" Submit "/>
</form>

我認為這對於正則表達式將是一個很好的用例。

對於您的特定方案,您可以一次執行捕獲兩個數字。 您只需要使用preg_match函數。

if (preg_match("/(?:.*)artist_([0-9]*)\?(?:.*)song_ids]=([0-9]*)/i", $code, $matches)) {
    print 'artist: ' . $matches[1] . '<br />';
    print 'song: ' . $matches[2];
}

這適用於您給定的代碼示例。 它將歌手編號放在$matches[1] ,而歌曲編號放在$matches[2]

我很樂意直接在if語句中引用它們,因為正則表達式具有兩個捕獲組,因此如果preg_match返回true ,則在$matches數組中將始終有3個索引。 如果在if語句之外直接調用preg_match ,則需要遍歷$matches數組,以避免未定義的索引錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM