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
。