php在字符之间获取字符串

时间:2015-07-15 14:34:05

标签: php mysql mysqli

我想从下面的字符串中获取 thisisafirstname 并将其放入另一个表中。以下是MySQL中字符串的样式:

{\"label\":\"Name\",\"value\":\"thisisafirstname\",\"identifier\":\"field3\",\"type\":\"oneLineText\",\"page\":1,\"page_name\":\"Step 1\",\"width\":\"50%\"},

这就是我所做的:

Function.php //工作正常

function get_string_between($string, $start, $end){
    $string = " ".$string;
    $ini = strpos($string,$start);
    if ($ini == 0) return "";
    $ini += strlen($start);
    $len = strpos($string,$end,$ini) - $ini;
    return substr($string,$ini,$len);
}

Main.php //这是我遇到问题的地方

//Get Data
$sql = "SELECT content FROM wp_formcraft_3_submissions";
$result = mysqli_query($con, $sql);

if (mysqli_num_rows($result) > 0) {
//Output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        $row1 = $row["content"];
//Get INFO in between
        require_once('function.php');
        $parsed = get_string_between($row1, '{\"label\":\"Name\",\"value\":\"', '\",\"identifier\":\"field3');
        echo $parsed;

错误讯息:

Notice: Undefined variable: row2 in C:\Users\Admin\Desktop\connect\test.php on line 25

我认为问题是由特殊字符引起的。我用一个简单的电子邮件字符串测试了一次,它的工作正常,因为我得到了 gmail 。这是代码:

require_once('function.php');
$parsed = get_string_between($row1, "@", ".");
echo $parsed;

3 个答案:

答案 0 :(得分:1)

第25行有语法错误,您缺少分号。它应该是:

$parsed = get_string_between($row1, '{\"label\":\"Name\",\"value\":\"', '\",\"identifier\":\"field3');

解释器期望词法元素;继续进行任何分配。它遇到没有分号的元素是你的echo命令,它会抛出你收到的错误。

答案 1 :(得分:1)

你错过了一个分号:

<强> Main.php

//Get Data
$sql = "SELECT content FROM wp_formcraft_3_submissions";
$result = mysqli_query($con, $sql);

if (mysqli_num_rows($result) > 0) {
//Output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        $row1 = $row["content"];
//Get INFO in between
        require_once('function.php');
        $parsed = get_string_between($row1, '{\"label\":\"Name\",\"value\":\"', '\",\"identifier\":\"field3');
        echo $parsed;

答案 2 :(得分:0)

您最好的选择是反序列化数据,然后您可以轻松访问所需的数据。它看起来像JSON,但它不是一个完整的JSON字符串。数据还有更多内容吗?如果是JSON,请使用json_decode对其进行解析并将其转换为数组或对象。