Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么substr(…)没有执行我希望它执行的操作?_Php_Mysql_Wordpress_Wordpress Theming - Fatal编程技术网

Php 为什么substr(…)没有执行我希望它执行的操作?

Php 为什么substr(…)没有执行我希望它执行的操作?,php,mysql,wordpress,wordpress-theming,Php,Mysql,Wordpress,Wordpress Theming,我有一段代码,可以在我的网站上生成工作列表的预览。这应该是不言自明的,但我正在尝试获取数据库中VARCHAR(5000)类型的列的前100个字符 $Jobs = $wpdb->get_results('SELECT * FROM jobs'); foreach ($Jobs as $thisJob) { // use first 100 characters of job descrip

我有一段代码,可以在我的网站上生成工作列表的预览。这应该是不言自明的,但我正在尝试获取数据库中
VARCHAR(5000)
类型的列的前100个字符

            $Jobs = $wpdb->get_results('SELECT * FROM jobs');
            foreach ($Jobs as $thisJob)
            {
                // use first 100 characters of job description before a "Read more" link to the full description
                echo  ' <div class="job-row">'
                      .   '<h3 class="job-title">' . $thisJob->title . '</h3>'
                      .   '<div class="job-descr-brief">'
                      .        substr($thisJob->descr, 100) . ' <a href="' . get_site_url . '/about/careers/?jobid=' . $thisJob->id . '">Read more.</a>'
                      .   '</div>'
                      .'</div>';
            }
$Jobs=$wpdb->get_results('SELECT*FROM Jobs');
foreach($Jobs作为$thisJob)
{
//在“阅读更多”链接到完整描述之前,请使用职位描述的前100个字符
回声“
“.$thisJob->title.”
.   ''
.substr($thisJob->descr,100)。”
.   ''
.'';
}
但是,由于某种原因,
substr($thisJob->descr,100)
返回的是完整的
$thisJob->descr
字符串,而不仅仅是前100个字符。知道我做错了什么吗


相关文档:

我认为您误读了文档

您需要像这样使用它来获得前100个字符:

substr($thisJob->descr,0100)


第二个参数是您希望它开始的位置(在本例中为0,开始)。

我认为您误读了文档

您需要像这样使用它来获得前100个字符:

substr($thisJob->descr,0100)


第二个参数是您希望它开始的位置(在本例中为0,开始)。

string substr(string$string,int$start[,int$length])
您希望使用
substr($thisJob->descr,0,100)
。永远使用php.net手册,而不是w3schools,只是为了将来。但是,很奇怪,示例代码中的函数调用显然仍然输出完整的字符串,没有删除前100个字符。啊,等一下:$thisJob->descr的长度是否小于100个字符,而您运行的是5.2.2之前的php版本?Charlotte Dunois链接中的版本注释说:“5.2.2-5.2.6如果start参数指示负截断或更高的位置,则返回false。其他版本从start开始获取字符串。”因此,我认为您可能正在运行旧版本的PHP,并且输入的参数长度超过字段内容的长度,所以它根本不会截断它。@dspitzle你确定吗。我刚刚运行了一个针对150个php版本的脚本,所有的脚本都产生了相同的输出,
false
stringsubstr(string$string,int$start[,int$length])
您想使用
substr($thisJob->descr,0100)
。永远使用php.net手册,而不是w3schools,只是为了将来。但是,很奇怪,示例代码中的函数调用显然仍然输出完整的字符串,没有删除前100个字符。啊,等一下:$thisJob->descr的长度是否小于100个字符,而您运行的是5.2.2之前的php版本?Charlotte Dunois链接中的版本注释说:“5.2.2-5.2.6如果start参数指示负截断或更高的位置,则返回false。其他版本从start开始获取字符串。”因此,我认为您可能正在运行旧版本的PHP,并且输入的参数长度超过字段内容的长度,所以它根本不会截断它。@dspitzle你确定吗。我刚刚运行了一个脚本,它针对大约150个版本的php运行脚本,并且都产生了相同的输出,
false