我有一个返回数据的MySQL查询,我运行一个foreach循环来回显结果。
每行数据都是一个字符串,并且在开头有一个唯一的标识符,长度为九(9)个字符。
我要做的是从每行中提取前九个字符并在$_GET
请求中使用它。以下是我的工作数据。
每行的开头是唯一标识符(九个字符)示例:SeqID 0101
。我是否可以提取该代码并在“查看”按钮的$_GET
中使用它:
foreach ($row as $k => $v)
echo '<tr>
<td>'.$k.'</td>
<td>'.$v.'</td>
<td><a href="imaint_failed_items_group_iframe.php?Seq=<?php echo $identifier;?>" target="_self"><img src="../../../nav/images/view_button.png"/></a></td>
</tr>';
答案 0 :(得分:4)
使用PHP substr()
string hex = "0BC9C82C5600A2448592D4E21285E292A2CCBC74454500";
//credits: http://stackoverflow.com/a/321404/5089204
var byteArray = Enumerable.Range(0, hex.Length / 2)
.Select(x => Convert.ToByte(hex.Substring(x * 2, 2), 16))
.ToArray();
int batchSize = 32768;
byte[] buf = new byte[batchSize];
using (MemoryStream result = new MemoryStream()) {
using (DeflateStream deflateStream = new DeflateStream(new MemoryStream(byteArray), CompressionMode.Decompress)) {
int bytesRead;
while ((bytesRead = deflateStream.Read(buf, 0, batchSize)) > 0)
result.Write(buf, 0, bytesRead);
}
}
string s = System.Text.Encoding.Default.GetString(buf);
这将返回前9个字符。
new SqlBytes(buf)
即将开始
AND $identifier = substr($v, 0, 9);
是字符长度。
答案 1 :(得分:1)
正如@Pupil已经说过你可以使用substr()
<?php foreach($row as $k => $v): ?>
<tr>
<td><?php echo $k; ?></td>
<td><?php echo $v; ?></td>
<td><a href="imaint_failed_items_group_iframe.php?Seq=<?php echo substr($k, 0, 9); ?>" target="_self"><img src="../../../nav/images/view_button.png"/></a></td>
</tr>
<?php endforeach; ?>