PHP设置id的值

时间:2017-06-07 21:05:21

标签: php

我有一些包含可变数据的文字。

My age is: <span class="var" id="age">54</span> and my name is <span class="var" id="name">Matt</span>

如果没有设置url参数,那么页面使用54这是正确的,但是如果我在网址中设置年龄,例如?age=20,那么我希望将年龄设置为20。

文本来自数据库,并设置为名为$content的变量。

不重复。文本来自数据库,只需要替换就是设置了url param

1 个答案:

答案 0 :(得分:0)

由于您有显示年龄的“条件”,因此您必须使用PHP if else来检查日期。以下是您可以使用的代码以及解释。

假设下面是你从db字段得到的字符串。

$fetched_string = '<p> My Smith from <span class="var" id="town">Manchester, aged, <span >class="var" id="age">54</span>';

现在您必须提取年龄,该年龄始终介于id="age"></span>之间

最好的方法是为此创建一个PHP函数。

function str_between($string, $searchStart, $searchEnd, $offset = 0) {
        $startPosition = strpos($string, $searchStart, $offset);
        if ($startPosition !== false) {
            $searchStartLength = strlen($searchStart);
            $endPosition = strpos($string, $searchEnd, $startPosition + 1);
            if ($endPosition !== false) {
                return substr($string, $startPosition + $searchStartLength, $endPosition - $searchStartLength);
            }
            return substr($string, $startPosition + $searchStartLength);
        }
        return $string;
    }

现在,您只需要传递提取年龄的左侧(将是searchStart)和右侧(searchEnd)的字符串值。以下是执行此操作的代码。

$fetched_age = str_between($fetched_string, 'id="age">', '</span>');

基于此,我修改了您可以按原样使用的最终代码。

//To get the data from a URL, $_GET method is used. First you will check if the "age" has been set in the URL or not. This is done by:

function str_between($string, $searchStart, $searchEnd, $offset = 0) {
    $startPosition = strpos($string, $searchStart, $offset);

    if ($startPosition !== false) {
        $searchStartLength = strlen($searchStart);
        $endPosition = strpos($string, $searchEnd, $startPosition + 1);

        if ($endPosition !== false) {
            return substr($string, $startPosition + $searchStartLength, $endPosition - $searchStartLength);
        }

        return substr($string, $startPosition + $searchStartLength);
    }

    return $string;
}

//Fetched String for db
$fetched_string = $row['full_string'];

//This will give you the age
$fetched_age = str_between($fetched_string, 'id="age">', '</span>');

if (isset($_GET['age'])) {
    //If age is set in the URL, assign it to the PHP Variable
    $age_display = $_GET['age'];
}
else {
    //If age is not set, then assign the age fetched from the db.
    $age_display = $fetched_age;
}

这是你在找什么?